Rewrite mcl_util.hopper_pull in terms of mcl_util.hopper_pull_to_inventory

This commit is contained in:
teknomunk 2024-08-06 19:03:13 -05:00
parent 2f4cbfca2d
commit b2c74dfe1a
1 changed files with 1 additions and 28 deletions

View File

@ -369,7 +369,6 @@ function mcl_util.hopper_push(pos, dst_pos)
end end
function mcl_util.hopper_pull_to_inventory(hop_inv, hop_list, src_pos, pos) function mcl_util.hopper_pull_to_inventory(hop_inv, hop_list, src_pos, pos)
-- TODO: merge together with hopper_pull after https://git.minetest.land/MineClone2/MineClone2/pulls/4190 is merged
-- Get node pos' for item transfer -- Get node pos' for item transfer
local src = minetest.get_node(src_pos) local src = minetest.get_node(src_pos)
if not minetest.registered_nodes[src.name] then return end if not minetest.registered_nodes[src.name] then return end
@ -399,33 +398,7 @@ end
---@param pos Vector ---@param pos Vector
---@param src_pos Vector ---@param src_pos Vector
function mcl_util.hopper_pull(pos, src_pos) function mcl_util.hopper_pull(pos, src_pos)
local hop_inv = minetest.get_meta(pos):get_inventory() return mcl_util.hopper_pull_to_inventory(minetest.get_meta(pos):get_inventory(), 'main', src_pos, pos)
local hop_list = 'main'
-- Get node pos' for item transfer
local src = minetest.get_node(src_pos)
if not minetest.registered_nodes[src.name] then return end
local src_type = minetest.get_item_group(src.name, "container")
if src_type ~= 2 then return end
local src_def = minetest.registered_nodes[src.name]
local src_list = 'main'
local src_inv, stack_id
if src_def._mcl_hoppers_on_try_pull then
src_inv, src_list, stack_id = src_def._mcl_hoppers_on_try_pull(src_pos, pos, hop_inv, hop_list)
else
local src_meta = minetest.get_meta(src_pos)
src_inv = src_meta:get_inventory()
stack_id = mcl_util.select_stack(src_inv, src_list, hop_inv, hop_list, nil, 1)
end
if stack_id ~= nil then
local ok = mcl_util.move_item(src_inv, src_list, stack_id, hop_inv, hop_list)
if src_def._mcl_hoppers_on_after_pull then
src_def._mcl_hoppers_on_after_pull(src_pos)
end
end
end end
local function drop_item_stack(pos, stack) local function drop_item_stack(pos, stack)