Button Fixes:

Fix buttons not being able to be placed on ice.
Also, fix redstone circuits staying on if an activated button
was destroyed indirectly.
This commit is contained in:
MysticTempest 2022-05-20 22:56:50 -05:00
parent e322a9e23a
commit 66854ff7b3
1 changed files with 9 additions and 3 deletions

View File

@ -66,9 +66,11 @@ local function on_button_place(itemstack, placer, pointed_thing)
groups = def.groups
end
-- Only allow placement on full-cube solid opaque nodes
if (not groups) or (not groups.solid) or (not groups.opaque) or (def.node_box and def.node_box.type ~= "regular") then
return itemstack
-- Only allow placement on full-cube solid opaque nodes, and ice!
if (not groups) or (not groups.solid) or (def.node_box and def.node_box.type ~= "regular") or (not groups.ice) then
if (not groups.opaque) then
return itemstack
end
end
local above = pointed_thing.above
@ -193,6 +195,10 @@ function mesecon.register_button(basename, description, texture, recipeitem, sou
mesecon.receptor_off(pos, button_get_output_rules(node))
end
end,
on_destruct = function(pos) -- Ensure redstone circuit turns off if button is destroyed
local node = minetest.get_node(pos)
mesecon.receptor_off(pos, button_get_output_rules(node))
end,
_mcl_blast_resistance = 0.5,
_mcl_hardness = 0.5,