From 39ed74bef70d3b038c32c948546da3e5f2bbe8af Mon Sep 17 00:00:00 2001 From: Whiskers75 - Date: Fri, 22 Jun 2012 17:49:26 +0100 Subject: [PATCH] AND block changed! Now in its own dir. Also, auto power on (NOT off) has been added. --- WHISKERS75_README | 4 +- mesecons_temperest/init.lua | 25 -------- mesecons_whiskers75/depends.txt | 2 + mesecons_whiskers75/init.lua | 60 ++++++++++++++++++ .../textures/whiskers75andblock.png | Bin 5 files changed, 64 insertions(+), 27 deletions(-) create mode 100644 mesecons_whiskers75/depends.txt create mode 100644 mesecons_whiskers75/init.lua rename {mesecons_temperest => mesecons_whiskers75}/textures/whiskers75andblock.png (100%) 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 similarity index 100% rename from mesecons_temperest/textures/whiskers75andblock.png rename to mesecons_whiskers75/textures/whiskers75andblock.png