X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fcontent_nodemeta.cpp;h=f504924f956a39dcc8fe29bbe323496186efcef7;hb=86a0f5603b9e936b8527ae22c4aeaf5714c9d279;hp=18690612d497ed611b71b802b9fd02c26337f268;hpb=c4315a7afafcc9adff945b5e63800340f6c2c008;p=oweals%2Fminetest.git diff --git a/src/content_nodemeta.cpp b/src/content_nodemeta.cpp index 18690612d..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 @@ -56,16 +62,26 @@ static bool content_nodemeta_deserialize_legacy_body( } else if(id == NODEMETA_SIGN) // SignNodeMetadata { - meta->setString("text", deSerializeLongString(is)); - meta->setString("infotext","\"${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->setString("formspec","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->setString("formspec","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->setString("formspec","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;]"