From 0a18dda158e8f256de121ed2cf7a7a161a083b1c Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Wed, 25 Jul 2012 14:07:45 +0300 Subject: [PATCH] Remove special handling of creative mode --- builtin/item.lua | 28 +++++++++++++--------------- src/content_sao.cpp | 17 ----------------- src/content_sao.h | 2 -- src/inventorymanager.cpp | 18 ++++++------------ src/player.h | 1 - src/scriptapi.cpp | 15 --------------- src/scriptapi.h | 1 - src/server.cpp | 14 +++----------- 8 files changed, 22 insertions(+), 74 deletions(-) diff --git a/builtin/item.lua b/builtin/item.lua index 2a9b4ff27..1b4b4d25a 100644 --- a/builtin/item.lua +++ b/builtin/item.lua @@ -273,25 +273,23 @@ function minetest.node_dig(pos, node, digger) minetest.log('action', digger:get_player_name() .. " digs " .. node.name .. " at " .. minetest.pos_to_string(pos)) - if not minetest.setting_getbool("creative_mode") then - local wielded = digger:get_wielded_item() - local drops = minetest.get_node_drops(node.name, wielded:get_name()) + local wielded = digger:get_wielded_item() + local drops = minetest.get_node_drops(node.name, wielded:get_name()) - -- Wear out tool - local tp = wielded:get_tool_capabilities() - local dp = minetest.get_dig_params(def.groups, tp) - wielded:add_wear(dp.wear) - digger:set_wielded_item(wielded) + -- Wear out tool + local tp = wielded:get_tool_capabilities() + local dp = minetest.get_dig_params(def.groups, tp) + wielded:add_wear(dp.wear) + digger:set_wielded_item(wielded) - -- Add dropped items to object's inventory - if digger:get_inventory() then - local _, dropped_item - for _, dropped_item in ipairs(drops) do - digger:get_inventory():add_item("main", dropped_item) - end + -- Add dropped items to object's inventory + if digger:get_inventory() then + local _, dropped_item + for _, dropped_item in ipairs(drops) do + digger:get_inventory():add_item("main", dropped_item) end end - + local oldmetadata = nil if def.after_dig_node then oldmetadata = minetest.env:get_meta(pos):to_table() diff --git a/src/content_sao.cpp b/src/content_sao.cpp index 0488c8023..843ab29f7 100644 --- a/src/content_sao.cpp +++ b/src/content_sao.cpp @@ -292,13 +292,6 @@ public: ServerActiveObject *puncher, float time_from_last_punch) { - // Directly delete item in creative mode - if(g_settings->getBool("creative_mode") == true) - { - m_removed = true; - return 0; - } - // Take item into inventory ItemStack item = createItemStack(); Inventory *inv = puncher->getInventory(); @@ -1143,16 +1136,6 @@ void PlayerSAO::disconnected() } } -void PlayerSAO::createCreativeInventory() -{ - if(m_inventory != &m_player->inventory) - delete m_inventory; - - m_inventory = new Inventory(m_player->inventory); - m_inventory->clearContents(); - scriptapi_get_creative_inventory(m_env->getLua(), this); -} - std::string PlayerSAO::getPropertyPacket() { m_prop.is_visible = (getHP() != 0); diff --git a/src/content_sao.h b/src/content_sao.h index fac16ca99..ff427bac6 100644 --- a/src/content_sao.h +++ b/src/content_sao.h @@ -163,8 +163,6 @@ public: void disconnected(); - void createCreativeInventory(); - Player* getPlayer() { return m_player; diff --git a/src/inventorymanager.cpp b/src/inventorymanager.cpp index 5412a5dca..35e986b56 100644 --- a/src/inventorymanager.cpp +++ b/src/inventorymanager.cpp @@ -514,19 +514,13 @@ void IDropAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame return; } - // Don't remove from inventory in creative mode - if(g_settings->getBool("creative_mode") == true - && from_inv.type == InventoryLocation::PLAYER){ - } - else{ - // Take item from source list - ItemStack item2 = list_from->takeItem(from_i, actually_dropped_count); + // Take item from source list + ItemStack item2 = list_from->takeItem(from_i, actually_dropped_count); - if(item2.count != actually_dropped_count) - errorstream<<"Could not take dropped count of items"<setInventoryModified(from_inv); - } + if(item2.count != actually_dropped_count) + errorstream<<"Could not take dropped count of items"<setInventoryModified(from_inv); } infostream<<"IDropAction::apply(): dropped " diff --git a/src/player.h b/src/player.h index 352b93e88..47f34c178 100644 --- a/src/player.h +++ b/src/player.h @@ -150,7 +150,6 @@ public: u8 light; - // In creative mode, this is the invisible backup inventory Inventory inventory; u16 hp; diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp index d28f8c7c1..18a7c6a27 100644 --- a/src/scriptapi.cpp +++ b/src/scriptapi.cpp @@ -5326,21 +5326,6 @@ void scriptapi_on_leaveplayer(lua_State *L, ServerActiveObject *player) scriptapi_run_callbacks(L, 1, RUN_CALLBACKS_MODE_FIRST); } -void scriptapi_get_creative_inventory(lua_State *L, ServerActiveObject *player) -{ - realitycheck(L); - assert(lua_checkstack(L, 20)); - StackUnroller stack_unroller(L); - - Inventory *inv = player->getInventory(); - assert(inv); - - lua_getglobal(L, "minetest"); - lua_getfield(L, -1, "creative_inventory"); - luaL_checktype(L, -1, LUA_TTABLE); - inventory_set_list_from_lua(inv, "main", L, -1, PLAYER_INVENTORY_SIZE); -} - static void get_auth_handler(lua_State *L) { lua_getglobal(L, "minetest"); diff --git a/src/scriptapi.h b/src/scriptapi.h index baaf061a9..f695e5263 100644 --- a/src/scriptapi.h +++ b/src/scriptapi.h @@ -61,7 +61,6 @@ void scriptapi_on_dieplayer(lua_State *L, ServerActiveObject *player); bool scriptapi_on_respawnplayer(lua_State *L, ServerActiveObject *player); void scriptapi_on_joinplayer(lua_State *L, ServerActiveObject *player); void scriptapi_on_leaveplayer(lua_State *L, ServerActiveObject *player); -void scriptapi_get_creative_inventory(lua_State *L, ServerActiveObject *player); bool scriptapi_get_auth(lua_State *L, const std::string &playername, std::string *dst_password, std::set *dst_privs); void scriptapi_create_auth(lua_State *L, const std::string &playername, diff --git a/src/server.cpp b/src/server.cpp index c7698a106..21c936e69 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -3131,8 +3131,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) // Placement was handled in lua // Apply returned ItemStack - if(g_settings->getBool("creative_mode") == false) - playersao->setWieldedItem(item); + playersao->setWieldedItem(item); } // If item has node placement prediction, always send the above @@ -3158,8 +3157,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) item, playersao, pointed)) { // Apply returned ItemStack - if(g_settings->getBool("creative_mode") == false) - playersao->setWieldedItem(item); + playersao->setWieldedItem(item); } } // action == 4 @@ -4380,9 +4378,7 @@ void Server::UpdateCrafting(u16 peer_id) // Get a preview for crafting ItemStack preview; - // No crafting in creative mode - if(g_settings->getBool("creative_mode") == false) - getCraftingResult(&player->inventory, preview, false, this); + getCraftingResult(&player->inventory, preview, false, this); // Put the new preview in InventoryList *plist = player->inventory.getList("craftpreview"); @@ -4717,10 +4713,6 @@ PlayerSAO* Server::emergePlayer(const char *name, u16 peer_id) scriptapi_on_joinplayer(m_lua, playersao); - /* Creative mode */ - if(g_settings->getBool("creative_mode")) - playersao->createCreativeInventory(); - return playersao; }