From 947b3014566a611675435e3ceb6f7bc485c4199c Mon Sep 17 00:00:00 2001 From: Dorian Wouters Date: Sun, 14 Aug 2016 11:30:00 +0200 Subject: [PATCH] Move minetest.rotate_node() edit to [_misc] DON'T edit mods directly if it's possible to override them, or if the edit has no relation to that specific mod (which was the case). This reverts commit 3752bf2e645391afce10bdb7866406d03e95916d. --- .../mods/default/functions.lua | 24 ------------------- mods/_misc/init.lua | 4 ++++ mods/_misc/inventory_rotate_node.lua | 22 +++++++++++++++++ 3 files changed, 26 insertions(+), 24 deletions(-) create mode 100644 mods/_misc/inventory_rotate_node.lua diff --git a/minetestforfun_game/mods/default/functions.lua b/minetestforfun_game/mods/default/functions.lua index 501e51a1..9138f53d 100755 --- a/minetestforfun_game/mods/default/functions.lua +++ b/minetestforfun_game/mods/default/functions.lua @@ -534,27 +534,3 @@ function default.intersects_protection(minp, maxp, player_name, interval) return false end - - ---rewrite function minetest.rotate_node(itemstack, placer, pointed_thing) to refill inventory -local old_rotate_node = minetest.rotate_node -function minetest.rotate_node(itemstack, placer, pointed_thing) - local stack_name = itemstack:get_name() - local ret = old_rotate_node(itemstack, placer, pointed_thing) - if ret:get_count() == 0 and not minetest.setting_getbool("creative_mode") then - local index = placer:get_wield_index() - local inv = placer:get_inventory() - if inv:get_list("main") then - for i, stack in ipairs(inv:get_list("main")) do - if i ~= index and stack:get_name() == stack_name then - ret:add_item(stack) - stack:clear() - inv:set_stack("main", i, stack) - minetest.log("action", "Inventory Tweaks: refilled stack("..stack_name..") of " .. placer:get_player_name()) - break - end - end - end - end - return ret -end diff --git a/mods/_misc/init.lua b/mods/_misc/init.lua index 3fa9b566..ec2768ca 100755 --- a/mods/_misc/init.lua +++ b/mods/_misc/init.lua @@ -9,6 +9,10 @@ dofile(cwd.."/carbone_init.lua") dofile(cwd.."/commands.lua") dofile(cwd.."/forbid_underwater_torch.lua") +-- Inventory refill function override +-- see https://github.com/MinetestForFun/server-minetestforfun/issues/462 +dofile(cwd.."/inventory_rotate_node.lua") + -- Give initial stuff dofile(cwd.."/give_initial_stuff.lua") diff --git a/mods/_misc/inventory_rotate_node.lua b/mods/_misc/inventory_rotate_node.lua new file mode 100644 index 00000000..9fbdbbb7 --- /dev/null +++ b/mods/_misc/inventory_rotate_node.lua @@ -0,0 +1,22 @@ +--rewrite function minetest.rotate_node(itemstack, placer, pointed_thing) to refill inventory +local old_rotate_node = minetest.rotate_node +function minetest.rotate_node(itemstack, placer, pointed_thing) + local stack_name = itemstack:get_name() + local ret = old_rotate_node(itemstack, placer, pointed_thing) + if ret:get_count() == 0 and not minetest.setting_getbool("creative_mode") then + local index = placer:get_wield_index() + local inv = placer:get_inventory() + if inv:get_list("main") then + for i, stack in ipairs(inv:get_list("main")) do + if i ~= index and stack:get_name() == stack_name then + ret:add_item(stack) + stack:clear() + inv:set_stack("main", i, stack) + minetest.log("action", "Inventory Tweaks: refilled stack("..stack_name..") of " .. placer:get_player_name()) + break + end + end + end + end + return ret +end