Skip to content

Commit 5546da8

Browse files
committed
Fixed Rain rendering order
1 parent 43a9e06 commit 5546da8

4 files changed

Lines changed: 29 additions & 10 deletions

File tree

src/main/java/wagemaker/uk/gdx/MyGdxGame.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ public void render() {
504504
// Update dynamic rain manager (handles random rain events)
505505
dynamicRainManager.update(deltaTime, playerCenterX, playerCenterY);
506506

507-
// Collect all tree positions for puddle avoidance (400px minimum distance)
507+
// Collect all tree positions for puddle avoidance (120px minimum distance)
508508
java.util.List<wagemaker.uk.weather.PuddleRenderer.TreePosition> allTrees = new java.util.ArrayList<>();
509509
for (SmallTree tree : trees.values()) {
510510
allTrees.add(new wagemaker.uk.weather.PuddleRenderer.TreePosition(tree.getX(), tree.getY()));
@@ -660,6 +660,12 @@ public void render() {
660660
batch.begin();
661661
// draw infinite grass background around camera
662662
drawInfiniteGrass();
663+
batch.end();
664+
665+
// Render puddles after ground but before player/trees (background layer)
666+
rainSystem.renderPuddles(camera);
667+
668+
batch.begin();
663669
// draw target indicator (after terrain, before planted bamboos)
664670
// Only render for local player when targeting is active
665671
if (player.getTargetingSystem().isActive()) {

src/main/java/wagemaker/uk/weather/PuddleConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public class PuddleConfig {
5858
public static final float MIN_PUDDLE_SPACING = 150.0f;
5959

6060
/** Minimum distance from tree centers to puddle centers in pixels */
61-
public static final float MIN_TREE_DISTANCE = 400.0f;
61+
public static final float MIN_TREE_DISTANCE = 120.0f;
6262

6363
// Performance
6464
/** Enable or disable the puddle system entirely */

src/main/java/wagemaker/uk/weather/RainSystem.java

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ public void update(float deltaTime, float playerX, float playerY, OrthographicCa
7676
*
7777
* Rendering order (bottom to top):
7878
* 1. Ground/terrain (rendered in batch)
79-
* 2. Water puddles (rendered here first)
80-
* 3. Rain particles (rendered here second)
81-
* 4. Player and objects (rendered in batch)
79+
* 2. Water puddles (rendered via renderPuddles before player)
80+
* 3. Player and objects (rendered in batch)
81+
* 4. Rain particles (rendered via render after player)
8282
* 5. UI elements (rendered after this method)
8383
*
8484
* This ensures puddles appear above ground but below the player,
@@ -91,13 +91,26 @@ public void render(OrthographicCamera camera) {
9191
return;
9292
}
9393

94-
// Render puddles first (above ground, below rain particles and player)
95-
puddleManager.render(camera);
96-
97-
// Render rain particles on top of puddles
94+
// Render rain particles on top of player
9895
renderer.render(camera);
9996
}
10097

98+
/**
99+
* Renders only the water puddles to the screen.
100+
* This should be called during the batch rendering phase, after ground
101+
* but before player/trees to ensure puddles appear in the background.
102+
*
103+
* @param camera The camera used for projection
104+
*/
105+
public void renderPuddles(OrthographicCamera camera) {
106+
if (!enabled) {
107+
return;
108+
}
109+
110+
// Render puddles (above ground, below player and trees)
111+
puddleManager.render(camera);
112+
}
113+
101114
/**
102115
* Cleans up resources used by the rain system.
103116
* Should be called when the game is shutting down.
@@ -149,7 +162,7 @@ public void syncRainZones(List<RainZone> zones) {
149162

150163
/**
151164
* Sets tree positions for puddle avoidance.
152-
* Puddles will not spawn within MIN_TREE_DISTANCE (400px) of any tree.
165+
* Puddles will not spawn within MIN_TREE_DISTANCE (120px) of any tree.
153166
* This should be called before update() each frame to ensure puddles avoid trees.
154167
*
155168
* @param trees List of tree positions to avoid

www/images/rain-puddles.png

61 KB
Loading

0 commit comments

Comments
 (0)