Commits

durron597 authored ce271f8abca
Changed base of the source file to be based off of grum/mc-dev:

net/minecraft/server/BlockFlowing.java
No tags

src/main/java/net/minecraft/server/BlockFlowing.java

Modified
1 1 package net.minecraft.server;
2 2
3 +
3 4 import java.util.Random;
4 5
5 6 import org.bukkit.BlockFace;
6 7 import org.bukkit.craftbukkit.CraftBlock;
7 8 import org.bukkit.event.Event.Type;
8 9 import org.bukkit.event.block.BlockFromToEvent;
9 10
10 -public class BlockFlowing extends BlockFluids
11 -{
11 +public class BlockFlowing extends BlockFluids {
12 +
13 + int a;
14 + boolean b[];
15 + int c[];
12 16
13 - protected BlockFlowing(int i1, Material material)
14 - {
17 + protected BlockFlowing(int i1, Material material) {
15 18 super(i1, material);
16 19 a = 0;
17 20 b = new boolean[4];
18 21 c = new int[4];
19 22 }
20 23
21 - private void i(World world, int i1, int j1, int k1)
22 - {
24 + private void i(World world, int i1, int j1, int k1) {
23 25 int l1 = world.b(i1, j1, k1);
26 +
24 27 world.a(i1, j1, k1, bh + 1, l1);
25 28 world.b(i1, j1, k1, i1, j1, k1);
26 29 world.g(i1, j1, k1);
27 30 }
28 31
29 - public void a(World world, int i1, int j1, int k1, Random random)
30 - {
32 + public void a(World world, int i1, int j1, int k1, Random random) {
31 33 int l1 = g(world, i1, j1, k1);
32 34 byte byte0 = 1;
33 - if(bs == Material.g && !world.q.d)
35 +
36 + if (bs == Material.g && !world.q.d) {
34 37 byte0 = 2;
38 + }
35 39 boolean flag = true;
36 - if(l1 > 0)
37 - {
40 +
41 + if (l1 > 0) {
38 42 int i2 = -100;
43 +
39 44 a = 0;
40 45 i2 = e(world, i1 - 1, j1, k1, i2);
41 46 i2 = e(world, i1 + 1, j1, k1, i2);
42 47 i2 = e(world, i1, j1, k1 - 1, i2);
43 48 i2 = e(world, i1, j1, k1 + 1, i2);
44 49 int j2 = i2 + byte0;
45 - if(j2 >= 8 || i2 < 0)
50 +
51 + if (j2 >= 8 || i2 < 0) {
46 52 j2 = -1;
47 - if(g(world, i1, j1 + 1, k1) >= 0)
48 - {
53 + }
54 + if (g(world, i1, j1 + 1, k1) >= 0) {
49 55 int l2 = g(world, i1, j1 + 1, k1);
50 - if(l2 >= 8)
56 +
57 + if (l2 >= 8) {
51 58 j2 = l2;
52 - else
59 + } else {
53 60 j2 = l2 + 8;
61 + }
54 62 }
55 - if(a >= 2 && bs == Material.f)
56 - if(world.d(i1, j1 - 1, k1))
63 + if (a >= 2 && bs == Material.f) {
64 + if (world.d(i1, j1 - 1, k1)) {
65 + j2 = 0;
66 + } else if (world.c(i1, j1 - 1, k1) == bs && world.b(i1, j1, k1) == 0) {
57 67 j2 = 0;
58 - else
59 - if(world.c(i1, j1 - 1, k1) == bs && world.b(i1, j1, k1) == 0)
60 - j2 = 0;
61 - if(bs == Material.g && l1 < 8 && j2 < 8 && j2 > l1 && random.nextInt(4) != 0)
62 - {
68 + }
69 + }
70 + if (bs == Material.g && l1 < 8 && j2 < 8 && j2 > l1 && random.nextInt(4) != 0) {
63 71 j2 = l1;
64 72 flag = false;
65 73 }
66 - if(j2 != l1)
67 - {
74 + if (j2 != l1) {
68 75 l1 = j2;
69 - if(l1 < 0)
70 - {
76 + if (l1 < 0) {
71 77 world.d(i1, j1, k1, 0);
72 - } else
73 - {
78 + } else {
74 79 world.b(i1, j1, k1, l1);
75 80 world.h(i1, j1, k1, bh);
76 81 world.g(i1, j1, k1, bh);
77 82 }
78 - } else
79 - if(flag)
80 - i(world, i1, j1, k1);
81 - } else
82 - {
83 + } else if (flag) {
84 + i(world, i1, j1, k1);
85 + }
86 + } else {
83 87 i(world, i1, j1, k1);
84 88 }
85 -
89 +
86 90 // Craftbukkit start
87 91 CraftBlock source = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i1, j1, k1);
88 -
89 - if(l(world, i1, j1 - 1, k1))
90 - {
92 + if (l(world, i1, j1 - 1, k1)) {
91 93 // Craftbucket send "down" to the server
92 94 BlockFromToEvent blockFlow = new BlockFromToEvent(Type.BLOCK_FLOW, source, BlockFace.Down);
93 95 ((WorldServer) world).getServer().getPluginManager().callEvent(blockFlow);
94 96
95 97 if (!blockFlow.isCancelled()) {
96 - if(l1 >= 8)
98 + if (l1 >= 8) {
97 99 world.b(i1, j1 - 1, k1, bh, l1);
98 - else
100 + } else {
99 101 world.b(i1, j1 - 1, k1, bh, l1 + 8);
102 + }
100 103 }
101 - } else
102 - if(l1 >= 0 && (l1 == 0 || k(world, i1, j1 - 1, k1)))
103 - {
104 - boolean aflag[] = j(world, i1, j1, k1);
105 - int k2 = l1 + byte0;
106 - if(l1 >= 8)
107 - k2 = 1;
108 - if(k2 >= 8)
109 - return;
110 -
111 - // Craftbukkit start
112 - BlockFace[] faces = new BlockFace[]{ BlockFace.North, BlockFace.South, BlockFace.East, BlockFace.West };
113 - for (BlockFace currentFace : faces) {
114 - int index = 0;
115 - if (aflag[index]) {
116 - BlockFromToEvent event = new BlockFromToEvent(Type.BLOCK_FLOW, source, currentFace);
117 - ((WorldServer) world).getServer().getPluginManager().callEvent(event);
118 - if (!event.isCancelled())
119 - f(world, i1 + currentFace.getModX(), j1, k1 + currentFace.getModZ(), k2);
120 - }
121 - index++;
104 + } else if (l1 >= 0 && (l1 == 0 || k(world, i1, j1 - 1, k1))) {
105 + boolean aflag[] = j(world, i1, j1, k1);
106 + int k2 = l1 + byte0;
107 +
108 + if (l1 >= 8) {
109 + k2 = 1;
110 + }
111 + if (k2 >= 8) {
112 + return;
113 + }
114 + // Craftbukkit all four cardinal directions. Do not change the order!
115 + BlockFace[] faces = new BlockFace[]{ BlockFace.North, BlockFace.South, BlockFace.East, BlockFace.West };
116 + for (BlockFace currentFace : faces) {
117 + int index = 0;
118 + if (aflag[index]) {
119 + BlockFromToEvent event = new BlockFromToEvent(Type.BLOCK_FLOW, source, currentFace);
120 + ((WorldServer) world).getServer().getPluginManager().callEvent(event);
121 + if (!event.isCancelled())
122 + f(world, i1 + currentFace.getModX(), j1, k1 + currentFace.getModZ(), k2);
122 123 }
123 - // Craftbukkit stop
124 + index++;
124 125 }
126 + }
127 + // Craftbukkit stop
125 128 }
126 129
127 - private void f(World world, int i1, int j1, int k1, int l1)
128 - {
129 - if(l(world, i1, j1, k1))
130 - {
130 + private void f(World world, int i1, int j1, int k1, int l1) {
131 + if (l(world, i1, j1, k1)) {
131 132 int i2 = world.a(i1, j1, k1);
132 - if(i2 > 0)
133 - if(bs == Material.g)
133 +
134 + if (i2 > 0) {
135 + if (bs == Material.g) {
134 136 h(world, i1, j1, k1);
135 - else
137 + } else {
136 138 Block.m[i2].a_(world, i1, j1, k1, world.b(i1, j1, k1));
139 + }
140 + }
137 141 world.b(i1, j1, k1, bh, l1);
138 142 }
139 143 }
140 144
141 - private int a(World world, int i1, int j1, int k1, int l1, int i2)
142 - {
145 + private int a(World world, int i1, int j1, int k1, int l1, int i2) {
143 146 int j2 = 1000;
144 - for(int k2 = 0; k2 < 4; k2++)
145 - {
146 - if(k2 == 0 && i2 == 1 || k2 == 1 && i2 == 0 || k2 == 2 && i2 == 3 || k2 == 3 && i2 == 2)
147 +
148 + for (int k2 = 0; k2 < 4; k2++) {
149 + if (k2 == 0 && i2 == 1 || k2 == 1 && i2 == 0 || k2 == 2 && i2 == 3 || k2 == 3 && i2 == 2) {
147 150 continue;
151 + }
148 152 int l2 = i1;
149 153 int i3 = j1;
150 154 int j3 = k1;
151 - if(k2 == 0)
155 +
156 + if (k2 == 0) {
152 157 l2--;
153 - if(k2 == 1)
158 + }
159 + if (k2 == 1) {
154 160 l2++;
155 - if(k2 == 2)
161 + }
162 + if (k2 == 2) {
156 163 j3--;
157 - if(k2 == 3)
164 + }
165 + if (k2 == 3) {
158 166 j3++;
159 - if(k(world, l2, i3, j3) || world.c(l2, i3, j3) == bs && world.b(l2, i3, j3) == 0)
167 + }
168 + if (k(world, l2, i3, j3) || world.c(l2, i3, j3) == bs && world.b(l2, i3, j3) == 0) {
160 169 continue;
161 - if(!k(world, l2, i3 - 1, j3))
170 + }
171 + if (!k(world, l2, i3 - 1, j3)) {
162 172 return l1;
163 - if(l1 >= 4)
173 + }
174 + if (l1 >= 4) {
164 175 continue;
176 + }
165 177 int k3 = a(world, l2, i3, j3, l1 + 1, k2);
166 - if(k3 < j2)
178 +
179 + if (k3 < j2) {
167 180 j2 = k3;
181 + }
168 182 }
169 183
170 184 return j2;
171 185 }
172 186
173 - private boolean[] j(World world, int i1, int j1, int k1)
174 - {
175 - for(int l1 = 0; l1 < 4; l1++)
176 - {
187 + private boolean[] j(World world, int i1, int j1, int k1) {
188 + for (int l1 = 0; l1 < 4; l1++) {
177 189 c[l1] = 1000;
178 190 int j2 = i1;
179 191 int i3 = j1;
180 192 int j3 = k1;
181 - if(l1 == 0)
193 +
194 + if (l1 == 0) {
182 195 j2--;
183 - if(l1 == 1)
196 + }
197 + if (l1 == 1) {
184 198 j2++;
185 - if(l1 == 2)
199 + }
200 + if (l1 == 2) {
186 201 j3--;
187 - if(l1 == 3)
202 + }
203 + if (l1 == 3) {
188 204 j3++;
189 - if(k(world, j2, i3, j3) || world.c(j2, i3, j3) == bs && world.b(j2, i3, j3) == 0)
205 + }
206 + if (k(world, j2, i3, j3) || world.c(j2, i3, j3) == bs && world.b(j2, i3, j3) == 0) {
190 207 continue;
191 - if(!k(world, j2, i3 - 1, j3))
208 + }
209 + if (!k(world, j2, i3 - 1, j3)) {
192 210 c[l1] = 0;
193 - else
211 + } else {
194 212 c[l1] = a(world, j2, i3, j3, 1, l1);
213 + }
195 214 }
196 215
197 216 int i2 = c[0];
198 - for(int k2 = 1; k2 < 4; k2++)
199 - if(c[k2] < i2)
217 +
218 + for (int k2 = 1; k2 < 4; k2++) {
219 + if (c[k2] < i2) {
200 220 i2 = c[k2];
221 + }
222 + }
201 223
202 - for(int l2 = 0; l2 < 4; l2++)
224 + for (int l2 = 0; l2 < 4; l2++) {
203 225 b[l2] = c[l2] == i2;
226 + }
204 227
205 228 return b;
206 229 }
207 230
208 - private boolean k(World world, int i1, int j1, int k1)
209 - {
231 + private boolean k(World world, int i1, int j1, int k1) {
210 232 int l1 = world.a(i1, j1, k1);
211 - if(l1 == Block.aE.bh || l1 == Block.aL.bh || l1 == Block.aD.bh || l1 == Block.aF.bh || l1 == Block.aX.bh)
233 +
234 + if (l1 == Block.aE.bh || l1 == Block.aL.bh || l1 == Block.aD.bh || l1 == Block.aF.bh || l1 == Block.aX.bh) {
212 235 return true;
213 - if(l1 == 0)
236 + }
237 + if (l1 == 0) {
214 238 return false;
239 + }
215 240 Material material = Block.m[l1].bs;
241 +
216 242 return material.a();
217 243 }
218 244
219 - protected int e(World world, int i1, int j1, int k1, int l1)
220 - {
245 + protected int e(World world, int i1, int j1, int k1, int l1) {
221 246 int i2 = g(world, i1, j1, k1);
222 - if(i2 < 0)
247 +
248 + if (i2 < 0) {
223 249 return l1;
224 - if(i2 == 0)
250 + }
251 + if (i2 == 0) {
225 252 a++;
226 - if(i2 >= 8)
253 + }
254 + if (i2 >= 8) {
227 255 i2 = 0;
256 + }
228 257 return l1 >= 0 && i2 >= l1 ? l1 : i2;
229 258 }
230 259
231 - private boolean l(World world, int i1, int j1, int k1)
232 - {
260 + private boolean l(World world, int i1, int j1, int k1) {
233 261 Material material = world.c(i1, j1, k1);
234 - if(material == bs)
262 +
263 + if (material == bs) {
235 264 return false;
236 - if(material == Material.g)
265 + }
266 + if (material == Material.g) {
237 267 return false;
238 - else
268 + } else {
239 269 return !k(world, i1, j1, k1);
270 + }
240 271 }
241 272
242 - public void e(World world, int i1, int j1, int k1)
243 - {
273 + public void e(World world, int i1, int j1, int k1) {
244 274 super.e(world, i1, j1, k1);
245 - if(world.a(i1, j1, k1) == bh)
275 + if (world.a(i1, j1, k1) == bh) {
246 276 world.h(i1, j1, k1, bh);
277 + }
247 278 }
279 +}
248 280
249 - int a;
250 - boolean b[];
251 - int c[];
252 -}

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut