summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--WHISKERS75_README4
-rw-r--r--mesecons_temperest/init.lua25
-rw-r--r--mesecons_whiskers75/depends.txt2
-rw-r--r--mesecons_whiskers75/init.lua60
-rw-r--r--mesecons_whiskers75/textures/whiskers75andblock.png (renamed from mesecons_temperest/textures/whiskers75andblock.png)bin364 -> 364 bytes
5 files changed, 64 insertions, 27 deletions
diff --git a/WHISKERS75_README b/WHISKERS75_README
index 3511ef7..9d24360 100644
--- a/WHISKERS75_README
+++ b/WHISKERS75_README
@@ -4,6 +4,6 @@ README for Whiskers75's contributions
1: You need Temperest's code enabled (ENABLE_TEMPEREST=1 in settings.lua).
2: To work it, place mesecons (on) in the position x plus or minus 1 from the block.
3: Then punch, and off mesecons in the position y plus or minus 1 from the block will be powered.
-4: Currently, you will have to dig the mesecons in the above positions up if the circuit changes, but that will be fixed.
-5: The name of the block is mesecons_temperest:andblock.
+4: The AND gate will auto power on, but NOT off, punch to update (help here)
+5: The name of the block is mesecons_whiskers75:andblock.
6: Enjoy!
diff --git a/mesecons_temperest/init.lua b/mesecons_temperest/init.lua
index 9725672..08b3eb5 100644
--- a/mesecons_temperest/init.lua
+++ b/mesecons_temperest/init.lua
@@ -243,29 +243,4 @@ if ENABLE_TEMPEREST==1 then
})
end
---End Temperest's code
---Whiskers75's code
---AND block
-
--- Make the block:
-
-minetest.register_node("mesecons_temperest:andblock", {
- description = "AND block",
- drawtype = "raillike",
- tile_images = {"whiskers75andblock.png"},
- inventory_image = {"whiskers75andblock.png"},
- sunlight_propagates = true,
- paramtype = 'light',
- walkable = true,
- groups = {dig_immediate=2},
- material = minetest.digprop_constanttime(1.0),
-})
-
-minetest.register_on_punchnode(function(pos, node, puncher)
- if node.name=="mesecons_temperest:andblock" then
- anode = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z})
- bnode = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z})
- if anode.name=="mesecons:mesecon_on" and bnode.name=="mesecons:mesecon_on" then mesecon:receptor_on({x=pos.x, y=pos.y+1, z=pos.z}) end
- end
-end)
diff --git a/mesecons_whiskers75/depends.txt b/mesecons_whiskers75/depends.txt
new file mode 100644
index 0000000..aca967d
--- /dev/null
+++ b/mesecons_whiskers75/depends.txt
@@ -0,0 +1,2 @@
+default
+mesecons
diff --git a/mesecons_whiskers75/init.lua b/mesecons_whiskers75/init.lua
new file mode 100644
index 0000000..15e4785
--- /dev/null
+++ b/mesecons_whiskers75/init.lua
@@ -0,0 +1,60 @@
+--Whiskers75's code
+--AND block
+
+-- Make the block:
+
+minetest.register_node("mesecons_whiskers75:andblock", {
+ description = "AND block",
+ drawtype = "raillike",
+ tile_images = {"whiskers75andblock.png"},
+ inventory_image = {"whiskers75andblock.png"},
+ sunlight_propagates = true,
+ paramtype = 'light',
+ walkable = true,
+ groups = {dig_immediate=2},
+ material = minetest.digprop_constanttime(1.0),
+})
+
+minetest.register_on_punchnode(function(pos, node, puncher)
+ if node.name=="mesecons_whiskers75:andblock" then
+ anode = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z})
+ bnode = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z})
+ if anode.name=="mesecons:mesecon_on" and bnode.name=="mesecons:mesecon_on" then mesecon:receptor_on({x=pos.x, y=pos.y+1, z=pos.z}) end
+ end
+end)
+
+minetest.register_on_punchnode(function(pos, node, puncher)
+ if node.name=="mesecons_whiskers75:andblock" then
+ anode = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z})
+ bnode = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z})
+ if anode.name=="mesecons:mesecon_off" then mesecon:receptor_off({x=pos.x, y=pos.y+1, z=pos.z}) end
+ if bnode.name=="mesecons:mesecon_off" then mesecon:receptor_off({x=pos.x, y=pos.y+1, z=pos.z}) end
+ end
+end)
+
+function update(pos, node)
+ if node.name=="mesecons_whiskers75:andblock" then
+ anode = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z})
+ bnode = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z})
+ if anode.name=="mesecons:mesecon_off" then mesecon:receptor_off({x=pos.x, y=pos.y+1, z=pos.z}) end
+ if bnode.name=="mesecons:mesecon_off" then mesecon:receptor_off({x=pos.x, y=pos.y+1, z=pos.z}) end
+ end
+
+ if node.name=="mesecons_whiskers75:andblock" then
+ anode = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z})
+ bnode = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z})
+ if anode.name=="mesecons:mesecon_on" and bnode.name=="mesecons:mesecon_on" then mesecon:receptor_on({x=pos.x, y=pos.y+1, z=pos.z}) end
+ end
+end
+
+
+minetest.register_craft({
+ output = '"mesecons_whiskers75:andblock" 2',
+ recipe = {
+ {'"default:wood"', '', '"default:dirt"'},
+ }
+})
+
+mesecon:register_on_signal_on(update)
+mesecon:register_on_signal_off(update)
+
diff --git a/mesecons_temperest/textures/whiskers75andblock.png b/mesecons_whiskers75/textures/whiskers75andblock.png
index 63fc07a..63fc07a 100644
--- a/mesecons_temperest/textures/whiskers75andblock.png
+++ b/mesecons_whiskers75/textures/whiskers75andblock.png
Binary files differ