feat: fix log fixture passthrough, improve collision, add move_direction

Fix 1 — insert_fixture now updates ChunkData bitsets:
  Log trunks (can_stand_in=false) now block movement in is_standable.
  Leaf canopy (can_stand_in=true) remains walkable.

Fix 2 — Diagonal-aware collision avoidance:
  Sidestep priority: left+forward, left, right+forward, right.
  If all blocked: push through (excuse me), advance path, apply one-step
  delay (speed-modulated recovery). Does not stack delays.

Fix 3 — Movement direction tracking:
  Ambulatory now has move_direction (Vec2) and step_history ([i16; 4]).
  TileOccupancy tracks per-tile direction hints for Stage 2 collision
  (convoy skip, E/S yield) via direction_at().
  move_direction is smoothed from: 2 historical steps, current confirmed
  step, and 2-step path lookahead.

Ignore: add *.patch and *.diff to .gitignore
This commit is contained in:
2026-03-21 11:07:35 +00:00
parent f0cb86e73c
commit d325aa6488
8 changed files with 168 additions and 31 deletions
+2
View File
@@ -27,6 +27,8 @@ impl Rabbit {
path_index: 0,
step_recovery: 0,
validation_cooldown: 0,
move_direction: Vec2::ZERO,
step_history: [0i16; 4],
},
sprite: Sprite {
image: asset_server.load("rabbit.png"),