diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-12-04 00:07:02 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-12-04 00:07:02 +0200 |
commit | 658d1a72351e178282f2a09f30f05050ac89e862 (patch) | |
tree | e7d5b4cabc6d9607b5761b14563302d55537c456 | |
parent | 4b00d4d9d2158fc65da39179448c03390f094987 (diff) | |
download | minetest-658d1a72351e178282f2a09f30f05050ac89e862.tar.gz minetest-658d1a72351e178282f2a09f30f05050ac89e862.tar.bz2 minetest-658d1a72351e178282f2a09f30f05050ac89e862.zip |
Add serialization for node aliases to let client show inventory images correctly
-rw-r--r-- | src/nodedef.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/nodedef.cpp b/src/nodedef.cpp index e2e5616f1..35ee291a0 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -311,6 +311,9 @@ public: void clear() { m_name_id_mapping.clear(); + + m_aliases.clear(); + for(u16 i=0; i<=MAX_CONTENT; i++) { ContentFeatures &f = m_content_features[i]; @@ -645,6 +648,14 @@ public: } writeU16(os, count); os<<serializeLongString(tmp_os.str()); + + writeU16(os, m_aliases.size()); + for(std::map<std::string, std::string>::const_iterator + i = m_aliases.begin(); i != m_aliases.end(); i++) + { + os<<serializeString(i->first); + os<<serializeString(i->second); + } } void deSerialize(std::istream &is, IGameDef *gamedef) { @@ -666,6 +677,15 @@ public: if(f->name != "") m_name_id_mapping.set(i, f->name); } + + u16 num_aliases = readU16(is); + if(!is.eof()){ + for(u16 i=0; i<num_aliases; i++){ + std::string name = deSerializeString(is); + std::string convert_to = deSerializeString(is); + m_aliases[name] = convert_to; + } + } } private: // Features indexed by id |