diff options
Diffstat (limited to 'mesecons_whiskers75/init.lua')
-rw-r--r-- | mesecons_whiskers75/init.lua | 60 |
1 files changed, 60 insertions, 0 deletions
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) + |