diff --git a/craft.lua b/craft.lua index 8e0f865..ff31325 100644 --- a/craft.lua +++ b/craft.lua @@ -34,7 +34,6 @@ minetest.register_craft({ } }) ---[[ currently broken minetest.register_craft({ output = "was:router", recipe = { @@ -43,7 +42,6 @@ minetest.register_craft({ {"was:plastic_piece","was:wire","was:plastic_piece"}, } }) ---]] minetest.register_craft({ output = "was:sender", diff --git a/functions.lua b/functions.lua index 540d224..98e7bbc 100644 --- a/functions.lua +++ b/functions.lua @@ -56,8 +56,13 @@ end was.send_wireless=function(pos,channel,msg,from_channel,radius) for _,p in pairs(minetest.find_nodes_in_area(vector.add(pos,radius),vector.subtract(pos,radius),"group:was_unit")) do - if minetest.get_item_group(was.get_node(p),"was_resender")==0 and not vector.equals(pos,p) then - was.send(p,channel,msg,from_channel) + local na=was.get_node(p) + if minetest.get_item_group(na,"was_resender")==0 and not vector.equals(pos,p) then + if minetest.registered_nodes[na].on_waswire then + minetest.registered_nodes[na].on_waswire(p,channel,from_channel,msg) + else + was.send(p,channel,msg,from_channel) + end end end end diff --git a/items.lua b/items.lua index cdb9658..0ecea5d 100644 --- a/items.lua +++ b/items.lua @@ -307,6 +307,7 @@ minetest.register_node("was:router", { was.send(p,channel,msg,from_channel) end end + was.send(pos,channel,msg,from_channel) end, on_timer = function (pos, elapsed) minetest.swap_node(pos,{name="was:wire",param2=135}) diff --git a/register.lua b/register.lua index ff4759d..2164f88 100644 --- a/register.lua +++ b/register.lua @@ -864,10 +864,6 @@ was.register_function("was.close",{ end }) ---[[ - -currently broken - was.register_function("was.send_wireless",{ info="Send data through wires (string_channel msg radius) max radius is 10", action=function(channel,msg,radius) @@ -880,10 +876,8 @@ was.register_function("was.send_wireless",{ if nchannel==channel then was.userdata.error="can't send to same channel" else - was.send(p,channel,msg,nchannel) was.send_wireless(p,channel,msg,nchannel,radius) end end end -}) ---]] \ No newline at end of file +}) \ No newline at end of file