1 local minetest,vector = minetest,vector
5 for level = 0,max_timer do
6 minetest.register_node("redstone:repeater_off_"..level, {
7 description = "Redstone Repeater",
8 tiles = {"repeater_off.png"},
9 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,repeater_off=1,repeater=1,redstone_activation_directional=1,repeater_level=level},
10 sounds = main.stoneSound(),
12 paramtype2 = "facedir",
13 sunlight_propagates = true,
16 drop="redstone:repeater_off_0",
20 --left front bottom right back top
21 {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, --base
22 {-0.1, -0.5, 0.2, 0.1, 0.1, 0.4}, --output post
23 {-0.1, -0.5, -0.05-(level*0.05), 0.1, 0.1, 0.15-(level*0.05)}, --input post
26 redstone_activation = function(pos)
27 local timer = minetest.get_node_timer(pos)
28 if not timer:is_started() then
29 timer:start(level/max_timer)
33 on_timer = function(pos, elapsed)
34 local param2 = minetest.get_node(pos).param2
35 minetest.swap_node(pos, {name="redstone:repeater_on_"..level,param2=param2})
36 redstone.collect_info(pos)
39 on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
40 local newlevel = level + 1
41 if newlevel > max_timer then
44 minetest.swap_node(pos,{name="redstone:repeater_off_"..newlevel,param2=node.param2})
45 minetest.sound_play("lever", {pos=pos})
48 after_destruct = function(pos, oldnode)
49 redstone.collect_info(pos)
53 minetest.register_node("redstone:repeater_on_"..level, {
54 description = "Redstone Repeater",
55 tiles = {"repeater_on.png"},
56 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1,repeater_on=1,repeater=1,torch_directional=1,redstone_power=9,repeater_level=level},
57 sounds = main.stoneSound(),
59 paramtype2 = "facedir",
60 sunlight_propagates = true,
63 drop="redstone:repeater_off_0",
67 --left front bottom right back top
68 {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, --base
69 {-0.1, -0.5, 0.2, 0.1, 0.1, 0.4}, --output post
70 {-0.1, -0.5, -0.05-(level*0.05), 0.1, 0.1, 0.15-(level*0.05)}, --input post
73 on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
74 local newlevel = level + 1
75 if newlevel > max_timer then
78 minetest.swap_node(pos,{name="redstone:repeater_on_"..newlevel,param2=node.param2})
79 minetest.sound_play("lever", {pos=pos})
81 redstone_deactivation = function(pos)
82 local timer = minetest.get_node_timer(pos)
83 if not timer:is_started() then
84 timer:start(level/max_timer)
87 on_timer = function(pos, elapsed)
88 local param2 = minetest.get_node(pos).param2
89 minetest.swap_node(pos, {name="redstone:repeater_off_"..level,param2=param2})
90 redstone.collect_info(pos)
92 after_destruct = function(pos, oldnode)
93 redstone.collect_info(pos)