diff options
Diffstat (limited to 'clientmods')
-rw-r--r-- | clientmods/inventory/autotool.lua | 22 | ||||
-rw-r--r-- | clientmods/inventory/init.lua | 4 |
2 files changed, 12 insertions, 14 deletions
diff --git a/clientmods/inventory/autotool.lua b/clientmods/inventory/autotool.lua index 976386724..430e6025b 100644 --- a/clientmods/inventory/autotool.lua +++ b/clientmods/inventory/autotool.lua @@ -1,9 +1,9 @@ -local function check_tool(groups, old_best_time) - local toolcaps = minetest.localplayer:get_wielded_item():get_tool_capabilities() +local function check_tool(stack, node_groups, old_best_time) + local toolcaps = stack:get_tool_capabilities() if not toolcaps then return end local best_time = old_best_time for group, groupdef in pairs(toolcaps.groupcaps) do - local level = groups[group] + local level = node_groups[group] if level then local this_time = groupdef.times[level] if this_time < best_time then @@ -17,14 +17,16 @@ end minetest.register_on_punchnode(function(pos, node) if not minetest.settings:get_bool("autotool") then return end local player = minetest.localplayer - local groups = minetest.get_node_def(node.name).groups + local inventory = minetest.get_inventory("current_player") + local node_groups = minetest.get_node_def(node.name).groups local new_index = player:get_wield_index() - local better, best = check_tool(groups, math.huge) - for i = 0, 35 do - player:set_wield_index(i) - better, best = check_tool(groups, best) - if better then - new_index = i + local is_better, best_time = false, math.huge + is_better, best_time = check_tool(player:get_wielded_item(), node_groups, best_time) + is_better, best_time = check_tool(inventory.hand[1], node_groups, best_time) + for index, stack in pairs(inventory.main) do + is_better, best_time = check_tool(stack, node_groups, best_time) + if is_better then + new_index = index - 1 end end player:set_wield_index(new_index) diff --git a/clientmods/inventory/init.lua b/clientmods/inventory/init.lua index eff8fa39b..52791b338 100644 --- a/clientmods/inventory/init.lua +++ b/clientmods/inventory/init.lua @@ -5,7 +5,3 @@ dofile(modpath .. "/invhack.lua") dofile(modpath .. "/enderchest.lua") dofile(modpath .. "/next_item.lua") dofile(modpath .. "/autotool.lua") - -minetest.register_on_inventory_open(function(inv) - print(inv) -end) |