From ae9935fcca606489f13977a27b10b5f4f16da4ef Mon Sep 17 00:00:00 2001 From: upsilon Date: Thu, 27 Apr 2017 18:15:47 +0200 Subject: [PATCH] Wireless: make an "on" version of the wireless node This avoids self-activating bugs --- moremesecons_wireless/init.lua | 30 ++++++++++++------ ...less.png => moremesecons_wireless_off.png} | Bin .../textures/moremesecons_wireless_on.png | Bin 0 -> 3496 bytes 3 files changed, 21 insertions(+), 9 deletions(-) rename moremesecons_wireless/textures/{moremesecons_wireless.png => moremesecons_wireless_off.png} (100%) create mode 100644 moremesecons_wireless/textures/moremesecons_wireless_on.png diff --git a/moremesecons_wireless/init.lua b/moremesecons_wireless/init.lua index 77c2b22..22c150b 100644 --- a/moremesecons_wireless/init.lua +++ b/moremesecons_wireless/init.lua @@ -125,6 +125,7 @@ end local is_jammed local function wireless_activate(pos) + print("activating wireless at pos " .. minetest.pos_to_string(pos)) if is_jammed(pos) then -- jamming doesn't disallow receiving signals, only sending them return @@ -138,8 +139,10 @@ local function wireless_activate(pos) return end + minetest.swap_node(pos, {name = "moremesecons_wireless:wireless_on"}) for i, wl_pos in ipairs(wireless[owner][channel]) do if i ~= id then + minetest.swap_node(wl_pos, {name = "moremesecons_wireless:wireless_on"}) mesecon.receptor_on(wl_pos) end end @@ -158,8 +161,10 @@ local function wireless_deactivate(pos) return end + minetest.swap_node(pos, {name = "moremesecons_wireless:wireless_off"}) for i, wl_pos in ipairs(wireless[owner][channel]) do if i ~= id then + minetest.swap_node(wl_pos, {name = "moremesecons_wireless:wireless_off"}) mesecon.receptor_off(wl_pos) end end @@ -186,17 +191,10 @@ local function on_digiline_receive(pos, node, channel, msg) end end -minetest.register_node("moremesecons_wireless:wireless", { - tiles = {"moremesecons_wireless.png"}, +mesecon.register_node("moremesecons_wireless:wireless", { paramtype = "light", paramtype2 = "facedir", description = "Wireless", - walkable = true, - groups = {cracky=3}, - mesecons = {effector = { - action_on = wireless_activate, - action_off = wireless_deactivate - }}, digiline = { receptor = {}, effector = { @@ -237,8 +235,22 @@ minetest.register_node("moremesecons_wireless:wireless", { update_mod_storage() end end, +}, { + tiles = {"moremesecons_wireless_off.png"}, + groups = {cracky=3}, + mesecons = {effector = { + action_on = wireless_activate, + }}, +}, { + tiles = {"moremesecons_wireless_on.png"}, + groups = {cracky=3, not_in_creative_inventory=1}, + mesecons = {effector = { + action_off = wireless_deactivate + }}, }) +minetest.register_alias("moremesecons_wireless:wireless", "moremesecons_wireless:wireless_off") + local jammers = {} local function add_jammer(pos) if get(jammers, pos.z,pos.y,pos.x) then @@ -345,7 +357,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = "moremesecons_wireless:wireless 2", + output = "moremesecons_wireless:wireless_off 2", recipe = { {"group:mesecon_conductor_craftable", "", "group:mesecon_conductor_craftable"}, {"", "mesecons_torch:mesecon_torch_on", ""}, diff --git a/moremesecons_wireless/textures/moremesecons_wireless.png b/moremesecons_wireless/textures/moremesecons_wireless_off.png similarity index 100% rename from moremesecons_wireless/textures/moremesecons_wireless.png rename to moremesecons_wireless/textures/moremesecons_wireless_off.png diff --git a/moremesecons_wireless/textures/moremesecons_wireless_on.png b/moremesecons_wireless/textures/moremesecons_wireless_on.png new file mode 100644 index 0000000000000000000000000000000000000000..43a0da664f0811a963236dd4d65df7b1e018e141 GIT binary patch literal 3496 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