Added minetest.get_inventory(location)
This commit is contained in:
@@ -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)
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user