From adc236dc3d55423939341710d69a5187c8d8f1b8 Mon Sep 17 00:00:00 2001 From: popertots Date: Sun, 22 Mar 2026 01:52:20 +0000 Subject: [PATCH] fix --- src/entities/sentient/dorf.rs | 2 +- src/entities/shared_systems/pathfinding.rs | 6 ++++++ src/entities/tasks/executor.rs | 10 ---------- src/entities/tasks/idle.rs | 2 +- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/entities/sentient/dorf.rs b/src/entities/sentient/dorf.rs index 827868a..7cee8e3 100644 --- a/src/entities/sentient/dorf.rs +++ b/src/entities/sentient/dorf.rs @@ -29,7 +29,7 @@ impl Dorf { let run_speed = 6.; let normal_sprite = asset_server.load("dorf.png"); let carry_sprite = asset_server.load("dorf.png"); - let origin = (position / TILE_SIZE).as_ivec3(); + let origin = position.as_ivec3(); Dorf { ambulatory: Ambulatory { diff --git a/src/entities/shared_systems/pathfinding.rs b/src/entities/shared_systems/pathfinding.rs index b105197..b16eda0 100644 --- a/src/entities/shared_systems/pathfinding.rs +++ b/src/entities/shared_systems/pathfinding.rs @@ -313,10 +313,15 @@ pub fn prepare_paths( tilemap: Res, chunk_map: Res, ) { + let mut paths_needed = 0; + let mut paths_computed = 0; + for (entity, mut ambulatory, transform) in query.iter_mut() { if ambulatory.current_path.is_some() || ambulatory.target.is_none() { continue; } + paths_needed += 1; + let Some(target) = ambulatory.target else { continue; }; @@ -332,6 +337,7 @@ pub fn prepare_paths( let path = calculate_path_benchmarked(&tilemap, start, goal); ambulatory.current_path = Some(path); ambulatory.path_index = 0; + paths_computed += 1; } else if chunk_distance > PATHFINDER_HIERARCHICAL_THRESHOLD_CHUNKS { let chunk_path = calculate_chunk_path(&chunk_map, start_chunk, goal_chunk); let provisional_goal = goal; diff --git a/src/entities/tasks/executor.rs b/src/entities/tasks/executor.rs index ab2e2a0..3c1d034 100644 --- a/src/entities/tasks/executor.rs +++ b/src/entities/tasks/executor.rs @@ -34,23 +34,14 @@ pub fn task_executor_system( mut completed_writer: MessageWriter, mut failed_writer: MessageWriter, ) { - eprintln!("[TASK_EXEC] Running"); - use std::collections::hash_map::DefaultHasher; use std::hash::{Hash, Hasher}; let mut hasher = DefaultHasher::new(); crate::constants::SEED.hash(&mut hasher); time.elapsed_secs().to_bits().hash(&mut hasher); let seed = hasher.finish(); - eprintln!("[TASK_EXEC] RNG seed: {}", seed); let mut rng = WyRand::seed_from_u64(seed); - let count = query.iter().count(); - eprintln!("[TASK_EXEC] Query returned {} entities", count); - if count == 0 { - return; - } - for (entity, mut queue, mut state, mut ambulatory, transform) in query.iter_mut() { // If queue empty, assign default Idle task if queue.is_empty() { @@ -86,7 +77,6 @@ pub fn task_executor_system( &tilemap, &mut rng, ); - // Idle never completes - it cycles forever } Task::GoTo { target, diff --git a/src/entities/tasks/idle.rs b/src/entities/tasks/idle.rs index 70e186e..f7175a4 100644 --- a/src/entities/tasks/idle.rs +++ b/src/entities/tasks/idle.rs @@ -29,7 +29,7 @@ pub(super) fn execute_idle( return; }; - let entity_pos = (transform.translation / ITILE_SIZE as f32).as_ivec3(); + let entity_pos = transform.translation.as_ivec3(); // Track if target actually changed this tick let mut target_changed = false;