From 521070541750a5913c6e83638c60ec3ff6ae79cd Mon Sep 17 00:00:00 2001 From: Jeija Date: Sun, 8 Jan 2012 18:23:44 +0100 Subject: Change Button Rules, Torch rules and split into multiple files. Object detectors with sign underneath only detect players with the name on it. --- jeija/button.lua | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 jeija/button.lua (limited to 'jeija/button.lua') diff --git a/jeija/button.lua b/jeija/button.lua new file mode 100644 index 0000000..bc3ec17 --- /dev/null +++ b/jeija/button.lua @@ -0,0 +1,84 @@ +-- WALL BUTTON +minetest.register_node("jeija:wall_button_off", { + drawtype = "signlike", + tile_images = {"jeija_wall_button_off.png"}, + inventory_image = "jeija_wall_button_off.png", + paramtype = "light", + wall_mounted = true, + walkable = false, + selection_box = { + type = "wallmounted", + }, + material = minetest.digprop_constanttime(0.3), +}) +minetest.register_node("jeija:wall_button_on", { + drawtype = "signlike", + tile_images = {"jeija_wall_button_on.png"}, + inventory_image = "jeija_wall_button_on.png", + paramtype = "light", + wall_mounted = true, + walkable = false, + selection_box = { + type = "wallmounted", + }, + material = minetest.digprop_constanttime(0.3), + dug_item = 'node jeija:wall_button_off 1', +}) + +minetest.register_on_dignode( + function(pos, oldnode, digger) + if oldnode.name == "jeija:wall_button_on" then + mesecon:receptor_off(pos) + end + end +) +minetest.register_on_punchnode(function(pos, node, puncher) + if node.name == "jeija:wall_button_off" then + minetest.env:add_node(pos, {name="jeija:wall_button_on",param2=node.param2}) + local rules_string="" + if node.param2 == 32 then + rules_string="button_z+" + end + if node.param2 == 2 then + rules_string="button_x+" + end + if node.param2 == 16 then + rules_string="button_z-" + end + if node.param2 == 1 then + rules_string="button_x-" + end + mesecon:receptor_on(pos, rules_string) + end +end) +minetest.register_abm({ + nodenames = {"jeija:wall_button_on"}, + interval = 0.1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.env:add_node(pos, {name="jeija:wall_button_off",param2=node.param2}) + + local rules_string="" + if node.param2 == 32 then + rules_string="button_z+" + end + if node.param2 == 2 then + rules_string="button_x+" + end + if node.param2 == 16 then + rules_string="button_z-" + end + if node.param2 == 1 then + rules_string="button_x-" + end + mesecon:receptor_off(pos, rules_string) + end +}) +minetest.register_craft({ + output = 'node "jeija:wall_button_off" 2', + recipe = { + {'node "jeija:mesecon_off"','node "default:stone"'}, + } +}) +mesecon:add_receptor_node("jeija:wall_button") +mesecon:add_receptor_node_off("jeija:wall_button_off") -- cgit v1.2.3