1 local minetest,table,vector = minetest,table,vector
3 minetest.register_node("redstone:button_off", {
4 description = "Button",
6 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,dig_immediate=1},
7 sounds = main.stoneSound(),
9 paramtype2 = "wallmounted",
10 sunlight_propagates = true,
13 drop="redstone:button_off",
17 --left front bottom right back top
18 {-0.25, -0.5, -0.15, 0.25, -0.3, 0.15},
21 on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
22 minetest.swap_node(pos, {name="redstone:button_on",param2=node.param2})
24 minetest.sound_play("lever", {pos=pos})
26 local timer = minetest.get_node_timer(pos)
29 local dir = minetest.wallmounted_to_dir(node.param2)
31 redstone.inject(pos,{torch=9})
32 local pos2 = vector.add(dir,pos)
33 redstone.inject(pos2,{torch=9})
38 after_destruct = function(pos, oldnode)
39 redstone.inject(pos,nil)
40 local dir = minetest.wallmounted_to_dir(oldnode.param2)
41 local pos2 = vector.add(dir,pos)
42 redstone.inject(pos2,nil)
48 minetest.register_node("redstone:button_on", {
49 description = "Button",
50 tiles = {"stone.png"},
51 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,dig_immediate=1},
52 sounds = main.stoneSound(),
54 paramtype2 = "wallmounted",
55 sunlight_propagates = true,
58 drop="redstone:button_off",
62 --left front bottom right back top
63 {-0.25, -0.5, -0.15, 0.25, -0.45, 0.15},
66 on_timer = function(pos, elapsed)
67 minetest.sound_play("lever", {pos=pos,pitch=0.8})
69 local node = minetest.get_node(pos)
70 minetest.swap_node(pos, {name="redstone:button_off",param2=node.param2})
72 redstone.inject(pos,nil)
73 local param2 = minetest.get_node(pos).param2
74 local dir = minetest.wallmounted_to_dir(param2)
75 local pos2 = vector.add(dir,pos)
76 redstone.inject(pos2,nil)
82 after_destruct = function(pos, oldnode)
83 redstone.inject(pos,nil)
84 local dir = minetest.wallmounted_to_dir(oldnode.param2)
85 local pos2 = vector.add(dir,pos)
86 redstone.inject(pos2,nil)
93 minetest.register_lbm({
94 name = "redstone:button_on",
95 nodenames = {"redstone:button_on"},
96 run_at_every_load = true,
97 action = function(pos)
98 local dir = minetest.wallmounted_to_dir(node.param2)
100 redstone.inject(pos,{torch=9})
101 local pos2 = vector.add(dir,pos)
102 redstone.inject(pos2,{torch=9})
104 minetest.after(0,function()
106 redstone.update(pos2)