]> git.lizzy.rs Git - Crafter.git/commitdiff
Make buttons and levers work properly
authoroilboi <47129783+oilboi@users.noreply.github.com>
Fri, 26 Jun 2020 14:58:07 +0000 (10:58 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Fri, 26 Jun 2020 14:58:07 +0000 (10:58 -0400)
mods/redstone/button.lua
mods/redstone/init.lua
mods/redstone/lever.lua

index 16609d966134a750394cc1715c72200c0de2551c..e767aa8ac7763bf0103e28978c2d6ea1caba0974 100644 (file)
@@ -19,7 +19,7 @@ minetest.register_node("redstone:button_off", {
                        },
                },
     on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-               minetest.set_node(pos, {name="redstone:button_on",param2=node.param2})
+               minetest.swap_node(pos, {name="redstone:button_on",param2=node.param2})
 
                minetest.sound_play("lever", {pos=pos})
                local timer = minetest.get_node_timer(pos)
@@ -67,7 +67,7 @@ minetest.register_node("redstone:button_on", {
                minetest.sound_play("lever", {pos=pos,pitch=0.8})
 
                local node = minetest.get_node(pos)
-               minetest.set_node(pos, {name="redstone:button_off",param2=node.param2})
+               minetest.swap_node(pos, {name="redstone:button_off",param2=node.param2})
 
                local dir = minetest.wallmounted_to_dir(node.param2)
                pos = vector.add(dir,pos)
index fbc25a9944dcd08ff3b9d32f48251a6302273900..fa5efad4f8311b33e1a652abf7004b7d15375dbf 100644 (file)
@@ -237,20 +237,11 @@ end
 
 
 --make all power sources push power out
-local x_min
-local x_max
-local y_min
-local y_max
-local z_min
-local z_max
-local initial_check
-
-
 local pos
 local node
 local power
 function redstone.calculate()
-       speed_test = minetest.get_us_time()/1000000
+       --speed_test = minetest.get_us_time()/1000000
 
        --pathfind through memory map   
        for x,index_x in pairs(r_index) do
@@ -268,26 +259,26 @@ function redstone.calculate()
                end
        end
        
-       print("total torch calc time:"..minetest.get_us_time()/1000000-speed_test)
+       --print("total torch calc time:"..minetest.get_us_time()/1000000-speed_test)
 
 
 
        --reassemble the table into a position list minetest can understand
        --run through and set dust
-       local count = 0
+       --local count = 0
 
        for x,datax in pairs(r_index) do
                for y,datay in pairs(datax) do
                        for z,index in pairs(datay) do
                                --print(get_node(new_vec(x,y,z)).name)
                                if index and index.dust and index.level ~= check_table[x][y][z] then
-                                       count = count + 1
+                                       --count = count + 1
                                        minetest.set_node(new_vec(x,y,z),{name="redstone:dust_"..index.level})
                                end
                        end
                end
        end
-       print("set "..count.." nodes")
+       --print("set "..count.." nodes")
 
        for x,datax in pairs(a_index) do
                for y,datay in pairs(datax) do
@@ -305,6 +296,7 @@ function redstone.calculate()
                                --non directional activators
                                else
                                        power = get_local_power(new_vec(x,y,z))
+                                       --print(power)
                                        if power then
                                                if power > 0 then
                                                        redstone_activate(new_vec(x,y,z),power)
index 82824b311982e91e5705b22bd5bbb5c261b0c904..517e9e29fa07dfeaa68eda0122edc3b041293870 100644 (file)
@@ -22,7 +22,7 @@ minetest.register_node("redstone:lever_off", {
                        },
                },
     on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-               minetest.set_node(pos, {name="redstone:lever_on",param2=node.param2})
+               minetest.swap_node(pos, {name="redstone:lever_on",param2=node.param2})
                minetest.sound_play("lever", {pos=pos})
 
                local dir = minetest.wallmounted_to_dir(node.param2)
@@ -66,7 +66,7 @@ minetest.register_node("redstone:lever_on", {
                        },
                },
     on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-               minetest.set_node(pos, {name="redstone:lever_off",param2=node.param2})
+               minetest.swap_node(pos, {name="redstone:lever_off",param2=node.param2})
 
                minetest.sound_play("lever", {pos=pos})