Fix unremovable ta4_chest_dummy bug

This commit is contained in:
Joachim Stolberg 2023-01-08 13:58:18 +01:00
parent a88a07e421
commit 71d0d6f012

View File

@ -346,6 +346,20 @@ local function count_number_of_chests(pos)
M(pos):set_int("stacksize", STACK_SIZE * cnt) M(pos):set_int("stacksize", STACK_SIZE * cnt)
end end
local function dummy_chest_behind(pos, node)
local dir = techage.side_to_outdir("B", node.param2)
local pos1 = tubelib2.get_pos(pos, dir)
node = techage.get_node_lvm(pos1)
return node.name == "techage:ta4_chest_dummy"
end
local function part_of_a_chain(pos, node)
local dir = techage.side_to_outdir("F", node.param2)
local pos1 = tubelib2.get_pos(pos, dir)
node = techage.get_node_lvm(pos1)
return node.name == "techage:ta4_chest_dummy" or node.name == "techage:ta4_chest"
end
local function search_chest_in_front(pos, node) local function search_chest_in_front(pos, node)
local dir = techage.side_to_outdir("F", node.param2) local dir = techage.side_to_outdir("F", node.param2)
local pos1 = tubelib2.get_pos(pos, dir) local pos1 = tubelib2.get_pos(pos, dir)
@ -529,6 +543,10 @@ minetest.register_node("techage:ta4_chest", {
after_place_node = function(pos, placer) after_place_node = function(pos, placer)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
if dummy_chest_behind(pos, node) then
minetest.remove_node(pos)
return true
end
if search_chest_in_front(pos, node) then if search_chest_in_front(pos, node) then
node.name = "techage:ta4_chest_dummy" node.name = "techage:ta4_chest_dummy"
minetest.swap_node(pos, node) minetest.swap_node(pos, node)
@ -667,6 +685,18 @@ techage.register_node({"techage:ta4_chest_dummy"}, {
end end
}) })
minetest.register_lbm({
label = "Repair Dummy Chests",
name = "techage:chest_dummy",
nodenames = {"techage:ta4_chest_dummy"},
run_at_every_load = true,
action = function(pos, node)
if not part_of_a_chain(pos, node) then
minetest.swap_node(pos, {name = "techage:ta4_chest", param2 = node.param2})
end
end,
})
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "techage:ta4_chest", output = "techage:ta4_chest",