From aebe0dec9f30ffd796a32478082d4c7b69a7f5c2 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Tue, 29 Aug 2017 23:27:20 +0200 Subject: [PATCH] Fix some invalid globals in redstone mods --- .../REDSTONE/mesecons_pressureplates/init.lua | 2 +- mods/ITEMS/REDSTONE/mesecons_wires/init.lua | 7 +- mods/ITEMS/REDSTONE/mesecons_wires/wires.lua | 269 ------------------ 3 files changed, 2 insertions(+), 276 deletions(-) delete mode 100644 mods/ITEMS/REDSTONE/mesecons_wires/wires.lua diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua index b0fe8643d..8f14f167d 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua @@ -51,7 +51,7 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te local groups_off = table.copy(plusgroups) groups_off.attached_node = 1 groups_off.dig_by_piston = 1 - groups_on = table.copy(groups_off) + local groups_on = table.copy(groups_off) groups_on.not_in_creative_inventory = 1 mesecon.register_node(basename, { diff --git a/mods/ITEMS/REDSTONE/mesecons_wires/init.lua b/mods/ITEMS/REDSTONE/mesecons_wires/init.lua index 7733eee97..d90ccd1fc 100644 --- a/mods/ITEMS/REDSTONE/mesecons_wires/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_wires/init.lua @@ -220,13 +220,8 @@ local function register_wires() -- “Dot” texture tiles_off = { dot_off, dot_off, "blank.png", "blank.png", "blank.png", "blank.png" } tiles_on = { dot_on, dot_on, "blank.png", "blank.png", "blank.png", "blank.png" } - elseif adjx and adjz and (xp + zp + xm + zm > 2) then - -- Connected redstone wire (crossing or t-junction) - table.insert(nodebox, box_bump1) - tiles_off = { crossing_off, crossing_off, straight0_off, straight1_off, straight0_off, straight1_off, } - tiles_on = { crossing_on, crossing_on, straight0_on, straight1_on, straight0_on, straight1_on, } else - -- Connected redstone wire (straight line or curve) + -- Connected redstone wire table.insert(nodebox, box_center) tiles_off = { crossing_off, crossing_off, straight0_off, straight1_off, straight0_off, straight1_off, } tiles_on = { crossing_on, crossing_on, straight0_on, straight1_on, straight0_on, straight1_on, } diff --git a/mods/ITEMS/REDSTONE/mesecons_wires/wires.lua b/mods/ITEMS/REDSTONE/mesecons_wires/wires.lua deleted file mode 100644 index d9c9efba0..000000000 --- a/mods/ITEMS/REDSTONE/mesecons_wires/wires.lua +++ /dev/null @@ -1,269 +0,0 @@ --- naming scheme: wire:(xp)(zp)(xm)(zm)_on/off --- The conditions in brackets define whether there is a mesecon at that place or not --- 1 = there is one; 0 = there is none --- y always means y+ - -box_center = {-1/16, -.5, -1/16, 1/16, -.5+1/64, 1/16} -- filler for curves and straight lines -box_bump1 = { -3/16, -.5, -3/16, 3/16, -.5+1/64, 3/16 } -- filler for redstone dust “dot” - -box_xp = {1/16, -.5, -1/16, 8/16, -.5+1/64, 1/16} -box_zp = {-1/16, -.5, 1/16, 1/16, -.5+1/64, 8/16} -box_xm = {-8/16, -.5, -1/16, -1/16, -.5+1/64, 1/16} -box_zm = {-1/16, -.5, -8/16, 1/16, -.5+1/64, -1/16} - -box_xpy = {.5-1/16, -.5+1/64, -1/16, .5, .4999+1/64, 1/16} -box_zpy = {-1/16, -.5+1/64, .5-1/16, 1/16, .4999+1/64, .5} -box_xmy = {-.5, -.5+1/64, -1/16, -.5+1/16, .4999+1/64, 1/16} -box_zmy = {-1/16, -.5+1/64, -.5, 1/16, .4999+1/64, -.5+1/16} - --- Registering the wires - -for xp=0, 1 do -for zp=0, 1 do -for xm=0, 1 do -for zm=0, 1 do -for xpy=0, 1 do -for zpy=0, 1 do -for xmy=0, 1 do -for zmy=0, 1 do - if (xpy == 1 and xp == 0) or (zpy == 1 and zp == 0) - or (xmy == 1 and xm == 0) or (zmy == 1 and zm == 0) then break end - - local groups - local nodeid = tostring(xp )..tostring(zp )..tostring(xm )..tostring(zm ).. - tostring(xpy)..tostring(zpy)..tostring(xmy)..tostring(zmy) - - local wirehelp - local longdesc - local usagehelp - if nodeid == "00000000" then - groups = {dig_immediate = 3, mesecon_conductor_craftable = 1, attached_node = 1, dig_by_water = 1,destroy_by_lava_flow=1, dig_by_piston = 1} - wiredesc = "Redstone" - wirehelp = nodeid == "00000000" - if wirehelp then - longdesc = [[Redstone is a versatile conductive mineral which transmits redstone power. It can be placed on trail the ground as a trail. -A redstone trail can be in two states: Powered or not powered. A powered redstone trail will power (and thus activate) adjacent redstone components. -Redstone power can be received from various redstone components, such as a block of redstone or a button. Redstone power is used to activate numerous mechanisms, such as redstone lamps or pistons.]] - usagehelp = [[Place redstone on the ground to build a redstone trail. The trails will connect to each other automatically and it can also go over hills. An easy way to power a redstone trail is by placing a redstone torch. - -Read the help entries on the other redstone components to learn how redstone components interact.]] - end - else - groups = {dig_immediate = 3, not_in_creative_inventory = 1, attached_node = 1, dig_by_water = 1,destroy_by_lava_flow=1, dig_by_piston = 1} - wiredesc = "Redstone Trail (ID: "..nodeid..")" - wirehelp = false - end - - local nodebox = {} - local adjx = false - local adjz = false - if xp == 1 then table.insert(nodebox, box_xp) adjx = true end - if zp == 1 then table.insert(nodebox, box_zp) adjz = true end - if xm == 1 then table.insert(nodebox, box_xm) adjx = true end - if zm == 1 then table.insert(nodebox, box_zm) adjz = true end - if xpy == 1 then table.insert(nodebox, box_xpy) end - if zpy == 1 then table.insert(nodebox, box_zpy) end - if xmy == 1 then table.insert(nodebox, box_xmy) end - if zmy == 1 then table.insert(nodebox, box_zmy) end - - local ratio_off = 128 - local ratio_on = 192 - local crossing_off = "(redstone_redstone_dust_dot.png^redstone_redstone_dust_line0.png^(redstone_redstone_dust_line1.png^[transformR90))^[colorize:#FF0000:"..ratio_off - local crossing_on = "(redstone_redstone_dust_dot.png^redstone_redstone_dust_line0.png^(redstone_redstone_dust_line1.png^[transformR90))^[colorize:#FF0000:"..ratio_on - local straight0_off = "redstone_redstone_dust_line0.png^[colorize:#FF0000:"..ratio_off - local straight0_on = "redstone_redstone_dust_line0.png^[colorize:#FF0000:"..ratio_on - local straight1_off = "redstone_redstone_dust_line0.png^[colorize:#FF0000:"..ratio_off - local straight1_on = "redstone_redstone_dust_line0.png^[colorize:#FF0000:"..ratio_on - local dot_off = "redstone_redstone_dust_dot.png^[colorize:#FF0000:"..ratio_off - local dot_on = "redstone_redstone_dust_dot.png^[colorize:#FF0000:"..ratio_on - - if nodeid == "00000000" then - -- Non-connected redstone wire - nodebox = {-8/16, -.5, -8/16, 8/16, -.5+1/16, 8/16} - -- “Dot” texture - tiles_off = { dot_off, dot_off, "blank.png", "blank.png", "blank.png", "blank.png" } - tiles_on = { dot_on, dot_on, "blank.png", "blank.png", "blank.png", "blank.png" } - elseif adjx and adjz and (xp + zp + xm + zm > 2) then - -- Connected redstone wire (crossing or t-junction) - table.insert(nodebox, box_bump1) - tiles_off = { crossing_off, crossing_off, straight0_off, straight1_off, straight0_off, straight1_off, } - tiles_on = { crossing_on, crossing_on, straight0_on, straight1_on, straight0_on, straight1_on, } - else - -- Connected redstone wire (straight line or curve) - table.insert(nodebox, box_center) - tiles_off = { crossing_off, crossing_off, straight0_off, straight1_off, straight0_off, straight1_off, } - tiles_on = { crossing_on, crossing_on, straight0_on, straight1_on, straight0_on, straight1_on, } - end - - minetest.register_node("mesecons:wire_"..nodeid.."_off", { - description = "Redstone", - _doc_items_create_entry = wirehelp, - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usagehelp, - drawtype = "nodebox", - tiles = tiles_off, - is_ground_content = false, --- inventory_image = "wires_inv.png", --- wield_image = "wires_inv.png", - inventory_image = "redstone_redstone_dust.png", - wield_image = "redstone_redstone_dust.png", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - selection_box = { - type = "fixed", - fixed = {-.5, -.5, -.5, .5, -.5+1/16, .5} - }, - node_box = { - type = "fixed", - fixed = nodebox - }, - groups = groups, - walkable = false, - stack_max = 64, - drop = "mesecons:wire_00000000_off", - mesecons = {conductor={ - state = mesecon.state.off, - onstate = "mesecons:wire_"..nodeid.."_on" - }}, - sounds = mcl_sounds.node_sound_defaults(), - }) - - minetest.register_node("mesecons:wire_"..nodeid.."_on", { - description = "Redstone (Powered)", - _doc_items_create_entry = false, - drawtype = "nodebox", - tiles = tiles_on, - is_ground_content = false, --- inventory_image = "wires_inv.png", --- wield_image = "wires_inv.png", - inventory_image = "redstone_redstone_dust.png", - wield_image = "redstone_redstone_dust.png", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - selection_box = { - type = "fixed", - fixed = {-.5, -.5, -.5, .5, -.5+1/16, .5} - }, - node_box = { - type = "fixed", - fixed = nodebox - }, - groups = {dig_immediate = 3, mesecon = 2, dig_by_water = 1,destroy_by_lava_flow=1, dig_by_piston = 1, attached_node = 1, not_in_creative_inventory = 1}, - walkable = false, - stack_max = 64, - drop = "mesecons:wire_00000000_off", - mesecons = {conductor={ - state = mesecon.state.on, - offstate = "mesecons:wire_"..nodeid.."_off" - }}, - sounds = mcl_sounds.node_sound_defaults(), - }) - - -- Add Help entry aliases for e.g. making it identifiable by the lookup tool [doc_identifier] - if minetest.get_modpath("doc") then - if nodeid ~= "00000000" then - doc.add_entry_alias("nodes", "mesecons:wire_00000000_off", "nodes", "mesecons:wire_"..nodeid.."_off") - end - doc.add_entry_alias("nodes", "mesecons:wire_00000000_off", "nodes", "mesecons:wire_"..nodeid.."_on") - end -end -end -end -end -end -end -end -end - --- Updating the wires: --- Place the right connection wire - -local update_on_place_dig = function (pos, node) - if minetest.registered_nodes[node.name] - and minetest.registered_nodes[node.name].mesecons then - mesecon:update_autoconnect(pos) - end -end - -minetest.register_on_placenode(update_on_place_dig) -minetest.register_on_dignode(update_on_place_dig) - -function mesecon:update_autoconnect(pos, secondcall, replace_old) - local xppos = {x=pos.x+1, y=pos.y, z=pos.z} - local zppos = {x=pos.x, y=pos.y, z=pos.z+1} - local xmpos = {x=pos.x-1, y=pos.y, z=pos.z} - local zmpos = {x=pos.x, y=pos.y, z=pos.z-1} - - local xpympos = {x=pos.x+1, y=pos.y-1, z=pos.z} - local zpympos = {x=pos.x, y=pos.y-1, z=pos.z+1} - local xmympos = {x=pos.x-1, y=pos.y-1, z=pos.z} - local zmympos = {x=pos.x, y=pos.y-1, z=pos.z-1} - - local xpypos = {x=pos.x+1, y=pos.y+1, z=pos.z} - local zpypos = {x=pos.x, y=pos.y+1, z=pos.z+1} - local xmypos = {x=pos.x-1, y=pos.y+1, z=pos.z} - local zmypos = {x=pos.x, y=pos.y+1, z=pos.z-1} - - if secondcall == nil then - mesecon:update_autoconnect(xppos, true) - mesecon:update_autoconnect(zppos, true) - mesecon:update_autoconnect(xmpos, true) - mesecon:update_autoconnect(zmpos, true) - - mesecon:update_autoconnect(xpypos, true) - mesecon:update_autoconnect(zpypos, true) - mesecon:update_autoconnect(xmypos, true) - mesecon:update_autoconnect(zmypos, true) - - mesecon:update_autoconnect(xpympos, true) - mesecon:update_autoconnect(zpympos, true) - mesecon:update_autoconnect(xmympos, true) - mesecon:update_autoconnect(zmympos, true) - end - - local nodename = minetest.get_node(pos).name - if string.find(nodename, "mesecons:wire_") == nil and not replace_old then return nil end - - if mesecon:rules_link_anydir(pos, xppos) then xp = 1 else xp = 0 end - if mesecon:rules_link_anydir(pos, xmpos) then xm = 1 else xm = 0 end - if mesecon:rules_link_anydir(pos, zppos) then zp = 1 else zp = 0 end - if mesecon:rules_link_anydir(pos, zmpos) then zm = 1 else zm = 0 end - - if mesecon:rules_link_anydir(pos, xpympos) then xp = 1 end - if mesecon:rules_link_anydir(pos, xmympos) then xm = 1 end - if mesecon:rules_link_anydir(pos, zpympos) then zp = 1 end - if mesecon:rules_link_anydir(pos, zmympos) then zm = 1 end - - if mesecon:rules_link_anydir(pos, xpypos) then xpy = 1 else xpy = 0 end - if mesecon:rules_link_anydir(pos, zpypos) then zpy = 1 else zpy = 0 end - if mesecon:rules_link_anydir(pos, xmypos) then xmy = 1 else xmy = 0 end - if mesecon:rules_link_anydir(pos, zmypos) then zmy = 1 else zmy = 0 end - - if xpy == 1 then xp = 1 end - if zpy == 1 then zp = 1 end - if xmy == 1 then xm = 1 end - if zmy == 1 then zm = 1 end - - local nodeid = tostring(xp )..tostring(zp )..tostring(xm )..tostring(zm ).. - tostring(xpy)..tostring(zpy)..tostring(xmy)..tostring(zmy) - - - if string.find(nodename, "_off") ~= nil then - minetest.set_node(pos, {name = "mesecons:wire_"..nodeid.."_off"}) - else - minetest.set_node(pos, {name = "mesecons:wire_"..nodeid.."_on" }) - end -end - -minetest.register_alias("mesecons:redstone", "mesecons:wire_00000000_off") - -minetest.register_craft({ - type = "cooking", - output = "mesecons:redstone", - recipe = "mcl_core:stone_with_redstone", - cooktime = 10, -}) - -