From 353a0f67beda75dbcfd8e1044ba9d3018411f3b0 Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Fri, 24 Jan 2020 10:40:52 +0000 Subject: [PATCH] Better pathfinding iteration cap --- common/src/path.rs | 12 ++++++------ server/src/lib.rs | 2 +- server/src/test_world.rs | 5 +---- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/common/src/path.rs b/common/src/path.rs index 94c07974c4..da29fbfffc 100644 --- a/common/src/path.rs +++ b/common/src/path.rs @@ -135,8 +135,8 @@ impl Chaser { fn find_path( astar: &mut Option>>, vol: &V, - start: Vec3, - end: Vec3, + startf: Vec3, + endf: Vec3, ) -> Path> where V: BaseVol + ReadVol, @@ -167,8 +167,8 @@ where }; let (start, end) = match ( - get_walkable_z(start.map(|e| e.floor() as i32)), - get_walkable_z(end.map(|e| e.floor() as i32)), + get_walkable_z(startf.map(|e| e.floor() as i32)), + get_walkable_z(endf.map(|e| e.floor() as i32)), ) { (Some(start), Some(end)) => (start, end), _ => return Path::default(), @@ -206,8 +206,8 @@ where let mut new_astar = match astar.take() { None => { - let max_iters = ((Vec2::::from(start).distance(Vec2::from(end)) + 10.0).powf(2.0) - as usize) + let max_iters = ((Vec2::::from(startf).distance(Vec2::from(endf)) * 2.0 + 25.0) + .powf(2.0) as usize) .min(25_000); Astar::new(max_iters, start, heuristic.clone()) } diff --git a/server/src/lib.rs b/server/src/lib.rs index d2cf54da7c..9836380731 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -133,7 +133,7 @@ impl Server { #[cfg(not(feature = "worldgen"))] let world = World::generate(settings.world_seed); - let map = Vec::new(); + let map = vec![0]; #[cfg(feature = "worldgen")] let spawn_point = { diff --git a/server/src/test_world.rs b/server/src/test_world.rs index d8f804e07f..a4b1e8deaa 100644 --- a/server/src/test_world.rs +++ b/server/src/test_world.rs @@ -7,10 +7,7 @@ use rand::{prelude::*, rngs::SmallRng}; use std::time::Duration; use vek::*; -pub const WORLD_SIZE: Vec2 = Vec2 { - x: 1024 * 1, - y: 1024 * 1, -}; +pub const WORLD_SIZE: Vec2 = Vec2 { x: 1, y: 1 }; pub struct World;