Skip to content

Commit

Permalink
Fix compatibility with not yet updated mods that use mesecon:receptor_*
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeija committed Nov 22, 2014
1 parent d19e975 commit a550323
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 11 deletions.
9 changes: 4 additions & 5 deletions mesecons/init.lua
Expand Up @@ -66,11 +66,6 @@ dofile(minetest.get_modpath("mesecons").."/actionqueue.lua");
-- like calling action_on/off/change
dofile(minetest.get_modpath("mesecons").."/internal.lua");

-- Deprecated stuff
-- To be removed in future releases
-- Currently there is nothing here
dofile(minetest.get_modpath("mesecons").."/legacy.lua");

-- API
-- these are the only functions you need to remember

Expand Down Expand Up @@ -133,6 +128,10 @@ end

print("[OK] Mesecons")

-- Deprecated stuff
-- To be removed in future releases
dofile(minetest.get_modpath("mesecons").."/legacy.lua");

--The actual wires
dofile(minetest.get_modpath("mesecons").."/wires.lua");

Expand Down
30 changes: 26 additions & 4 deletions mesecons/legacy.lua
@@ -1,7 +1,29 @@
function mesecon:receptor_on(pos, rules)
mesecon.receptor_on(pos, rules)
-- 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

function mesecon:receptor_off(pos, rules)
mesecon.receptor_off(pos, rules)
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
4 changes: 2 additions & 2 deletions mesecons_switch/init.lua
Expand Up @@ -11,7 +11,7 @@ minetest.register_node("mesecons_switch:mesecon_switch_off", {
}},
on_punch = function(pos, node)
minetest.swap_node(pos, {name = "mesecons_switch:mesecon_switch_on", param2 = node.param2})
mesecon.receptor_on(pos)
mesecon:receptor_on(pos)
minetest.sound_play("mesecons_switch", {pos=pos})
end
})
Expand All @@ -27,7 +27,7 @@ minetest.register_node("mesecons_switch:mesecon_switch_on", {
}},
on_punch = function(pos, node)
minetest.swap_node(pos, {name = "mesecons_switch:mesecon_switch_off", param2 = node.param2})
mesecon.receptor_off(pos)
mesecon:receptor_off(pos)
minetest.sound_play("mesecons_switch", {pos=pos})
end
})
Expand Down

0 comments on commit a550323

Please sign in to comment.