summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesecons/init.lua2
-rw-r--r--mesecons/internal.lua10
-rw-r--r--mesecons_luacontroller/init.lua11
3 files changed, 10 insertions, 13 deletions
diff --git a/mesecons/init.lua b/mesecons/init.lua
index 50ed4ca..7f6fe5d 100644
--- a/mesecons/init.lua
+++ b/mesecons/init.lua
@@ -98,7 +98,7 @@ function mesecon:receptor_off(pos, rules)
if not mesecon:connected_to_receptor(np) then
mesecon:turnoff(np, rulename)
else
- mesecon:changesignal(np, minetest.env:get_node(np), rulename)
+ mesecon:changesignal(np, minetest.env:get_node(np), rulename, mesecon.state.off)
end
end
end
diff --git a/mesecons/internal.lua b/mesecons/internal.lua
index 2d84787..5e243cf 100644
--- a/mesecons/internal.lua
+++ b/mesecons/internal.lua
@@ -24,7 +24,7 @@
-- SIGNALS
-- mesecon:activate(pos, node) --> Activates the effector node at the specific pos (calls nodedef.mesecons.effector.action_on)
-- mesecon:deactivate(pos, node) --> Deactivates the effector node at the specific pos (calls nodedef.mesecons.effector.action_off)
--- mesecon:changesignal(pos, node) --> Changes the effector node at the specific pos (calls nodedef.mesecons.effector.action_change)
+-- mesecon:changesignal(pos, node, rulename, newstate) --> Changes the effector node at the specific pos (calls nodedef.mesecons.effector.action_change)
-- RULES
-- mesecon:add_rules(name, rules) | deprecated? --> Saves rules table by name
@@ -193,10 +193,10 @@ function mesecon:deactivate(pos, node, rulename)
end
end
-function mesecon:changesignal(pos, node, rulename)
+function mesecon:changesignal(pos, node, rulename, newstate)
local effector = mesecon:get_effector(node.name)
if effector and effector.action_change then
- effector.action_change (pos, node, rulename)
+ effector.action_change (pos, node, rulename, newstate)
end
end
@@ -299,7 +299,7 @@ function mesecon:turnon(pos, rulename)
end
end
elseif mesecon:is_effector(node.name) then
- mesecon:changesignal(pos, node, rulename)
+ mesecon:changesignal(pos, node, rulename, mesecon.state.on)
if mesecon:is_effector_off(node.name) then
mesecon:activate(pos, node, rulename)
end
@@ -322,7 +322,7 @@ function mesecon:turnoff(pos, rulename)
end
end
elseif mesecon:is_effector(node.name) then
- mesecon:changesignal(pos, node, rulename)
+ mesecon:changesignal(pos, node, rulename, mesecon.state.off)
if mesecon:is_effector_on(node.name)
and not mesecon:is_powered(pos) then
mesecon:deactivate(pos, node, rulename)
diff --git a/mesecons_luacontroller/init.lua b/mesecons_luacontroller/init.lua
index 2a633a6..44c38ff 100644
--- a/mesecons_luacontroller/init.lua
+++ b/mesecons_luacontroller/init.lua
@@ -170,7 +170,7 @@ end
local getdigiline_send = function (pos)
local digiline_send = function (channel, msg)
if digiline then
- digiline:receptor_send(pos, digiline.rules.default, channel, minetest.serialize(msg))
+ digiline:receptor_send(pos, digiline.rules.default, channel, msg)
end
end
return digiline_send
@@ -325,7 +325,7 @@ local digiline = {
receptor = {},
effector = {
action = function (pos, node, channel, msg)
- lc_update (pos, {type = "digiline", iid = {channel = channel, msg = minetest.deserialize(msg)}})
+ lc_update (pos, {type = "digiline", iid = {channel = channel, msg = msg}})
end
}
}
@@ -372,12 +372,9 @@ local mesecons = {
effector =
{
rules = input_rules[cid],
- action_on = function (pos, _, rulename)
- lc_update(pos, {type="on", pin=rulename})
+ action_change = function (pos, _, rulename, newstate)
+ lc_update(pos, {type=newstate, pin=rulename})
end,
- action_off = function (pos, _, rulename)
- lc_update(pos, {type="off", pin=rulename})
- end
},
receptor =
{