X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fitemdef.h;h=2ade6116a03fa0a8efbbc4aa7f999f9c4692a2d2;hb=13f94ecad5d4fcda08663ee91e45b4a205a1dadb;hp=cbbe7e2adcf844ba35db37c9c582bf8f7ac07c61;hpb=7d9329ecfe84733cdefa34eab25ee3d124c94c59;p=dragonfireclient.git diff --git a/src/itemdef.h b/src/itemdef.h index cbbe7e2ad..2ade6116a 100644 --- a/src/itemdef.h +++ b/src/itemdef.h @@ -26,7 +26,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include #include "itemgroup.h" +#include "sound.h" class IGameDef; +class Client; struct ToolCapabilities; /* @@ -60,12 +62,15 @@ struct ItemDefinition /* Item stack and interaction properties */ - s16 stack_max; + u16 stack_max; bool usable; bool liquids_pointable; // May be NULL. If non-NULL, deleted by destructor ToolCapabilities *tool_capabilities; ItemGroupList groups; + SimpleSoundSpec sound_place; + SimpleSoundSpec sound_place_failed; + f32 range; // Client shall immediately place this node when player places the item. // Server will update the precise end result a moment later. @@ -103,10 +108,10 @@ class IItemDefManager #ifndef SERVER // Get item inventory texture virtual video::ITexture* getInventoryTexture(const std::string &name, - IGameDef *gamedef) const=0; + Client *client) const=0; // Get item wield mesh virtual scene::IMesh* getWieldMesh(const std::string &name, - IGameDef *gamedef) const=0; + Client *client) const=0; #endif virtual void serialize(std::ostream &os, u16 protocol_version)=0; @@ -129,10 +134,10 @@ class IWritableItemDefManager : public IItemDefManager #ifndef SERVER // Get item inventory texture virtual video::ITexture* getInventoryTexture(const std::string &name, - IGameDef *gamedef) const=0; + Client *client) const=0; // Get item wield mesh virtual scene::IMesh* getWieldMesh(const std::string &name, - IGameDef *gamedef) const=0; + Client *client) const=0; #endif // Remove all registered item and node definitions and aliases @@ -140,6 +145,7 @@ class IWritableItemDefManager : public IItemDefManager virtual void clear()=0; // Register item definition virtual void registerItem(const ItemDefinition &def)=0; + virtual void unregisterItem(const std::string &name)=0; // Set an alias so that items named will load as . // Alias is not set if has already been defined. // Alias will be removed if is defined at a later point of time.