X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fcontent_nodemeta.cpp;h=f504924f956a39dcc8fe29bbe323496186efcef7;hb=86a0f5603b9e936b8527ae22c4aeaf5714c9d279;hp=1ade1ee76f12691f0a244d81798ae719d4be3abf;hpb=704782c95b8a4194a9383da55d93f37fd0f7278f;p=oweals%2Fminetest.git diff --git a/src/content_nodemeta.cpp b/src/content_nodemeta.cpp index 1ade1ee76..f504924f9 100644 --- a/src/content_nodemeta.cpp +++ b/src/content_nodemeta.cpp @@ -1,26 +1,32 @@ /* -Minetest-c55 -Copyright (C) 2010-2012 celeron55, Perttu Ahola +Minetest +Copyright (C) 2010-2013 celeron55, Perttu Ahola This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GNU Lesser General Public License for more details. -You should have received a copy of the GNU General Public License along +You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "content_nodemeta.h" +#include "nodemetadata.h" +#include "nodetimer.h" #include "inventory.h" #include "log.h" -#include "utility.h" +#include "serialization.h" +#include "util/serialize.h" +#include "util/string.h" +#include "constants.h" // MAP_BLOCKSIZE +#include #define NODEMETA_GENERIC 1 #define NODEMETA_SIGN 14 @@ -40,10 +46,10 @@ static bool content_nodemeta_deserialize_legacy_body( deSerializeLongString(is); // m_text deSerializeString(is); // m_owner - meta->setInfoText(deSerializeString(is)); - meta->setInventoryDrawSpec(deSerializeString(is)); + meta->setString("infotext",deSerializeString(is)); + meta->setString("formspec",deSerializeString(is)); readU8(is); // m_allow_text_input - meta->setAllowRemoval(readU8(is) == 0); + readU8(is); // m_allow_removal readU8(is); // m_enforce_owner int num_vars = readU32(is); @@ -56,16 +62,26 @@ static bool content_nodemeta_deserialize_legacy_body( } else if(id == NODEMETA_SIGN) // SignNodeMetadata { - meta->setString("text", deSerializeLongString(is)); - meta->setInfoText("\"${text}\""); - meta->setFormSpec("field[text;;${text}]"); + meta->setString("text", deSerializeString(is)); + //meta->setString("infotext","\"${text}\""); + meta->setString("infotext", + std::string("\"") + meta->getString("text") + "\""); + meta->setString("formspec","field[text;;${text}]"); return false; } else if(id == NODEMETA_CHEST) // ChestNodeMetadata { meta->getInventory()->deSerialize(is); - meta->setInventoryDrawSpec("invsize[8,9;]" - "list[current_name;0;0,0;8,4;]" + + // Rename inventory list "0" to "main" + Inventory *inv = meta->getInventory(); + if(!inv->getList("main") && inv->getList("0")){ + inv->getList("0")->setName("main"); + } + assert(inv->getList("main") && !inv->getList("0")); + + meta->setString("formspec","size[8,9]" + "list[current_name;main;0,0;8,4;]" "list[current_player;main;0,5;8,4;]"); return false; } @@ -73,8 +89,16 @@ static bool content_nodemeta_deserialize_legacy_body( { meta->setString("owner", deSerializeString(is)); meta->getInventory()->deSerialize(is); - meta->setInventoryDrawSpec("invsize[8,9;]" - "list[current_name;0;0,0;8,4;]" + + // Rename inventory list "0" to "main" + Inventory *inv = meta->getInventory(); + if(!inv->getList("main") && inv->getList("0")){ + inv->getList("0")->setName("main"); + } + assert(inv->getList("main") && !inv->getList("0")); + + meta->setString("formspec","size[8,9]" + "list[current_name;main;0,0;8,4;]" "list[current_player;main;0,5;8,4;]"); return false; } @@ -94,7 +118,7 @@ static bool content_nodemeta_deserialize_legacy_body( is>>temp; meta->setString("src_time", ftos((float)temp/10)); - meta->setInventoryDrawSpec("invsize[8,9;]" + meta->setString("formspec","size[8,9]" "list[current_name;fuel;2,3;1,1;]" "list[current_name;src;2,1;1,1;]" "list[current_name;dst;5,1;2,2;]"