mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
More tolerant pathfinding
This commit is contained in:
parent
db26c10299
commit
177bd7a128
@ -266,7 +266,10 @@ where
|
||||
.map(move |(dir, _)| pos + *dir),
|
||||
)
|
||||
};
|
||||
let transition = |_: &Vec3<i32>, _: &Vec3<i32>| 1.0;
|
||||
let transition = |a: &Vec3<i32>, b: &Vec3<i32>| {
|
||||
((*a - *b) * Vec3::new(1, 1, 3)).map(|e| e.abs()).reduce_max() as f32
|
||||
+ endf.distance((*b).map(|e| e as f32)) * 0.01
|
||||
};
|
||||
let satisfied = |pos: &Vec3<i32>| pos == &end;
|
||||
|
||||
let mut new_astar = match astar.take() {
|
||||
|
@ -67,7 +67,7 @@ fn basic_move(data: &JoinData, update: &mut StateUpdate, efficiency: f32) {
|
||||
};
|
||||
|
||||
update.vel.0 =
|
||||
update.vel.0 + Vec2::broadcast(data.dt.0) * data.inputs.move_dir * accel * efficiency;
|
||||
update.vel.0 + Vec2::broadcast(data.dt.0) * data.inputs.move_dir * accel * efficiency;
|
||||
|
||||
handle_orientation(data, update, 20.0);
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ impl<'a> System<'a> for Sys {
|
||||
Write<'a, EventBus<ServerEvent>>,
|
||||
Entities<'a>,
|
||||
ReadStorage<'a, Pos>,
|
||||
ReadStorage<'a, Vel>,
|
||||
ReadStorage<'a, Ori>,
|
||||
ReadStorage<'a, Scale>,
|
||||
ReadStorage<'a, Stats>,
|
||||
@ -55,6 +56,7 @@ impl<'a> System<'a> for Sys {
|
||||
event_bus,
|
||||
entities,
|
||||
positions,
|
||||
velocities,
|
||||
orientations,
|
||||
scales,
|
||||
stats,
|
||||
@ -71,6 +73,7 @@ impl<'a> System<'a> for Sys {
|
||||
for (
|
||||
entity,
|
||||
pos,
|
||||
vel,
|
||||
ori,
|
||||
alignment,
|
||||
loadout,
|
||||
@ -82,6 +85,7 @@ impl<'a> System<'a> for Sys {
|
||||
) in (
|
||||
&entities,
|
||||
&positions,
|
||||
&velocities,
|
||||
&orientations,
|
||||
alignments.maybe(),
|
||||
&loadouts,
|
||||
@ -122,7 +126,7 @@ impl<'a> System<'a> for Sys {
|
||||
// and so can afford to be less precise when trying to move around
|
||||
// the world (especially since they would otherwise get stuck on
|
||||
// obstacles that smaller entities would not).
|
||||
let traversal_tolerance = scale;
|
||||
let traversal_tolerance = scale + vel.0.magnitude() * 0.35;
|
||||
|
||||
let mut do_idle = false;
|
||||
let mut choose_target = false;
|
||||
|
@ -221,8 +221,9 @@ impl Animation for RunAnimation {
|
||||
skeleton_attr.torso_front.1 + shortalt * 2.5,
|
||||
) * skeleton_attr.scaler
|
||||
/ 11.0;
|
||||
next.torso_front.ori = Quaternion::rotation_x(x_tilt) *
|
||||
Quaternion::rotation_x(short * 0.13) * Quaternion::rotation_z(tilt * -1.5);
|
||||
next.torso_front.ori = Quaternion::rotation_x(x_tilt)
|
||||
* Quaternion::rotation_x(short * 0.13)
|
||||
* Quaternion::rotation_z(tilt * -1.5);
|
||||
next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0;
|
||||
|
||||
next.torso_back.offset = Vec3::new(
|
||||
|
@ -2253,7 +2253,6 @@ impl<S: Skeleton> FigureState<S> {
|
||||
visible: false,
|
||||
last_pos: None,
|
||||
avg_vel: Vec3::zero(),
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user