diff options
-rw-r--r-- | mesecons/legacy.lua | 5 | ||||
-rw-r--r-- | mesecons_lightstone/init.lua | 40 |
2 files changed, 34 insertions, 11 deletions
diff --git a/mesecons/legacy.lua b/mesecons/legacy.lua index e69de29..a68bab4 100644 --- a/mesecons/legacy.lua +++ b/mesecons/legacy.lua @@ -0,0 +1,5 @@ +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)
+end
\ No newline at end of file diff --git a/mesecons_lightstone/init.lua b/mesecons_lightstone/init.lua index 5d47e1b..7bb550d 100644 --- a/mesecons_lightstone/init.lua +++ b/mesecons_lightstone/init.lua @@ -1,15 +1,32 @@ +local lightstone_rules = { + {x=0, y=0, z=-1}, + {x=1, y=0, z=0}, + {x=-1, y=0, z=0}, + {x=0, y=0, z=1}, + {x=1, y=1, z=0}, + {x=1, y=-1, z=0}, + {x=-1, y=1, z=0}, + {x=-1, y=-1, z=0}, + {x=0, y=1, z=1}, + {x=0, y=-1, z=1}, + {x=0, y=1, z=-1}, + {x=0, y=-1, z=-1}, + {x=0, y=-1, z=0}, +} + function mesecon:lightstone_add(name, base_item, texture_off, texture_on) minetest.register_node("mesecons_lightstone:lightstone_" .. name .. "_off", { - tiles = {texture_off}, - groups = {cracky=2, mesecon_effector_off = 1, mesecon = 2}, - description=name.." Lightstone", - sounds = default.node_sound_stone_defaults(), - mesecons = {effector = { - action_on = function (pos, node) - minetest.swap_node(pos, {name = "mesecons_lightstone:lightstone_" .. name .. "_on", param2 = node.param2}) - end - }} - }) + tiles = {texture_off}, + groups = {cracky=2, mesecon_effector_off = 1, mesecon = 2}, + description=name.." Lightstone", + sounds = default.node_sound_stone_defaults(), + mesecons = {effector = { + rules = lightstone_rules, + action_on = function (pos, node) + minetest.swap_node(pos, {name = "mesecons_lightstone:lightstone_" .. name .. "_on", param2 = node.param2}) + end, + }} + }) minetest.register_node("mesecons_lightstone:lightstone_" .. name .. "_on", { tiles = {texture_on}, groups = {cracky=2,not_in_creative_inventory=1, mesecon = 2}, @@ -17,9 +34,10 @@ function mesecon:lightstone_add(name, base_item, texture_off, texture_on) light_source = LIGHT_MAX-2, sounds = default.node_sound_stone_defaults(), mesecons = {effector = { + rules = lightstone_rules, action_off = function (pos, node) minetest.swap_node(pos, {name = "mesecons_lightstone:lightstone_" .. name .. "_off", param2 = node.param2}) - end + end, }} }) |