Merge branch 'sam/hashset-touch-entities' into 'master'

Changed touch_entities from a vec to a hashset.

See merge request veloren/veloren!2056
This commit is contained in:
Joshua Yanovski 2021-04-03 22:06:05 +00:00
commit 4be0f1b02e
2 changed files with 3 additions and 5 deletions

View File

@ -1,4 +1,5 @@
use crate::uid::Uid;
use hashbrown::HashSet;
use serde::{Deserialize, Serialize};
use specs::{Component, DerefFlaggedStorage, NullStorage};
use specs_idvs::IdvStorage;
@ -124,7 +125,7 @@ pub struct PhysicsState {
pub on_ground: bool,
pub on_ceiling: bool,
pub on_wall: Option<Vec3<f32>>,
pub touch_entities: Vec<Uid>,
pub touch_entities: HashSet<Uid>,
pub in_liquid: Option<f32>, // Depth
pub ground_vel: Vec3<f32>,
}

View File

@ -398,7 +398,7 @@ impl<'a> PhysicsData<'a> {
+ z_limits_other.1 * previous_cache_other.scale
{
if !collided {
physics.touch_entities.push(*other);
physics.touch_entities.insert(*other);
entity_entity_collisions += 1;
}
@ -988,9 +988,6 @@ impl<'a> PhysicsData<'a> {
.on_wall
.map(|dir| ori_from.mul_direction(dir))
});
physics_state
.touch_entities
.append(&mut physics_state_delta.touch_entities);
physics_state.in_liquid = match (
physics_state.in_liquid,
physics_state_delta.in_liquid,