From 8bdb2e86ad5ffcfbbd65117167920f61c3083241 Mon Sep 17 00:00:00 2001 From: Anthony Zhang Date: Thu, 23 Feb 2012 19:43:03 -0500 Subject: [PATCH] Change the ENABLE_TEMPEREST flag to affect only the inclusion of the inverter socket, since that is the only element that can lead to a crash. --- jeija/init.lua | 5 +- jeija/temperest.lua | 166 +++++++++++++++++++++++++------------------- 2 files changed, 96 insertions(+), 75 deletions(-) diff --git a/jeija/init.lua b/jeija/init.lua index 1a5fce7..9da01b5 100644 --- a/jeija/init.lua +++ b/jeija/init.lua @@ -877,10 +877,7 @@ dofile(minetest.get_modpath("jeija").."/switch.lua") dofile(minetest.get_modpath("jeija").."/pistons.lua") dofile(minetest.get_modpath("jeija").."/lightstone.lua") dofile(minetest.get_modpath("jeija").."/lever.lua") ---TEMPEREST's STUFF -if ENABLE_TEMPEREST==1 then - dofile(minetest.get_modpath("jeija").."/temperest.lua") -end +dofile(minetest.get_modpath("jeija").."/temperest.lua") --INIT mesecon:read_wlre_from_file() diff --git a/jeija/temperest.lua b/jeija/temperest.lua index 6a0e63a..267962d 100644 --- a/jeija/temperest.lua +++ b/jeija/temperest.lua @@ -15,29 +15,52 @@ minetest.register_node("jeija:mesecon_plug", { description = "Plug", }) -local set_node_on = function(pos) - local 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 +local set_node_on +local set_node_off -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) +if ENABLE_TEMPEREST==1 then + set_node_on = function(pos) + local 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 + + 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 +else + set_node_on = function(pos) + local 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) + end + end + + 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) + end end end @@ -139,58 +162,59 @@ minetest.register_craft({ }) --TEMPEREST-INVERTER +if ENABLE_TEMPEREST==1 then + minetest.register_node("jeija:mesecon_inverter_off", { + drawtype = "raillike", + paramtype = "light", + is_ground_content = true, + tile_images = {"jeija_mesecon_inverter_off.png"}, + material = minetest.digprop_constanttime(0.1), + walkable = false, + selection_box = { + type = "fixed", + }, + drop='"jeija:mesecon_inverter_on" 1', + }) -minetest.register_node("jeija:mesecon_inverter_off", { - drawtype = "raillike", - paramtype = "light", - is_ground_content = true, - tile_images = {"jeija_mesecon_inverter_off.png"}, - material = minetest.digprop_constanttime(0.1), - walkable = false, - selection_box = { - type = "fixed", - }, - drop='"jeija:mesecon_inverter_on" 1', -}) + minetest.register_node("jeija:mesecon_inverter_on", { + description = "Inverter", + drawtype = "raillike", + paramtype = "light", + is_ground_content = true, + tile_images = {"jeija_mesecon_inverter_on.png"}, + inventory_image = "jeija_mesecon_inverter_on.png", + wield_image = "jeija_mesecon_inverter_on.png", + material = minetest.digprop_constanttime(0.1), + walkable = false, + selection_box = { + type = "fixed", + }, + }) -minetest.register_node("jeija:mesecon_inverter_on", { - description = "Inverter", - drawtype = "raillike", - paramtype = "light", - is_ground_content = true, - tile_images = {"jeija_mesecon_inverter_on.png"}, - inventory_image = "jeija_mesecon_inverter_on.png", - wield_image = "jeija_mesecon_inverter_on.png", - material = minetest.digprop_constanttime(0.1), - walkable = false, - selection_box = { - type = "fixed", - }, -}) - -minetest.register_on_placenode(function(pos, node) - if node.name=="jeija:mesecon_inverter" then - mesecon:receptor_on(pos) - end -end -) - -minetest.register_on_dignode( - function(pos, oldnode, digger) - if oldnode.name == "jeija:mesecon_inverter_on" then - mesecon:receptor_off(pos) + minetest.register_on_placenode(function(pos, node) + if node.name=="jeija:mesecon_inverter" then + mesecon:receptor_on(pos) end end -) + ) -mesecon:add_receptor_node("jeija:mesecon_inverter_on") -mesecon:add_receptor_node_off("jeija:mesecon_inverter_off") + minetest.register_on_dignode( + function(pos, oldnode, digger) + if oldnode.name == "jeija:mesecon_inverter_on" then + mesecon:receptor_off(pos) + end + end + ) -minetest.register_craft({ - output = 'node "jeija:mesecon_inverter_on" 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 + 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_on" 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"'}, + } + }) +end \ No newline at end of file