6 local r_max = redstone.max_state
17 --inverts redstone signal
18 minetest.register_node("redstone:inverter_on", {
19 description = "Redstone Inverter",
20 tiles = {"repeater_on.png"},
21 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1},
22 sounds = main.stoneSound(),
24 paramtype2 = "facedir",
25 sunlight_propagates = true,
28 drop="redstone:inverter_off",
32 --left front bottom right back top
33 {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, --base
34 {-0.2, -0.5, 0.2, 0.2, 0.1, 0.4}, --output post
37 after_place_node = function(pos, placer, itemstack, pointed_thing)
38 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
40 name = "redstone:inverter_on",
41 directional_activator = true,
42 input = vector.subtract(pos,dir),
43 output = vector.add(pos,dir),
47 redstone.update(vector.add(pos,dir))
49 after_destruct = function(pos, oldnode)
50 local param2 = oldnode.param2
51 local dir = minetest.facedir_to_dir(param2)
52 redstone.inject(pos,nil)
53 --redstone.update(pos)
54 redstone.update(vector.add(pos,dir))
59 redstone.register_activator({
60 name = "redstone:inverter_on",
61 deactivate = function(pos)
62 local param2 = minetest.get_node(pos).param2
63 minetest.swap_node(pos,{name="redstone:inverter_off",param2=param2})
64 local dir = minetest.facedir_to_dir(param2)
66 name = "redstone:inverter_off",
68 torch_directional = true,
69 directional_activator = true,
70 input = vector.subtract(pos,dir),
71 output = vector.add(pos,dir),
74 --redstone.update(pos)
75 redstone.update(vector.add(pos,dir))
80 minetest.register_lbm({
81 name = "redstone:startupinverter",
82 nodenames = {"redstone:inverter_on"},
83 run_at_every_load = true,
84 action = function(pos)
85 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
87 name = "redstone:inverter_on",
88 directional_activator = true,
89 input = vector.subtract(pos,dir),
90 output = vector.add(pos,dir),
93 --redstone.update(pos)
94 redstone.update(vector.add(pos,dir))
101 ██████╗ ███████╗███████╗
102 ██╔═══██╗██╔════╝██╔════╝
109 minetest.register_node("redstone:inverter_off", {
110 description = "Redstone Inverter",
111 tiles = {"repeater_off.png"},
112 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1,torch_directional=1,redstone_power=r_max},
113 sounds = main.stoneSound(),
115 paramtype2 = "facedir",
116 sunlight_propagates = true,
119 drop="redstone:inverter_off",
123 --left front bottom right back top
124 {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, --base
125 {-0.2, -0.5, 0.2, 0.2, 0.1, 0.4}, --output post
128 after_place_node = function(pos, placer, itemstack, pointed_thing)
129 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
130 redstone.inject(pos,{
131 name = "redstone:inverter_off",
133 torch_directional = true,
134 directional_activator = true,
135 input = vector.subtract(pos,dir),
136 output = vector.add(pos,dir),
140 redstone.update(vector.add(pos,dir))
142 after_destruct = function(pos, oldnode)
143 local param2 = oldnode.param2
144 local dir = minetest.facedir_to_dir(param2)
145 redstone.inject(pos,nil)
146 --redstone.update(pos)
147 redstone.update(vector.add(pos,dir))
151 redstone.register_activator({
152 name = "redstone:inverter_off",
153 activate = function(pos)
155 local param2 = minetest.get_node(pos).param2
156 minetest.swap_node(pos,{name="redstone:inverter_on",param2=param2})
157 local dir = minetest.facedir_to_dir(param2)
158 redstone.inject(pos,{
159 name = "redstone:inverter_on",
160 directional_activator = true,
161 input = vector.subtract(pos,dir),
162 output = vector.add(pos,dir),
165 --redstone.update(pos)
166 redstone.update(vector.add(pos,dir))
171 minetest.register_lbm({
172 name = "redstone:also_startup_inverter",
173 nodenames = {"redstone:inverter_off"},
174 run_at_every_load = true,
175 action = function(pos)
176 local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
177 redstone.inject(pos,{
178 name = "redstone:inverter_off",
180 torch_directional = true,
181 directional_activator = true,
182 input = vector.subtract(pos,dir),
183 output = vector.add(pos,dir),
186 --redstone.update(pos)
187 redstone.update(vector.add(pos,dir))