From 2ff53434c8e4a3963c0ab9e3a335db88ef35912d Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 2 Apr 2012 08:08:26 +0200 Subject: Fixed and enabled Wall-Levers --- mesecons_walllever/init.lua | 86 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 mesecons_walllever/init.lua (limited to 'mesecons_walllever/init.lua') diff --git a/mesecons_walllever/init.lua b/mesecons_walllever/init.lua new file mode 100644 index 0000000..0276aeb --- /dev/null +++ b/mesecons_walllever/init.lua @@ -0,0 +1,86 @@ +-- WALL LEVER +minetest.register_node("mesecons_walllever:wall_lever_off", { + drawtype = "signlike", + tile_images = {"jeija_wall_lever_off.png"}, + inventory_image = "jeija_wall_lever_off.png", + wield_image = "jeija_wall_lever_off.png", + paramtype = "light", + paramtype2 = "wallmounted", + legacy_wallmounted = true, + walkable = false, + selection_box = { + type = "wallmounted", + }, + groups = {dig_immediate=2}, + description="Lever", +}) +minetest.register_node("mesecons_walllever:wall_lever_on", { + drawtype = "signlike", + tile_images = {"jeija_wall_lever_on.png"}, + inventory_image = "jeija_wall_lever_on.png", + paramtype = "light", + paramtype2 = "wallmounted", + legacy_wallmounted = true, + walkable = false, + selection_box = { + type = "wallmounted", + }, + groups = {dig_immediate=2}, + drop = '"mesecons_walllever:wall_lever_off" 1', + description="Lever", +}) + +minetest.register_on_dignode( + function(pos, oldnode, digger) + if oldnode.name == "mesecons_walllever:wall_lever_on" then + mesecon:receptor_off(pos) + end + end +) +minetest.register_on_punchnode(function(pos, node, puncher) + if node.name == "mesecons_walllever:wall_lever_off" then + minetest.env:add_node(pos, {name="mesecons_walllever:wall_lever_on",param2=node.param2}) + local rules_string=nil + if node.param2 == 5 then + rules_string="button_z+" + end + if node.param2 == 3 then + rules_string="button_x+" + end + if node.param2 == 4 then + rules_string="button_z-" + end + if node.param2 == 2 then + rules_string="button_x-" + end + mesecon:receptor_on(pos, rules_string) + end + if node.name == "mesecons_walllever:wall_lever_on" then + minetest.env:add_node(pos, {name="mesecons_walllever:wall_lever_off",param2=node.param2}) + local rules_string=nil + if node.param2 == 5 then + rules_string="button_z+" + end + if node.param2 == 3 then + rules_string="button_x+" + end + if node.param2 == 4 then + rules_string="button_z-" + end + if node.param2 == 2 then + rules_string="button_x-" + end + mesecon:receptor_off(pos, rules_string) + end +end) + +minetest.register_craft({ + output = '"mesecons_walllever:wall_lever_off" 2', + recipe = { + {'"mesecons:mesecon_off"'}, + {'"default:stone"'}, + {'"default:stick"'}, + } +}) +mesecon:add_receptor_node("mesecons_walllever:wall_lever") +mesecon:add_receptor_node_off("mesecons_walllever:wall_lever_off") -- cgit v1.2.3 From 3aa025b6ddb48a23d1d14edee944de2aee50ae0d Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 2 Apr 2012 08:24:48 +0200 Subject: Fix Wall-Lever for new Rules-System --- mesecons_walllever/init.lua | 36 +++++------------------------------- 1 file changed, 5 insertions(+), 31 deletions(-) (limited to 'mesecons_walllever/init.lua') diff --git a/mesecons_walllever/init.lua b/mesecons_walllever/init.lua index 0276aeb..4e3401e 100644 --- a/mesecons_walllever/init.lua +++ b/mesecons_walllever/init.lua @@ -33,44 +33,18 @@ minetest.register_node("mesecons_walllever:wall_lever_on", { minetest.register_on_dignode( function(pos, oldnode, digger) if oldnode.name == "mesecons_walllever:wall_lever_on" then - mesecon:receptor_off(pos) + mesecon:receptor_off(pos, mesecon.button_get_rules(oldnode.param2)) end end ) minetest.register_on_punchnode(function(pos, node, puncher) if node.name == "mesecons_walllever:wall_lever_off" then minetest.env:add_node(pos, {name="mesecons_walllever:wall_lever_on",param2=node.param2}) - local rules_string=nil - if node.param2 == 5 then - rules_string="button_z+" - end - if node.param2 == 3 then - rules_string="button_x+" - end - if node.param2 == 4 then - rules_string="button_z-" - end - if node.param2 == 2 then - rules_string="button_x-" - end - mesecon:receptor_on(pos, rules_string) + mesecon:receptor_on(pos, mesecon.button_get_rules(node.param2)) end if node.name == "mesecons_walllever:wall_lever_on" then minetest.env:add_node(pos, {name="mesecons_walllever:wall_lever_off",param2=node.param2}) - local rules_string=nil - if node.param2 == 5 then - rules_string="button_z+" - end - if node.param2 == 3 then - rules_string="button_x+" - end - if node.param2 == 4 then - rules_string="button_z-" - end - if node.param2 == 2 then - rules_string="button_x-" - end - mesecon:receptor_off(pos, rules_string) + mesecon:receptor_off(pos, mesecon.button_get_rules(node.param2)) end end) @@ -82,5 +56,5 @@ minetest.register_craft({ {'"default:stick"'}, } }) -mesecon:add_receptor_node("mesecons_walllever:wall_lever") -mesecon:add_receptor_node_off("mesecons_walllever:wall_lever_off") +mesecon:add_receptor_node("mesecons_walllever:wall_lever", nil, mesecon.button_get_rules) +mesecon:add_receptor_node_off("mesecons_walllever:wall_lever_off", nil, mesecon.button_get_rules) -- cgit v1.2.3