diff options
| author | Anthony Zhang <azhang9@gmail.com> | 2012-01-09 20:52:19 -0500 | 
|---|---|---|
| committer | Anthony Zhang <azhang9@gmail.com> | 2012-01-09 20:52:19 -0500 | 
| commit | f221aeb06655e9753b4404737c95f505397c81aa (patch) | |
| tree | af00e663a586edb29b426f03489c33754b2652cb /jeija | |
| parent | f82fb910646d430ee7c30e1a016899b3b3cee78b (diff) | |
Update position finding code and fix indentation.
Diffstat (limited to 'jeija')
| -rw-r--r-- | jeija/temperest.lua | 291 | 
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  | 
