]> git.lizzy.rs Git - Crafter.git/blob - mods/redstone/oldcode.txty
Rename switches to levers and fix treecapitator with activated tree node
[Crafter.git] / mods / redstone / oldcode.txty
1 --this is the internal check for getting the max_power 
2 function redstone.add(pos,torch)
3         local max = 0
4         local current = 0
5         
6         --chargup
7         for x = -1,1 do
8         for y = -1,1 do
9         for z = -1,1 do
10                 if not vector.equals(vector.new(0,0,0),vector.new(x,y,z)) then
11                         local pos2 = vector.add(pos,vector.new(x,y,z))
12                         local power = minetest.registered_nodes[minetest.get_node(pos2).name].power
13                         if power then
14                                 if power > max then
15                                         max = power
16                                         current = max - 1
17                                 end
18                         end
19                 end
20         end
21         end
22         end
23         if torch == true then
24                 current = 9
25         else
26                 if minetest.get_node_group(minetest.get_node(pos).name, "redstone_dust") > 0 then
27                         minetest.set_node(pos,{name="redstone:dust_"..current}) 
28                 end
29         end
30         --transfer
31         for x = -1,1 do
32         for y = -1,1 do
33         for z = -1,1 do
34                 local pos2 = vector.add(pos,vector.new(x,y,z))
35                 local power = minetest.registered_nodes[minetest.get_node(pos2).name].power
36                 if power then
37                         if power < current then
38                                 minetest.after(0,function(pos2)
39                                         redstone.add(pos2)
40                                 end,pos2)
41                         end
42                 end
43         end
44         end
45         end
46 end
47
48 function redstone.remove(pos,oldpower,torch)
49         local max = 0
50         
51         --chargup
52         for x = -1,1 do
53         for y = -1,1 do
54         for z = -1,1 do
55                 if not vector.equals(vector.new(0,0,0),vector.new(x,y,z)) then
56                         local pos2 = vector.add(pos,vector.new(x,y,z))
57                         local power = minetest.registered_nodes[minetest.get_node(pos2).name].power
58                         if power and power ~= 9 then
59                                 --print(power)
60                                 if power > max then
61                                         max = power
62                                 end
63                         end
64                 end
65         end
66         end
67         end
68         for x = -1,1 do
69         for y = -1,1 do
70         for z = -1,1 do
71                 if not vector.equals(vector.new(0,0,0),vector.new(x,y,z)) then
72                         local pos2 = vector.add(pos,vector.new(x,y,z))
73                         local power = minetest.registered_nodes[minetest.get_node(pos2).name].power
74                         if power then
75                                 if power < oldpower then
76                                         if not torch == true then
77                                                 if minetest.get_node_group(minetest.get_node(pos).name, "redstone_dust") > 0 then
78                                                         minetest.set_node(pos,{name="redstone:dust_0"})
79                                                 end
80                                         end
81                                         
82                                         minetest.after(0,function(pos2)
83                                                 redstone.remove(pos2,power)
84                                         end,pos2)
85                                 end
86                         end
87                 end
88         end
89         end
90         end
91 end