summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony Zhang <azhang9@gmail.com>2012-01-09 20:52:19 -0500
committerAnthony Zhang <azhang9@gmail.com>2012-01-09 20:52:19 -0500
commitf221aeb06655e9753b4404737c95f505397c81aa (patch)
treeaf00e663a586edb29b426f03489c33754b2652cb
parentf82fb910646d430ee7c30e1a016899b3b3cee78b (diff)
downloadmesecons-f221aeb06655e9753b4404737c95f505397c81aa.tar
mesecons-f221aeb06655e9753b4404737c95f505397c81aa.tar.gz
mesecons-f221aeb06655e9753b4404737c95f505397c81aa.tar.bz2
mesecons-f221aeb06655e9753b4404737c95f505397c81aa.tar.xz
mesecons-f221aeb06655e9753b4404737c95f505397c81aa.zip
Update position finding code and fix indentation.
-rw-r--r--jeija/temperest.lua291
1 files changed, 159 insertions, 132 deletions
diff --git a/jeija/temperest.lua b/jeija/temperest.lua
index e8fb84d..8bd9507 100644
--- a/jeija/temperest.lua
+++ b/jeija/temperest.lua
@@ -1,182 +1,209 @@
--TEMPEREST-PLUG
minetest.register_node("jeija:mesecon_plug", {
- drawtype = "raillike",
- paramtype = "light",
- is_ground_content = true,
- tile_images = {"jeija_mesecon_plug.png"},
- inventory_image = "jeija_mesecon_plug.png",
- material = minetest.digprop_constanttime(0.1),
- walkable = false,
- selection_box = {
- type = "fixed",
- },
+ drawtype = "raillike",
+ paramtype = "light",
+ is_ground_content = true,
+ tile_images = {"jeija_mesecon_plug.png"},
+ inventory_image = "jeija_mesecon_plug.png",
+ material = minetest.digprop_constanttime(0.1),
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ },
})
mesecon:register_on_signal_on(function(pos, node)
- if node.name=="jeija:mesecon_plug" then
- for x = -2,2,2 do
- for z = -2,2,2 do
- lpos = {x=pos.x+x, y=pos.y, z=pos.z+z}
- lnode = minetest.env:get_node(lpos)
- if lnode.name=="jeija:mesecon_socket_off" then
- minetest.env:add_node(lpos, {name="jeija:mesecon_socket_on"})
- nodeupdate(lpos)
- mesecon:receptor_on(lpos)
- elseif lnode.name=="jeija:mesecon_inverter_on" then
- minetest.env:add_node(lpos, {name="jeija:mesecon_inverter_off"})
- nodeupdate(lpos)
- mesecon:receptor_off(lpos)
- end
- end
- end
- end
+ if node.name=="jeija:mesecon_plug" then
+ local set_node_on = function(pos)
+ node = minetest.env:get_node(pos)
+ if node.name=="jeija:mesecon_socket_off" then
+ minetest.env:add_node(pos, {name="jeija:mesecon_socket_on"})
+ nodeupdate(pos)
+ mesecon:receptor_on(pos)
+ elseif node.name=="jeija:mesecon_inverter_on" then
+ minetest.env:add_node(pos, {name="jeija:mesecon_inverter_off"})
+ nodeupdate(pos)
+ mesecon:receptor_off(pos)
+ end
+ end
+
+ lnode = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_on({x=pos.x-2, y=pos.y, z=pos.z}) end
+
+ lnode = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_on({x=pos.x+2, y=pos.y, z=pos.z}) end
+
+ lnode = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z-1}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_on({x=pos.x, y=pos.y, z=pos.z-2}) end
+
+ lnode = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z+1}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_on({x=pos.x-2, y=pos.y, z=pos.z+2}) end
+ end
end)
mesecon:register_on_signal_off(function(pos, node)
- if node.name=="jeija:mesecon_plug" then
- for x = -2,2,2 do
- for z = -2,2,2 do
- lpos = {x=pos.x+x, y=pos.y, z=pos.z+z}
- lnode = minetest.env:get_node(lpos)
- if lnode.name=="jeija:mesecon_socket_on" then
- minetest.env:add_node(lpos, {name="jeija:mesecon_socket_off"})
- nodeupdate(lpos)
- mesecon:receptor_off(lpos)
- elseif lnode.name=="jeija:mesecon_inverter_off" then
- minetest.env:add_node(lpos, {name="jeija:mesecon_inverter_on"})
- nodeupdate(lpos)
- mesecon:receptor_on(lpos)
- end
- end
- end
- end
+ if node.name=="jeija:mesecon_plug" then
+ local set_node_off = function(pos)
+ node = minetest.env:get_node(pos)
+ if node.name=="jeija:mesecon_socket_on" then
+ minetest.env:add_node(pos, {name="jeija:mesecon_socket_off"})
+ nodeupdate(pos)
+ mesecon:receptor_off(pos)
+ elseif node.name=="jeija:mesecon_inverter_off" then
+ minetest.env:add_node(pos, {name="jeija:mesecon_inverter_on"})
+ nodeupdate(pos)
+ mesecon:receptor_on(pos)
+ end
+ end
+
+ lnode = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_off({x=pos.x-2, y=pos.y, z=pos.z}) end
+
+ lnode = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_off({x=pos.x+2, y=pos.y, z=pos.z}) end
+
+ lnode = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z-1}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_off({x=pos.x, y=pos.y, z=pos.z-2}) end
+
+ lnode = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z+1}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_off({x=pos.x-2, y=pos.y, z=pos.z+2}) end
+ end
end)
minetest.register_on_dignode(function(pos, oldnode, digger)
- if oldnode.name == "jeija:mesecon_plug" then
- for x = -2,2,2 do
- for z = -2,2,2 do
- lpos = {x=pos.x+x, y=pos.y, z=pos.z+z}
- lnode = minetest.env:get_node(lpos)
- if lnode.name=="jeija:mesecon_socket_on" then
- minetest.env:add_node(lpos, {name="jeija:mesecon_socket_off"})
- nodeupdate(lpos)
- mesecon:receptor_off(lpos)
- elseif lnode.name=="jeija:mesecon_inverter_on" then
- minetest.env:add_node(lpos, {name="jeija:mesecon_inverter_off"})
- nodeupdate(lpos)
- mesecon:receptor_off(lpos)
- end
- end
- end
- end
+ if oldnode.name == "jeija:mesecon_plug" then
+ local set_node_deactivated = function(pos)
+ node = minetest.env:get_node(pos)
+ if node.name=="jeija:mesecon_socket_on" then
+ minetest.env:add_node(pos, {name="jeija:mesecon_socket_off"})
+ nodeupdate(pos)
+ mesecon:receptor_off(pos)
+ elseif node.name=="jeija:mesecon_inverter_on" then
+ minetest.env:add_node(pos, {name="jeija:mesecon_inverter_off"})
+ nodeupdate(pos)
+ mesecon:receptor_off(pos)
+ end
+ end
+
+ lnode = minetest.env:get_node({x=pos.x-1, y=pos.y, z=pos.z}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_deactivated({x=pos.x-2, y=pos.y, z=pos.z}) end
+
+ lnode = minetest.env:get_node({x=pos.x+1, y=pos.y, z=pos.z}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_deactivated({x=pos.x+2, y=pos.y, z=pos.z}) end
+
+ lnode = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z-1}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_deactivated({x=pos.x, y=pos.y, z=pos.z-2}) end
+
+ lnode = minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z+1}) --a node between this node and the one two nodes away
+ if lnode.name=="air" then set_node_deactivated({x=pos.x-2, y=pos.y, z=pos.z+2}) end
+ end
end)
minetest.register_craft({
- output = 'node "jeija:mesecon_plug" 2',
- recipe = {
- {'', 'node "jeija:mesecon_off"', ''},
- {'node "jeija:mesecon_off"', 'craft "default:steel_ingot"', 'node "jeija:mesecon_off"'},
- {'', 'node "jeija:mesecon_off"', ''},
- }
+ output = 'node "jeija:mesecon_plug" 2',
+ recipe = {
+ {'', 'node "jeija:mesecon_off"', ''},
+ {'node "jeija:mesecon_off"', 'craft "default:steel_ingot"', 'node "jeija:mesecon_off"'},
+ {'', 'node "jeija:mesecon_off"', ''},
+ }
})
--TEMPEREST-SOCKET
minetest.register_node("jeija:mesecon_socket_off", {
- drawtype = "raillike",
- paramtype = "light",
- is_ground_content = true,
- tile_images = {"jeija_mesecon_socket_off.png"},
- inventory_image = "jeija_mesecon_socket_off.png",
- material = minetest.digprop_constanttime(0.1),
- walkable = false,
- selection_box = {
- type = "fixed",
- },
+ drawtype = "raillike",
+ paramtype = "light",
+ is_ground_content = true,
+ tile_images = {"jeija_mesecon_socket_off.png"},
+ inventory_image = "jeija_mesecon_socket_off.png",
+ material = minetest.digprop_constanttime(0.1),
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ },
})
minetest.register_node("jeija:mesecon_socket_on", {
- drawtype = "raillike",
- paramtype = "light",
- is_ground_content = true,
- tile_images = {"jeija_mesecon_socket_on.png"},
- inventory_image = "jeija_mesecon_socket_on.png",
- material = minetest.digprop_constanttime(0.1),
- walkable = false,
- selection_box = {
- type = "fixed",
- },
- dug_item='node "jeija:mesecon_socket_off" 1',
+ drawtype = "raillike",
+ paramtype = "light",
+ is_ground_content = true,
+ tile_images = {"jeija_mesecon_socket_on.png"},
+ inventory_image = "jeija_mesecon_socket_on.png",
+ material = minetest.digprop_constanttime(0.1),
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ },
+ dug_item='node "jeija:mesecon_socket_off" 1',
})
minetest.register_on_dignode(
- function(pos, oldnode, digger)
- if oldnode.name == "jeija:mesecon_socket_on" then
- mesecon:receptor_off(pos)
- end
- end
+ function(pos, oldnode, digger)
+ if oldnode.name == "jeija:mesecon_socket_on" then
+ mesecon:receptor_off(pos)
+ end
+ end
)
mesecon:add_receptor_node("jeija:mesecon_socket_on")
mesecon:add_receptor_node_off("jeija:mesecon_socket_off")
minetest.register_craft({
- output = 'node "jeija:mesecon_socket_off" 2',
- recipe = {
- {'', 'craft "default:steel_ingot"', ''},
- {'craft "default:steel_ingot"', 'node "jeija:mesecon_off"', 'craft "default:steel_ingot"'},
- {'', 'craft "default:steel_ingot"', ''},
- }
+ output = 'node "jeija:mesecon_socket_off" 2',
+ recipe = {
+ {'', 'craft "default:steel_ingot"', ''},
+ {'craft "default:steel_ingot"', 'node "jeija:mesecon_off"', 'craft "default:steel_ingot"'},
+ {'', 'craft "default:steel_ingot"', ''},
+ }
})
--TEMPEREST-INVERTER
minetest.register_node("jeija:mesecon_inverter_off", {
- drawtype = "raillike",
- paramtype = "light",
- is_ground_content = true,
- tile_images = {"jeija_mesecon_inverter_off.png"},
- inventory_image = "jeija_mesecon_inverter_off.png",
- material = minetest.digprop_constanttime(0.1),
- walkable = false,
- selection_box = {
- type = "fixed",
- },
+ drawtype = "raillike",
+ paramtype = "light",
+ is_ground_content = true,
+ tile_images = {"jeija_mesecon_inverter_off.png"},
+ inventory_image = "jeija_mesecon_inverter_off.png",
+ material = minetest.digprop_constanttime(0.1),
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ },
})
minetest.register_node("jeija:mesecon_inverter_on", {
- drawtype = "raillike",
- paramtype = "light",
- is_ground_content = true,
- tile_images = {"jeija_mesecon_inverter_on.png"},
- inventory_image = "jeija_mesecon_inverter_on.png",
- material = minetest.digprop_constanttime(0.1),
- walkable = false,
- selection_box = {
- type = "fixed",
- },
- dug_item='node "jeija:mesecon_inverter_off" 1',
+ drawtype = "raillike",
+ paramtype = "light",
+ is_ground_content = true,
+ tile_images = {"jeija_mesecon_inverter_on.png"},
+ inventory_image = "jeija_mesecon_inverter_on.png",
+ material = minetest.digprop_constanttime(0.1),
+ walkable = false,
+ selection_box = {
+ type = "fixed",
+ },
+ dug_item='node "jeija:mesecon_inverter_off" 1',
})
minetest.register_on_dignode(
- function(pos, oldnode, digger)
- if oldnode.name == "jeija:mesecon_inverter_on" then
- mesecon:receptor_off(pos)
- end
- end
+ function(pos, oldnode, digger)
+ if oldnode.name == "jeija:mesecon_inverter_on" then
+ mesecon:receptor_off(pos)
+ end
+ end
)
mesecon:add_receptor_node("jeija:mesecon_inverter_on")
mesecon:add_receptor_node_off("jeija:mesecon_inverter_off")
minetest.register_craft({
- output = 'node "jeija:mesecon_inverter_off" 2',
- recipe = {
- {'node "jeija:mesecon_off"', 'craft "default:steel_ingot"', 'node "jeija:mesecon_off"'},
- {'craft "default:steel_ingot"', '', 'craft "default:steel_ingot"'},
- {'node "jeija:mesecon_off"', 'craft "default:steel_ingot"', 'node "jeija:mesecon_off"'},
- }
-})
+ output = 'node "jeija:mesecon_inverter_off" 2',
+ recipe = {
+ {'node "jeija:mesecon_off"', 'craft "default:steel_ingot"', 'node "jeija:mesecon_off"'},
+ {'craft "default:steel_ingot"', '', 'craft "default:steel_ingot"'},
+ {'node "jeija:mesecon_off"', 'craft "default:steel_ingot"', 'node "jeija:mesecon_off"'},
+ }
+}) \ No newline at end of file