summaryrefslogtreecommitdiff
path: root/mesecons/legacy.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mesecons/legacy.lua')
-rw-r--r--mesecons/legacy.lua55
1 files changed, 26 insertions, 29 deletions
diff --git a/mesecons/legacy.lua b/mesecons/legacy.lua
index c4334cf..c09b5a4 100644
--- a/mesecons/legacy.lua
+++ b/mesecons/legacy.lua
@@ -1,32 +1,29 @@
-minetest.swap_node = minetest.swap_node or function(pos, node)
- local data = minetest.get_meta(pos):to_table()
- minetest.add_node(pos, node)
- minetest.get_meta(pos):from_table(data)
+-- Ugly hack to prevent breaking compatibility with other mods
+-- Just remove the following two functions to delete the hack, to be done when other mods have updated
+function mesecon.receptor_on(self, pos, rules)
+ if (self.receptor_on) then
+ print("[Mesecons] Warning: A mod with mesecon support called mesecon:receptor_on.")
+ print("[Mesecons] If you are the programmer of this mod, please update it ")
+ print("[Mesecons] to use mesecon.receptor_on instead. mesecon:* is deprecated")
+ print("[Mesecons] Otherwise, please make sure you're running the latest version")
+ print("[Mesecons] of that mod and inform the mod creator.")
+ else
+ rules = pos
+ pos = self
+ end
+ mesecon.queue:add_action(pos, "receptor_on", {rules}, nil, rules)
end
-local rules = {}
-rules.a = {x = -1, y = 0, z = 0, name="A"}
-rules.b = {x = 0, y = 0, z = 1, name="B"}
-rules.c = {x = 1, y = 0, z = 0, name="C"}
-rules.d = {x = 0, y = 0, z = -1, name="D"}
-
-function legacy_update_ports(pos)
- local meta = minetest.get_meta(pos)
- L = {
- a = mesecon:is_power_on(mesecon:addPosRule(pos, rules.a),
- mesecon:invertRule(rules.a)) and
- mesecon:rules_link(mesecon:addPosRule(pos, rules.a), pos),
- b = mesecon:is_power_on(mesecon:addPosRule(pos, rules.b),
- mesecon:invertRule(rules.b)) and
- mesecon:rules_link(mesecon:addPosRule(pos, rules.b), pos),
- c = mesecon:is_power_on(mesecon:addPosRule(pos, rules.c),
- mesecon:invertRule(rules.c)) and
- mesecon:rules_link(mesecon:addPosRule(pos, rules.c), pos),
- d = mesecon:is_power_on(mesecon:addPosRule(pos, rules.d),
- mesecon:invertRule(rules.d)) and
- mesecon:rules_link(mesecon:addPosRule(pos, rules.d), pos),
- }
- local n = (L.a and 1 or 0) + (L.b and 2 or 0) + (L.c and 4 or 0) + (L.d and 8 or 0) + 1
- meta:set_int("real_portstates", n)
- return L
+function mesecon.receptor_off(self, pos, rules)
+ if (self.receptor_off) then
+ print("[Mesecons] Warning: A mod with mesecon support called mesecon:receptor_off.")
+ print("[Mesecons] If you are the programmer of this mod, please update it ")
+ print("[Mesecons] to use mesecon.receptor_off instead. mesecon:* is deprecated")
+ print("[Mesecons] Otherwise, please make sure you're running the latest version")
+ print("[Mesecons] of that mod and inform the mod creator.")
+ else
+ rules = pos
+ pos = self
+ end
+ mesecon.queue:add_action(pos, "receptor_off", {rules}, nil, rules)
end