15 --inverts redstone signal
16 minetest.register_node("redstone:inverter_on", {
17 description = "Redstone Inverter",
18 tiles = {"repeater_on.png"},
19 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1},
20 sounds = main.stoneSound(),
22 paramtype2 = "facedir",
23 sunlight_propagates = true,
26 drop="redstone:inverter_off",
30 --left front bottom right back top
31 {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, --base
32 {-0.2, -0.5, 0.2, 0.2, 0.1, 0.4}, --output post
35 after_place_node = function(pos, placer, itemstack, pointed_thing)
36 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
38 name = "redstone:inverter_on",
39 directional_activator = true,
40 input = vector.subtract(pos,dir),
45 after_destruct = function(pos, oldnode)
46 redstone.inject(pos,nil)
52 redstone.register_activator({
53 name = "redstone:inverter_on",
54 deactivate = function(pos)
55 local param2 = minetest.get_node(pos).param2
56 minetest.swap_node(pos,{name="redstone:inverter_off",param2=param2})
57 local dir = minetest.facedir_to_dir(param2)
59 name = "redstone:inverter_off",
61 torch_directional = true,
62 directional_activator = true,
63 input = vector.subtract(pos,dir),
64 output = vector.add(pos,dir),
67 redstone.update(vector.add(pos,dir))
72 minetest.register_lbm({
73 name = "redstone:startupinverter",
74 nodenames = {"redstone:inverter_on"},
75 run_at_every_load = true,
76 action = function(pos)
77 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
79 name = "redstone:inverter_on",
80 directional_activator = true,
81 input = vector.subtract(pos,dir),
90 ██████╗ ███████╗███████╗
91 ██╔═══██╗██╔════╝██╔════╝
98 minetest.register_node("redstone:inverter_off", {
99 description = "Redstone Inverter",
100 tiles = {"repeater_off.png"},
101 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1,torch_directional=1,redstone_power=9},
102 sounds = main.stoneSound(),
104 paramtype2 = "facedir",
105 sunlight_propagates = true,
108 drop="redstone:inverter_off",
112 --left front bottom right back top
113 {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, --base
114 {-0.2, -0.5, 0.2, 0.2, 0.1, 0.4}, --output post
117 after_place_node = function(pos, placer, itemstack, pointed_thing)
118 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
119 redstone.inject(pos,{
120 name = "redstone:inverter_off",
122 torch_directional = true,
123 directional_activator = true,
124 input = vector.subtract(pos,dir),
125 output = vector.add(pos,dir),
130 after_destruct = function(pos, oldnode)
131 redstone.inject(pos,nil)
136 redstone.register_activator({
137 name = "redstone:inverter_off",
138 activate = function(pos)
140 local param2 = minetest.get_node(pos).param2
141 minetest.swap_node(pos,{name="redstone:inverter_on",param2=param2})
142 local dir = minetest.facedir_to_dir(param2)
143 redstone.inject(pos,{
144 name = "redstone:inverter_on",
145 directional_activator = true,
146 input = vector.subtract(pos,dir),
149 redstone.update(vector.add(pos,dir))
154 minetest.register_lbm({
155 name = "redstone:also_startup_inverter",
156 nodenames = {"redstone:inverter_off"},
157 run_at_every_load = true,
158 action = function(pos)
159 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
160 redstone.inject(pos,{
161 name = "redstone:inverter_off",
163 torch_directional = true,
164 directional_activator = true,
165 input = vector.subtract(pos,dir),
166 output = vector.add(pos,dir),
169 --redstone needs to warm up
170 minetest.after(0,function()