summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesecons/legacy.lua5
-rw-r--r--mesecons_lightstone/init.lua40
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,
}}
})