summaryrefslogtreecommitdiff
path: root/mesecons/legacy.lua
diff options
context:
space:
mode:
authorJeija <norrepli@gmail.com>2012-12-08 14:14:04 +0100
committerJeija <norrepli@gmail.com>2012-12-08 14:14:04 +0100
commite0aa5b1d3de31cd8724f680db9bfb9798c89e59e (patch)
tree7e94a7ae87c0abf110ebd77374d817d8d5684e8e /mesecons/legacy.lua
parent12206ac190375c2e3b360ad1b2a0b892b4544d7f (diff)
downloadmesecons-e0aa5b1d3de31cd8724f680db9bfb9798c89e59e.tar
mesecons-e0aa5b1d3de31cd8724f680db9bfb9798c89e59e.tar.gz
mesecons-e0aa5b1d3de31cd8724f680db9bfb9798c89e59e.tar.bz2
mesecons-e0aa5b1d3de31cd8724f680db9bfb9798c89e59e.tar.xz
mesecons-e0aa5b1d3de31cd8724f680db9bfb9798c89e59e.zip
New branch: Move mesecon to node definition instead of functions like register_conductor; first steps: move everything to legacy
Diffstat (limited to 'mesecons/legacy.lua')
-rw-r--r--mesecons/legacy.lua80
1 files changed, 80 insertions, 0 deletions
diff --git a/mesecons/legacy.lua b/mesecons/legacy.lua
index 4fd73dd..271221a 100644
--- a/mesecons/legacy.lua
+++ b/mesecons/legacy.lua
@@ -1,3 +1,5 @@
+--very old:
+
function mesecon:add_receptor_node(name, rules, get_rules)
if get_rules==nil and rules==nil then
rules=mesecon:get_rules("default")
@@ -11,3 +13,81 @@ function mesecon:add_receptor_node_off(name, rules, get_rules)
end
table.insert(mesecon.receptors, {offstate = name, rules = rules, get_rules = get_rules})
end
+
+--old:
+
+function mesecon:register_receptor(onstate, offstate, rules, get_rules)
+ if get_rules == nil and rules == nil then
+ rules = mesecon:get_rules("default")
+ end
+
+ table.insert(mesecon.receptors,
+ {onstate = onstate,
+ offstate = offstate,
+ rules = rules,
+ get_rules = get_rules})
+end
+
+function mesecon:register_effector(onstate, offstate, input_rules, get_input_rules)
+ if get_input_rules==nil and input_rules==nil then
+ rules=mesecon:get_rules("default")
+ end
+ table.insert(mesecon.effectors,
+ {onstate = onstate,
+ offstate = offstate,
+ input_rules = input_rules,
+ get_input_rules = get_input_rules})
+end
+
+function mesecon:receptor_on(pos, rules)
+ if rules == nil then
+ rules = mesecon:get_rules("default")
+ end
+
+ for i, rule in ipairs(rules) do
+ local np = {
+ x = pos.x + rule.x,
+ y = pos.y + rule.y,
+ z = pos.z + rule.z}
+ if mesecon:rules_link(pos, np, rules) then
+ mesecon:turnon(np, pos)
+ end
+ end
+end
+
+function mesecon:receptor_off(pos, rules)
+ if rules == nil then
+ rules = mesecon:get_rules("default")
+ end
+
+ for i, rule in ipairs(rules) do
+ local np = {
+ x = pos.x + rule.x,
+ y = pos.y + rule.y,
+ z = pos.z + rule.z}
+ if mesecon:rules_link(pos, np, rules) and not mesecon:connected_to_pw_src(np) then
+ mesecon:turnoff(np, pos)
+ end
+ end
+end
+
+function mesecon:register_on_signal_on(action)
+ table.insert(mesecon.actions_on, action)
+end
+
+function mesecon:register_on_signal_off(action)
+ table.insert(mesecon.actions_off, action)
+end
+
+function mesecon:register_on_signal_change(action)
+ table.insert(mesecon.actions_change, action)
+end
+
+function mesecon:register_conductor (onstate, offstate, rules, get_rules)
+ if rules == nil then
+ rules = mesecon:get_rules("default")
+ end
+ table.insert(mesecon.conductors, {onstate = onstate, offstate = offstate, rules = rules, get_rules = get_rules})
+end
+
+mesecon:add_rules("default", mesecon.rules.default)