]> git.lizzy.rs Git - Crafter.git/blob - mods/redstone/capacitors.lua
Fix capacitors recalc glitch
[Crafter.git] / mods / redstone / capacitors.lua
1 minetest.override_item("main:ironblock",{
2     on_construct = function(pos)
3         redstone.inject(pos,{
4           name = "main:ironblock",
5           activator = true,
6           capacitor = 0,
7         })
8         minetest.after(0,function()
9             redstone.update(pos)
10             redstone.update(pos,true)
11         end)
12     end,
13     on_destruct = function(pos)
14         redstone.inject(pos,nil)
15         
16         redstone.update(pos,true)
17         --redstone.update(pos)
18     end
19 })
20
21 redstone.register_activator({
22     name = "main:ironblock",
23     activate = function(pos)
24         minetest.swap_node(pos,{name="main:ironblock_on"})
25         redstone.inject(pos,{
26             name = "main:ironblock_on",
27             capacitor = 1,
28             source    = true,
29             activator = true,
30         })
31         minetest.after(0,function()
32             redstone.update(pos,true)
33             redstone.update(pos)
34         end)
35     end,
36   })
37
38 redstone.register_capacitor({
39     name = "main:ironblock",
40     on   = "main:ironblock_on",
41     off  = "main:ironblock",
42 })
43
44 minetest.register_lbm({
45     name = ":main:ironblock",
46     nodenames = {"main:ironblock"},
47     run_at_every_load = true,
48     action = function(pos)
49         redstone.inject(pos,{
50             name = "main:ironblock",
51             activator = true,
52             capacitor = 0,
53           })
54     end,
55 })
56
57
58 minetest.register_node(":main:ironblock_on", {
59     description = "Iron Block Activated",
60     tiles = {"ironblock.png^[colorize:white:100"},
61     groups = {stone = 2, pathable = 1},
62     sounds = main.stoneSound(),
63     light_source = 10,
64     drop = {
65         max_items = 1,
66         items= {
67             {
68                 rarity = 0,
69                 tools = {"main:coalpick","main:stonepick","main:ironpick","main:lapispick","main:goldpick","main:diamondpick","main:emeraldpick","main:sapphirepick","main:rubypick"},
70                 items = {"main:ironblock"},
71             },
72             },
73         },
74     on_construct = function(pos)
75         redstone.inject(pos,{
76             name = "main:ironblock_on",
77             activator = true,
78             source = true,
79             capacitor = 1,
80         })
81         minetest.after(0,function()
82             redstone.update(pos)
83             redstone.update(pos,true)
84         end)
85     end,
86     on_destruct = function(pos)
87         redstone.inject(pos,nil)
88
89         redstone.update(pos,true)
90         redstone.update(pos)
91     end,
92 })
93
94
95 redstone.register_activator({
96     name = "main:ironblock_on",
97     deactivate = function(pos)
98
99         minetest.swap_node(pos,{name="main:ironblock"})
100         redstone.inject(pos,{
101             name = "main:ironblock",
102             capacitor = 0,
103             activator = true,
104         })
105         minetest.after(0,function()
106             redstone.update(pos,true)
107             redstone.update(pos)
108         end)
109     end,
110 })
111
112 redstone.register_capacitor({
113     name = "main:ironblock_on",
114     on   = "main:ironblock_on",
115     off  = "main:ironblock",
116 })
117
118
119 minetest.register_lbm({
120     name = ":main:ironblock_on",
121     nodenames = {"main:ironblock_on"},
122     run_at_every_load = true,
123     action = function(pos)
124         redstone.inject(pos,{
125             name = "main:ironblock",
126             activator = true,
127             capacitor = 1,
128         })
129     end,
130 })