+ // Returns tool wear
+ virtual int punch(v3f dir,
+ const ToolCapabilities *toolcap=NULL,
+ ServerActiveObject *puncher=NULL,
+ float time_from_last_punch=1000000)
+ { return 0; }
+ virtual void rightClick(ServerActiveObject *clicker)
+ {}
+ virtual void setHP(s16 hp)
+ {}
+ virtual s16 getHP() const
+ { return 0; }
+
+ virtual void setArmorGroups(const ItemGroupList &armor_groups)
+ {}
+ virtual void setPhysicsOverride(float physics_override_speed, float physics_override_jump, float physics_override_gravity)
+ {}
+ virtual void setAnimation(v2f frames, float frame_speed, float frame_blend)
+ {}
+ virtual void setBonePosition(std::string bone, v3f position, v3f rotation)
+ {}
+ virtual void setAttachment(int parent_id, std::string bone, v3f position, v3f rotation)
+ {}
+ virtual ObjectProperties* accessObjectProperties()
+ { return NULL; }
+ virtual void notifyObjectPropertiesModified()
+ {}
+
+ // Inventory and wielded item
+ virtual Inventory* getInventory()
+ { return NULL; }
+ virtual const Inventory* getInventory() const
+ { return NULL; }
+ virtual InventoryLocation getInventoryLocation() const
+ { return InventoryLocation(); }
+ virtual void setInventoryModified()
+ {}
+ virtual std::string getWieldList() const
+ { return ""; }
+ virtual int getWieldIndex() const
+ { return 0; }
+ virtual ItemStack getWieldedItem() const;
+ virtual bool setWieldedItem(const ItemStack &item);
+