Signed-off-by: Rahix <rahix@rahix.de>
dev
rahix 7 years ago
parent 9f8e62923e
commit 6c51c4cb4e

@ -5,15 +5,15 @@ component = {}
modem = {}
function modem.open(port)
-- Nothing
-- Nothing
end
function modem.send(addr, port, msg)
network.send(addr, port, msg)
network.send(addr, port, msg)
end
function modem.broadcast(port, msg)
network.broadcast(port, msg)
network.broadcast(port, msg)
end
component.modem = modem

@ -6,55 +6,55 @@ nodes = {}
active_node = {}
function network.register(addr, callback)
if nodes[addr] ~= nil then
error("Address "..addr.." already registered!")
end
nodes[addr] = callback
if nodes[addr] ~= nil then
error("Address "..addr.." already registered!")
end
nodes[addr] = callback
active_node = {}
table.insert(active_node, addr)
active_node = {}
table.insert(active_node, addr)
end
function network.deregister(addr)
nodes[addr] = nil
nodes[addr] = nil
end
function network.send(addr, port, msg)
local callback = nodes[addr]
if callback == nil then
if not network.allow_blackhole then
error("Send message to offline node: "..addr)
end
return nil
local callback = nodes[addr]
if callback == nil then
if not network.allow_blackhole then
error("Send message to offline node: "..tostring(addr))
end
local current_node = active_node[#active_node]
-- Push target onto node-stack
table.insert(active_node, addr)
-- print("Sending from "..current_node.." to "..addr..": "..msg)
-- print(require("inspect").inspect(active_node))
callback("modem_message", addr, current_node, port, 0, msg)
-- Remove again
active_node[#active_node] = nil
return nil
end
local current_node = active_node[#active_node]
-- Push target onto node-stack
table.insert(active_node, addr)
-- print("Sending from "..current_node.." to "..addr..": "..msg)
-- print(require("inspect").inspect(active_node))
callback("modem_message", addr, current_node, port, 0, msg)
-- Remove again
active_node[#active_node] = nil
end
function network.broadcast(port, msg)
local current_node = active_node[#active_node]
-- print("Broadcasting from "..current_node)
for addr in pairs(nodes) do
if addr ~= current_node then
network.send(addr, port, msg)
end
local current_node = active_node[#active_node]
-- print("Broadcasting from "..current_node)
for addr in pairs(nodes) do
if addr ~= current_node then
network.send(addr, port, msg)
end
end
end
function network.set_scene(addr)
active_node = {}
table.insert(active_node, addr)
active_node = {}
table.insert(active_node, addr)
end
function network.get_scene(addr)
return active_node[#active_node]
return active_node[#active_node]
end
return network

Loading…
Cancel
Save