mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'sam/fix-arrow-terrain-bug' into 'master'
Arrows no longer deal damage seconds after colliding with terrain See merge request veloren/veloren!2786
This commit is contained in:
commit
fc77cd6256
@ -401,7 +401,7 @@ impl<'a> PhysicsData<'a> {
|
|||||||
.ceil()
|
.ceil()
|
||||||
as usize;
|
as usize;
|
||||||
let step_delta = 1.0 / increments as f32;
|
let step_delta = 1.0 / increments as f32;
|
||||||
let mut collided = false;
|
let mut collision_registered = false;
|
||||||
|
|
||||||
for i in 0..increments {
|
for i in 0..increments {
|
||||||
let factor = i as f32 * step_delta;
|
let factor = i as f32 * step_delta;
|
||||||
@ -419,7 +419,10 @@ impl<'a> PhysicsData<'a> {
|
|||||||
<= pos_other.z
|
<= pos_other.z
|
||||||
+ z_limits_other.1 * previous_cache_other.scale
|
+ z_limits_other.1 * previous_cache_other.scale
|
||||||
{
|
{
|
||||||
if !collided {
|
// If entities have not yet collided this tick (but just
|
||||||
|
// did) and if entity is either in mid air or is not sticky,
|
||||||
|
// then mark them as colliding with the other entity
|
||||||
|
if !collision_registered && (is_mid_air || !is_sticky) {
|
||||||
physics.touch_entities.insert(*other);
|
physics.touch_entities.insert(*other);
|
||||||
entity_entity_collisions += 1;
|
entity_entity_collisions += 1;
|
||||||
}
|
}
|
||||||
@ -472,7 +475,7 @@ impl<'a> PhysicsData<'a> {
|
|||||||
Vec3::from(diff.normalized()) * force * step_delta;
|
Vec3::from(diff.normalized()) * force * step_delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
collided = true;
|
collision_registered = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user