1 local minetest,vector = minetest,vector
2 --inverts redstone signal
3 minetest.register_node("redstone:inverter_on", {
4 description = "Redstone Inverter",
5 tiles = {"repeater_on.png"},
6 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1},
7 sounds = main.stoneSound(),
9 paramtype2 = "facedir",
10 sunlight_propagates = true,
13 drop="redstone:inverter_off",
17 --left front bottom right back top
18 {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, --base
19 {-0.2, -0.5, 0.2, 0.2, 0.1, 0.4}, --output post
22 redstone_deactivation = function(pos)
23 local param2 = minetest.get_node(pos).param2
24 minetest.swap_node(pos,{name="redstone:inverter_off",param2=param2})
26 local dir = minetest.facedir_to_dir(param2)
27 minetest.after(0,function()
28 redstone.collect_info(vector.add(pos,dir))
29 redstone.collect_info(vector.subtract(pos,dir))
32 after_destruct = function(pos, oldnode)
33 redstone.collect_info(pos)
37 minetest.register_node("redstone:inverter_off", {
38 description = "Redstone Inverter",
39 tiles = {"repeater_off.png"},
40 groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1,torch_directional=1,redstone_power=9},
41 sounds = main.stoneSound(),
43 paramtype2 = "facedir",
44 sunlight_propagates = true,
47 drop="redstone:inverter_off",
51 --left front bottom right back top
52 {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5}, --base
53 {-0.2, -0.5, 0.2, 0.2, 0.1, 0.4}, --output post
56 redstone_activation = function(pos)
57 local param2 = minetest.get_node(pos).param2
58 minetest.swap_node(pos,{name="redstone:inverter_on",param2=param2})
59 local dir = minetest.facedir_to_dir(param2)
60 minetest.after(0,function()
61 redstone.collect_info(vector.add(pos,dir))
62 redstone.collect_info(vector.subtract(pos,dir))
65 after_place_node = function(pos, placer, itemstack, pointed_thing)
66 redstone.collect_info(pos)
68 after_destruct = function(pos, oldnode)
69 redstone.collect_info(pos)
73 minetest.register_lbm({
74 name = "redstone:startupinverter",
75 nodenames = {"redstone:inverter_on"},
76 run_at_every_load = true,
77 action = function(pos)
78 print("collecting info on")
79 local param2 = minetest.get_node(pos).param2
80 local dir = minetest.facedir_to_dir(param2)
81 redstone.collect_info(vector.add(pos,dir))
82 redstone.collect_info(vector.subtract(pos,dir))
86 minetest.register_lbm({
87 name = "redstone:also_startup_inverter",
88 nodenames = {"redstone:inverter_off"},
89 run_at_every_load = true,
90 action = function(pos)
91 print("collecting info off")
92 local param2 = minetest.get_node(pos).param2
93 local dir = minetest.facedir_to_dir(param2)
94 redstone.collect_info(vector.add(pos,dir))
95 redstone.collect_info(vector.subtract(pos,dir))