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),
41 output = vector.add(pos,dir),
45 redstone.update(vector.add(pos,dir))
47 after_destruct = function(pos, oldnode)
48 local param2 = oldnode.param2
49 local dir = minetest.facedir_to_dir(param2)
50 redstone.inject(pos,nil)
51 --redstone.update(pos)
52 redstone.update(vector.add(pos,dir))
57 redstone.register_activator({
58 name = "redstone:inverter_on",
59 deactivate = function(pos)
60 local param2 = minetest.get_node(pos).param2
61 minetest.swap_node(pos,{name="redstone:inverter_off",param2=param2})
62 local dir = minetest.facedir_to_dir(param2)
64 name = "redstone:inverter_off",
66 torch_directional = true,
67 directional_activator = true,
68 input = vector.subtract(pos,dir),
69 output = vector.add(pos,dir),
72 --redstone.update(pos)
73 redstone.update(vector.add(pos,dir))
78 minetest.register_lbm({
79 name = "redstone:startupinverter",
80 nodenames = {"redstone:inverter_on"},
81 run_at_every_load = true,
82 action = function(pos)
83 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
85 name = "redstone:inverter_on",
86 directional_activator = true,
87 input = vector.subtract(pos,dir),
88 output = vector.add(pos,dir),
91 --redstone.update(pos)
92 redstone.update(vector.add(pos,dir))
99 ██████╗ ███████╗███████╗
100 ██╔═══██╗██╔════╝██╔════╝
107 minetest.register_node("redstone:inverter_off", {
108 description = "Redstone Inverter",
109 tiles = {"repeater_off.png"},
110 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1,torch_directional=1,redstone_power=9},
111 sounds = main.stoneSound(),
113 paramtype2 = "facedir",
114 sunlight_propagates = true,
117 drop="redstone:inverter_off",
121 --left front bottom right back top
122 {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, --base
123 {-0.2, -0.5, 0.2, 0.2, 0.1, 0.4}, --output post
126 after_place_node = function(pos, placer, itemstack, pointed_thing)
127 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
128 redstone.inject(pos,{
129 name = "redstone:inverter_off",
131 torch_directional = true,
132 directional_activator = true,
133 input = vector.subtract(pos,dir),
134 output = vector.add(pos,dir),
138 redstone.update(vector.add(pos,dir))
140 after_destruct = function(pos, oldnode)
141 local param2 = oldnode.param2
142 local dir = minetest.facedir_to_dir(param2)
143 redstone.inject(pos,nil)
144 --redstone.update(pos)
145 redstone.update(vector.add(pos,dir))
149 redstone.register_activator({
150 name = "redstone:inverter_off",
151 activate = function(pos)
153 local param2 = minetest.get_node(pos).param2
154 minetest.swap_node(pos,{name="redstone:inverter_on",param2=param2})
155 local dir = minetest.facedir_to_dir(param2)
156 redstone.inject(pos,{
157 name = "redstone:inverter_on",
158 directional_activator = true,
159 input = vector.subtract(pos,dir),
160 output = vector.add(pos,dir),
163 --redstone.update(pos)
164 redstone.update(vector.add(pos,dir))
169 minetest.register_lbm({
170 name = "redstone:also_startup_inverter",
171 nodenames = {"redstone:inverter_off"},
172 run_at_every_load = true,
173 action = function(pos)
174 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
175 redstone.inject(pos,{
176 name = "redstone:inverter_off",
178 torch_directional = true,
179 directional_activator = true,
180 input = vector.subtract(pos,dir),
181 output = vector.add(pos,dir),
184 --redstone.update(pos)
185 redstone.update(vector.add(pos,dir))