diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-11-16 14:36:33 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-11-29 19:13:47 +0200 |
commit | 7a29b14a20b16b97fd0d97d9f305fe0d53c160bf (patch) | |
tree | 95076f5b5c1718b03584225ee67e4d0630c27a99 /src/inventory.h | |
parent | df8346ef4d70ba7c717c4c7b9c783df876378ca8 (diff) | |
download | minetest-7a29b14a20b16b97fd0d97d9f305fe0d53c160bf.tar.gz minetest-7a29b14a20b16b97fd0d97d9f305fe0d53c160bf.tar.bz2 minetest-7a29b14a20b16b97fd0d97d9f305fe0d53c160bf.zip |
Improved MaterialItem (stores nodename)
Diffstat (limited to 'src/inventory.h')
-rw-r--r-- | src/inventory.h | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/src/inventory.h b/src/inventory.h index b9de48f9a..32e1cd93e 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -127,11 +127,9 @@ protected: class MaterialItem : public InventoryItem { public: - MaterialItem(IGameDef *gamedef, content_t content, u16 count): - InventoryItem(gamedef, count) - { - m_content = content; - } + MaterialItem(IGameDef *gamedef, std::string nodename, u16 count); + // Legacy constructor + MaterialItem(IGameDef *gamedef, content_t content, u16 count); /* Implementation interface */ @@ -141,16 +139,26 @@ public: } virtual void serialize(std::ostream &os) const { - //os.imbue(std::locale("C")); - os<<"MaterialItem2"; + std::string nodename = m_nodename; + if(nodename == "") + nodename = "unknown_block"; + + os<<"MaterialItem3"; + os<<" \""; + os<<nodename; + os<<"\" "; + os<<m_count; + + // Old + /*os<<"MaterialItem2"; os<<" "; os<<(unsigned int)m_content; os<<" "; - os<<m_count; + os<<m_count;*/ } virtual InventoryItem* clone() { - return new MaterialItem(m_gamedef, m_content, m_count); + return new MaterialItem(m_gamedef, m_nodename, m_count); } #ifndef SERVER video::ITexture * getImage(ITextureSource *tsrc) const; @@ -167,7 +175,7 @@ public: if(std::string(other->getName()) != "MaterialItem") return false; MaterialItem *m = (MaterialItem*)other; - if(m->getMaterial() != m_content) + if(m->m_nodename != m_nodename) return false; return true; } @@ -185,14 +193,13 @@ public: float getCookTime() const; float getBurnTime() const; /* - Special methods + Special properties (not part of virtual interface) */ - content_t getMaterial() - { - return m_content; - } + std::string getNodeName() const + { return m_nodename; } + content_t getMaterial() const; private: - content_t m_content; + std::string m_nodename; }; /* |