if (watertime >= 1) { boolean canflow = false; try { for (int x = blockX - 36; x < x1 + 36; x++) { if (x <= 0) continue; for (int y = y1 + 17; y > blockY - 17; y--) { if (y <= 0) continue; if (x >= worldW || y >= worldH) continue; if (waterFall(x, y) == true) { makeW(x, y); makeW(x + 1, y); makeW(x - 1, y); makeW(x, y + 1); } } } canflow = false; for (int x = x1 + 36; x > blockX - 36; x--) { if (x <= 0) continue; for (int y = y1 + 17; y > blockY - 17; y--) { if (y <= 0) continue; if (x >= worldW || y >= worldH) continue; if (block[x][y + 1] != null) { if (water[x][y + 1] == wMass || getState(x, y + 1) == 1) canflow = true; } if (canflow) { if (x <= 1 || y <= 1) continue; if (x >= worldW - 1 || y >= worldH - 1) continue; waterRight(x, y); } } } canflow = false; for (int x = blockX - 36; x < x1 + 36; x++) { if (x <= 0) continue; for (int y = y1 + 17; y > blockY - 17; y--) { if (y <= 0) continue; if (x >= worldW || y >= worldH) continue; if (water[x][y + 1] == wMass || getState(x, y + 1) == 1) canflow = true; if (canflow) { if (x < 0 || y < 0) continue; if (x > worldW || y > worldH) return; if (World.block[x][y] == null) continue; waterLeft(x, y); } // waterUp(x, y); } } } catch (Exception e) { e.printStackTrace(); } watertime = 0; } else { watertime += delta; }