X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Finventory.h;h=07d81a3f7eecb77c8575616bd87a763d447357f4;hb=7985d746f97ce1b37b6ca48a8a3e7ed70d02e4b0;hp=761e664a9ec09737070259a52f0bce685680b0c4;hpb=89aa8b9be1fbe3659d0bfb9263cf1c563044c04e;p=dragonfireclient.git diff --git a/src/inventory.h b/src/inventory.h index 761e664a9..07d81a3f7 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -35,6 +35,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #define QUANTITY_ITEM_MAX_COUNT 99 +class ServerActiveObject; +class ServerEnvironment; + class InventoryItem { public: @@ -54,6 +57,14 @@ class InventoryItem #endif // Shall return a text to show in the GUI virtual std::string getText() { return ""; } + // Creates an object from the item, to be placed in the world. + virtual ServerActiveObject* createSAO(ServerEnvironment *env, u16 id, v3f pos); + // Gets amount of items that dropping one SAO will decrement + virtual u16 getDropCount(){ return getCount(); } + + /* + Quantity methods + */ // Shall return true if the item can be add()ed to the other virtual bool addableTo(InventoryItem *other) @@ -61,9 +72,6 @@ class InventoryItem return false; } - /* - Quantity methods - */ u16 getCount() { return m_count; @@ -175,6 +183,7 @@ class MaterialItem : public InventoryItem u8 m_content; }; +//TODO: Remove class MapBlockObjectItem : public InventoryItem { public: @@ -262,28 +271,7 @@ class CraftItem : public InventoryItem return new CraftItem(m_subname, m_count); } #ifndef SERVER - video::ITexture * getImage() - { - if(g_texturesource == NULL) - return NULL; - - std::string name; - - if(m_subname == "Stick") - name = "stick.png"; - else if(m_subname == "lump_of_coal") - name = "lump_of_coal.png"; - else if(m_subname == "lump_of_iron") - name = "lump_of_iron.png"; - else if(m_subname == "steel_ingot") - name = "steel_ingot.png"; - else - name = "cloud.png"; - - // Get such a texture - //return g_irrlicht->getTexture(name); - return g_texturesource->getTextureRaw(name); - } + video::ITexture * getImage(); #endif std::string getText() { @@ -291,6 +279,10 @@ class CraftItem : public InventoryItem os<getName()) != "CraftItem") @@ -377,6 +369,12 @@ class ToolItem : public InventoryItem basename = "tool_stoneaxe.png"; else if(m_toolname == "SteelAxe") basename = "tool_steelaxe.png"; + else if(m_toolname == "WSword") + basename = "tool_woodsword.png"; + else if(m_toolname == "STSword") + basename = "tool_stonesword.png"; + else if(m_toolname == "SteelSword") + basename = "tool_steelsword.png"; else basename = "cloud.png"; @@ -392,11 +390,6 @@ class ToolItem : public InventoryItem os<getTextureRaw(os.str()); - - /*TextureSpec spec; - spec.addTid(g_irrlicht->getTextureId(basename)); - spec.addTid(g_irrlicht->getTextureId(os.str())); - return g_irrlicht->getTexture(spec);*/ } #endif std::string getText() @@ -466,6 +459,9 @@ class InventoryList // Count used slots u32 getUsedSlots(); u32 getFreeSlots(); + + /*bool getDirty(){ return m_dirty; } + void setDirty(bool dirty=true){ m_dirty = dirty; }*/ // Get pointer to item InventoryItem * getItem(u32 i); @@ -501,6 +497,7 @@ class InventoryList core::array m_items; u32 m_size; std::string m_name; + //bool m_dirty; }; class Inventory