]> git.lizzy.rs Git - Crafter.git/commitdiff
Make levers and buttons work
authoroilboi <47129783+oilboi@users.noreply.github.com>
Sun, 28 Jun 2020 07:11:31 +0000 (03:11 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Sun, 28 Jun 2020 07:11:31 +0000 (03:11 -0400)
mods/redstone/button.lua
mods/redstone/init.lua
mods/redstone/inverter.lua
mods/redstone/lever.lua

index e767aa8ac7763bf0103e28978c2d6ea1caba0974..d6310fe42da45805f113b3d4e2081c252a2d7d3e 100644 (file)
@@ -22,27 +22,27 @@ minetest.register_node("redstone:button_off", {
                minetest.swap_node(pos, {name="redstone:button_on",param2=node.param2})
 
                minetest.sound_play("lever", {pos=pos})
+
                local timer = minetest.get_node_timer(pos)
                timer:start(1.25)
 
                local dir = minetest.wallmounted_to_dir(node.param2)
-               pos = vector.add(dir,pos)
-       
-               local meta = minetest.get_meta(pos)
 
-               meta:set_int("redstone_power", 9)
+               redstone.inject(pos,{torch=9})
+               local pos2 = vector.add(dir,pos)
+               redstone.inject(pos2,{torch=9})
 
-               redstone.collect_info(pos)
+               redstone.update(pos)
+               redstone.update(pos2)
        end,
        after_destruct = function(pos, oldnode)
+               redstone.inject(pos,nil)
                local dir = minetest.wallmounted_to_dir(oldnode.param2)
-               pos = vector.add(dir,pos)
-       
-               local meta = minetest.get_meta(pos)
+               local pos2 = vector.add(dir,pos)
+               redstone.inject(pos2,nil)
 
-               meta:set_int("redstone_power", 0)
-               
-               redstone.collect_info(pos)
+               redstone.update(pos)
+               redstone.update(pos2)
        end,
 })
 minetest.register_node("redstone:button_on", {
@@ -69,24 +69,23 @@ minetest.register_node("redstone:button_on", {
                local node = minetest.get_node(pos)
                minetest.swap_node(pos, {name="redstone:button_off",param2=node.param2})
 
-               local dir = minetest.wallmounted_to_dir(node.param2)
-               pos = vector.add(dir,pos)
-       
-               local meta = minetest.get_meta(pos)
+               redstone.inject(pos,nil)
+               local param2 = minetest.get_node(pos).param2
+               local dir = minetest.wallmounted_to_dir(param2)
+               local pos2 = vector.add(dir,pos)
+               redstone.inject(pos2,nil)
 
-               meta:set_int("redstone_power", 0)
-               
-               redstone.collect_info(pos)
+               redstone.update(pos)
+               redstone.update(pos2)
                
        end,
        after_destruct = function(pos, oldnode)
+               redstone.inject(pos,nil)
                local dir = minetest.wallmounted_to_dir(oldnode.param2)
-               pos = vector.add(dir,pos)
-       
-               local meta = minetest.get_meta(pos)
+               local pos2 = vector.add(dir,pos)
+               redstone.inject(pos2,nil)
 
-               meta:set_int("redstone_power", 0)
-               
-               redstone.collect_info(pos)
+               redstone.update(pos)
+               redstone.update(pos2)
        end,
 })
index 45ed90febfbee6ce0df13ec6f372da0ee6516195..423ec4c5e6f9c488933b39443d6df4e99d7f1e8f 100644 (file)
@@ -46,8 +46,8 @@ local path = minetest.get_modpath("redstone")
 --dofile(path.."/functions.lua")
 --dofile(path.."/wire.lua")
 dofile(path.."/torch.lua")
---dofile(path.."/lever.lua")
---dofile(path.."/button.lua")
+dofile(path.."/lever.lua")
+dofile(path.."/button.lua")
 dofile(path.."/repeater.lua")
 --dofile(path.."/light.lua")
 --dofile(path.."/piston.lua")
index 39610b61852bce9981cde454d7ca0b76b8c7edc4..d4a56b7d63596181e4f1bd5d2bb0a2b6fdba3968 100644 (file)
@@ -37,7 +37,7 @@ minetest.register_node("redstone:inverter_on", {
                redstone.inject(pos,{
                        name = "redstone:inverter_on",
                        directional_activator = true,
-                       input  = vector.multiply(dir,-1),
+                       input  = vector.subtract(pos,dir),
                        dir = dir
                })
                redstone.update(pos)
@@ -60,11 +60,12 @@ redstone.register_activator({
                        torch  = 9,
                        torch_directional = true,
                        directional_activator = true,
-                       input  = vector.multiply(dir,-1),
+                       input  = vector.subtract(pos,dir),
+                       output = vector.add(pos,dir),
                        dir = dir
                })
-               minetest.after(0.1,function()
-                       --redstone.update(pos)
+               minetest.after(0,function()
+                       redstone.update(pos)
                end)
        end
 })
@@ -79,7 +80,7 @@ minetest.register_lbm({
                redstone.inject(pos,{
                        name = "redstone:inverter_on",
                        directional_activator = true,
-                       input  = vector.multiply(dir,-1),
+                       input  = vector.subtract(pos,dir),
                        dir = dir
                })
        end,
@@ -122,7 +123,8 @@ minetest.register_node("redstone:inverter_off", {
                        torch  = 9,
                        torch_directional = true,
                        directional_activator = true,
-                       input  = vector.multiply(dir,-1),
+                       input  = vector.subtract(pos,dir),
+                       output = vector.add(pos,dir),
                        dir = dir
                })
                redstone.update(pos)
@@ -143,11 +145,11 @@ redstone.register_activator({
                redstone.inject(pos,{
                        name = "redstone:inverter_on",
                        directional_activator = true,
-                       input  = vector.multiply(dir,-1),
+                       input  = vector.subtract(pos,dir),
                        dir = dir
                })
-               minetest.after(0.1,function()
-                       --redstone.update(pos)
+               minetest.after(0,function()
+                       redstone.update(pos)
                end)
        end
 })
@@ -164,7 +166,8 @@ minetest.register_lbm({
                        torch  = 9,
                        torch_directional = true,
                        directional_activator = true,
-                       input  = vector.multiply(dir,-1),
+                       input  = vector.subtract(pos,dir),
+                       output = vector.add(pos,dir),
                        dir    = dir
                })
                redstone.update(pos)
index 273f6c0cf423c96c9270f3758ecfce2e81ef6e18..c9c9f0748546a282cc7881508c09cfae20809e47 100644 (file)
@@ -5,8 +5,8 @@ minetest,vector,math,pairs
 minetest,vector,math,pairs
 
 
-minetest.register_node("redstone:lever_off", {
-    description = "Lever",
+minetest.register_node("redstone:lever_on", {
+    description = "Lever On",
     tiles = {"stone.png"},
     groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,dig_immediate=1},
     sounds = main.stoneSound(),
@@ -21,36 +21,38 @@ minetest.register_node("redstone:lever_off", {
                fixed = {
                                --left front bottom right back top
                                {-0.3, -0.5,  -0.4, 0.3,  -0.4, 0.4},
-                               {-0.1, -0.5,  -0.3, 0.1,  0, -0.1},
+                               {-0.1, -0.5,  0.3, 0.1,  0, 0.1},
                        },
                },
     on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-               minetest.swap_node(pos, {name="redstone:lever_on",param2=node.param2})
+               minetest.swap_node(pos, {name="redstone:lever_off",param2=node.param2})
+
                minetest.sound_play("lever", {pos=pos})
 
                local dir = minetest.wallmounted_to_dir(node.param2)
-               pos = vector.add(dir,pos)
-       
-               local meta = minetest.get_meta(pos)
 
-               meta:set_int("redstone_power", 9)
-               
-               
-               redstone.collect_info(pos)
+               redstone.inject(pos,nil)
+               local pos2 = vector.add(dir,pos)
+               redstone.inject(pos2,nil)
+
+               redstone.update(pos)
+               redstone.update(pos2)
        end,
        after_destruct = function(pos, oldnode)
+               redstone.inject(pos,nil)
                local dir = minetest.wallmounted_to_dir(oldnode.param2)
-               pos = vector.add(dir,pos)
-       
-               local meta = minetest.get_meta(pos)
+               local pos2 = vector.add(dir,pos)
+               redstone.inject(pos2,nil)
 
-               meta:set_int("redstone_power", 0)
-               
-               redstone.collect_info(pos)
+               redstone.update(pos)
+               redstone.update(pos2)
        end,
 })
-minetest.register_node("redstone:lever_on", {
-    description = "Lever On",
+
+
+
+minetest.register_node("redstone:lever_off", {
+    description = "Lever",
     tiles = {"stone.png"},
     groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,dig_immediate=1},
     sounds = main.stoneSound(),
@@ -65,31 +67,29 @@ minetest.register_node("redstone:lever_on", {
                fixed = {
                                --left front bottom right back top
                                {-0.3, -0.5,  -0.4, 0.3,  -0.4, 0.4},
-                               {-0.1, -0.5,  0.3, 0.1,  0, 0.1},
+                               {-0.1, -0.5,  -0.3, 0.1,  0, -0.1},
                        },
                },
     on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-               minetest.swap_node(pos, {name="redstone:lever_off",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)
-               pos = vector.add(dir,pos)
-       
-               local meta = minetest.get_meta(pos)
 
-               meta:set_int("redstone_power", 0)
-               
-               redstone.collect_info(pos)
+               redstone.inject(pos,{torch=9})
+               local pos2 = vector.add(dir,pos)
+               redstone.inject(pos2,{torch=9})
+
+               redstone.update(pos)
+               redstone.update(pos2)
        end,
        after_destruct = function(pos, oldnode)
+               redstone.inject(pos,nil)
                local dir = minetest.wallmounted_to_dir(oldnode.param2)
-               pos = vector.add(dir,pos)
-       
-               local meta = minetest.get_meta(pos)
+               local pos2 = vector.add(dir,pos)
+               redstone.inject(pos2,nil)
 
-               meta:set_int("redstone_power", 0)
-               
-               redstone.collect_info(pos)
+               redstone.update(pos)
+               redstone.update(pos2)
        end,
 })