AND block works! (YIPPEE!!!) See WHISKERS75_README.

This commit is contained in:
Whiskers75 - 2012-06-21 18:54:35 +01:00
parent bd3bd4cf48
commit 28bca749be
8 changed files with 40 additions and 31 deletions

9
WHISKERS75_README Normal file

@ -0,0 +1,9 @@
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.
6: Enjoy!

@ -2,4 +2,4 @@
ENABLE_PISTON_ANIMATION=0 ENABLE_PISTON_ANIMATION=0
BLINKY_PLANT_INTERVAL=3 BLINKY_PLANT_INTERVAL=3
OLD_PISTON_DIRECTION=0 OLD_PISTON_DIRECTION=0
ENABLE_TEMPEREST=0 ENABLE_TEMPEREST=1

@ -217,3 +217,33 @@ if ENABLE_TEMPEREST==1 then
} }
}) })
end end
--End Temperest's code
--Whiskers75's code
--AND block
local i
-- Make the block:
minetest.register_node ("mesecons_temperest:andblock", {
drawtype = raillike,
description = "AND block",
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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 364 B

@ -1,3 +0,0 @@
default
mesecons
mesecons_temperest

@ -1,27 +0,0 @@
--Whiskers75's code
--AND block
-- Make the block:
minetest.register_node ("mesecons_whiskers75:andblock", {
drawtype = signlike,
description = "AND block",
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),
})
local update = function(pos)
local node = minetest.env:get_node(pos)
if node.name=="mesecons_whiskers75:andblock" then
lnode = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z})
if lnode.name=="mesecons:mesecon_on" then set_node_on({x=pos.x, y=pos.y+1, z=pos.z}) end
lnode = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z})
if lnode.name=="mesecons:mesecon_on" then set_node_on({x=pos.x, y=pos.y+1, z=pos.z}) end
end
end
-- This SHOULD detect mesecons on x+ or -1 and turn a node y+1 on...

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 B