]> git.lizzy.rs Git - Crafter.git/commitdiff
Fix buttons and levers placing on ironblock
authoroilboi <47129783+oilboi@users.noreply.github.com>
Mon, 29 Jun 2020 08:24:26 +0000 (04:24 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Mon, 29 Jun 2020 08:24:26 +0000 (04:24 -0400)
mods/redstone/button.lua
mods/redstone/lever.lua

index 4ff0248398ee15c037b10771750a09de8e5369b6..d1b96f893c4507ec2432274c43adf27486150bad 100644 (file)
@@ -1,5 +1,11 @@
-local minetest,table,vector = minetest,table,vector
-
+local
+minetest,table,vector
+=
+minetest,table,vector
+local excluded_nodes = {
+       ["main:ironblock"]=true,
+       ["main:ironblock_on"]=true,
+}
 local excluded_mods = {redstone=true,door=true}
 local registered_nodes
 minetest.register_on_mods_loaded(function()
@@ -16,6 +22,7 @@ minetest.register_node("redstone:button_off", {
        sunlight_propagates = true,
        walkable = false,
        drawtype= "nodebox",
+       node_placement_prediction = "",
        drop="redstone:button_off",
        node_box = {
                type = "fixed",
@@ -27,8 +34,10 @@ minetest.register_node("redstone:button_off", {
        on_construct = function(pos)
                local param2 = minetest.get_node(pos).param2
                local dir = minetest.wallmounted_to_dir(param2)
-               local node = minetest.get_node(vector.add(pos,dir)).name
-               if excluded_mods[registered_nodes[node].mod_origin] then
+               local node = minetest.get_node(vector.add(pos,dir))
+               local def = registered_nodes[node.name]
+               local remove = (excluded_mods[def.mod_origin] == true or excluded_nodes[node.name] == true)
+               if remove then
                        minetest.swap_node(pos,{name="air"})
                        redstone.inject(pos,nil)
                        minetest.throw_item(pos, "redstone:button_off")
index cda34c877a26ac45538738cfb61b997ac2cd30b8..8498c8037511c4015ae67f65a467a5216639d6cb 100644 (file)
@@ -3,7 +3,10 @@ local
 minetest,vector,math,pairs
 =
 minetest,vector,math,pairs
-
+local excluded_nodes = {
+       ["main:ironblock"]=true,
+       ["main:ironblock_on"]=true,
+}
 local excluded_mods = {redstone=true,door=true}
 local registered_nodes
 minetest.register_on_mods_loaded(function()
@@ -84,6 +87,7 @@ minetest.register_node("redstone:lever_off", {
        walkable = false,
        drawtype= "nodebox",
        drop="redstone:lever_off",
+       node_placement_prediction = "",
        node_box = {
                type = "fixed",
                fixed = {
@@ -96,8 +100,10 @@ minetest.register_node("redstone:lever_off", {
        on_construct = function(pos)
                local param2 = minetest.get_node(pos).param2
                local dir = minetest.wallmounted_to_dir(param2)
-               local node = minetest.get_node(vector.add(pos,dir)).name
-               if excluded_mods[registered_nodes[node].mod_origin] then
+               local node = minetest.get_node(vector.add(pos,dir))
+               local def = registered_nodes[node.name]
+               local remove = (excluded_mods[def.mod_origin] == true or excluded_nodes[node.name] == true)
+               if remove then
                        minetest.swap_node(pos,{name="air"})
                        redstone.inject(pos,nil)
                        minetest.throw_item(pos, "redstone:lever_off")