1
0
mirror of https://github.com/luanti-org/luanti.git synced 2025-10-23 12:45:43 +02:00

Entirely new version of pull request #3962

Changes to be committed:
	modified:   builtin/game/register.lua
	modified:   src/content_nodemeta.cpp
	modified:   src/content_nodemeta.h
	modified:   src/game.cpp
	modified:   src/inventory.cpp
	modified:   src/inventory.h
	modified:   src/inventorymanager.cpp
	modified:   src/inventorymanager.h
	modified:   src/mapblock.cpp
	modified:   src/network/clientpackethandler.cpp
	modified:   src/nodemetadata.cpp
	modified:   src/nodemetadata.h
	modified:   src/player.cpp
	modified:   src/player.h
	modified:   src/rollback_interface.cpp
	modified:   src/script/common/c_content.cpp
	modified:   src/script/cpp_api/s_inventory.cpp
	modified:   src/script/cpp_api/s_inventory.h
	modified:   src/script/cpp_api/s_nodemeta.cpp
	modified:   src/script/cpp_api/s_nodemeta.h
	modified:   src/script/cpp_api/s_player.cpp
	modified:   src/script/cpp_api/s_player.h
	modified:   src/script/lua_api/l_inventory.cpp
	modified:   src/script/lua_api/l_nodemeta.cpp
	modified:   src/server.cpp
	modified:   src/serverobject.cpp
	modified:   src/unittest/test_inventory.cpp
This commit is contained in:
Foghrye4
2016-04-18 21:33:28 +03:00
parent d82c5da0dc
commit b5dca28ca3
28 changed files with 509 additions and 125 deletions

View File

@@ -23,6 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "util/string.h"
#include "util/numeric.h"
#include "map.h"
#include "mapblock.h" //For getNodeBlockPos
#include "gamedef.h"
#include "nodedef.h"
#include "nodemetadata.h"
@@ -155,7 +156,9 @@ bool RollbackAction::applyRevert(Map *map, InventoryManager *imgr, IGameDef *gam
} else {
NodeMetadata *meta = map->getNodeMetadata(p);
if (!meta) {
meta = new NodeMetadata(gamedef->idef());
v3s16 blockpos = getNodeBlockPos(p);
v3s16 p_rel = p - blockpos*MAP_BLOCKSIZE;
meta = new NodeMetadata(gamedef->idef(),p_rel);
if (!map->setNodeMetadata(p, meta)) {
delete meta;
infostream << "RollbackAction::applyRevert(): "
@@ -217,9 +220,9 @@ bool RollbackAction::applyRevert(Map *map, InventoryManager *imgr, IGameDef *gam
// Silently ignore different current item
if (list->getItem(inventory_index).name != real_name)
return false;
list->takeItem(inventory_index, inventory_stack.count);
list->takeItem(NULL, inventory_index, inventory_stack.count); // No idea how to get GameScripting from this point. Therefore it is void here.
} else {
list->addItem(inventory_index, inventory_stack);
list->addItem(NULL, inventory_index, inventory_stack);
}
// Inventory was modified; send to clients
imgr->setInventoryModified(loc);