From 69f0407637a071d79d73115e4ae9c0ab526066a7 Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Thu, 13 Aug 2026 21:31:53 -0700 Subject: parallelization --- src/sim/materials/water.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/sim/materials') diff --git a/src/sim/materials/water.rs b/src/sim/materials/water.rs index 65782dd..d76ec5b 100644 --- a/src/sim/materials/water.rs +++ b/src/sim/materials/water.rs @@ -25,6 +25,17 @@ pub fn sim_update(ctx: &mut UpdateCtx) { return; } + // if we can't move left, just move right + if !can_move_left { + ctx.candidates_swap(&[(1, 0)]); + return; + } + // and vice versa + if !can_move_right { + ctx.candidates_swap(&[(-1, 0)]); + return; + } + // find the closest hole within 20 pixels (TODO optimize) // a hole is any space below us with a lesser density // prevents equidistance stuck state @@ -35,9 +46,6 @@ pub fn sim_update(ctx: &mut UpdateCtx) { } else { -starting_side }; - if (side == 1 && !can_move_right) || (side == -1 && !can_move_left) { - continue; - } let offset = side * (1 + i / 2); let hole_target = ctx.get_cell(offset, 1); -- cgit v1.3.1