From 66854ff7b3ffcf6be6ef7f99c375fa4918e0bf3e Mon Sep 17 00:00:00 2001 From: MysticTempest Date: Fri, 20 May 2022 22:56:50 -0500 Subject: [PATCH] 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. --- mods/ITEMS/REDSTONE/mesecons_button/init.lua | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mods/ITEMS/REDSTONE/mesecons_button/init.lua b/mods/ITEMS/REDSTONE/mesecons_button/init.lua index 2812b27582..4e64637670 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_button/init.lua @@ -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,