diff options
| author | mat <github@matdoes.dev> | 2023-05-04 20:38:10 +0000 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2023-05-04 20:38:10 +0000 |
| commit | c7a923ccc8ae825deca62ac2cc8c80c01484d5b6 (patch) | |
| tree | 787c6eb579d0b126f0e9dfa161bdea758fe9aa0a /azalea-world/src/entity/info.rs | |
| parent | ff6d43458cef8ac6a23e6e8accd4b71c2a04aef6 (diff) | |
| parent | 634cb8d72c6608512aedba19e5cd669104bc35ea (diff) | |
| download | azalea-drasl-c7a923ccc8ae825deca62ac2cc8c80c01484d5b6.tar.xz | |
merge main
Diffstat (limited to 'azalea-world/src/entity/info.rs')
| -rw-r--r-- | azalea-world/src/entity/info.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/azalea-world/src/entity/info.rs b/azalea-world/src/entity/info.rs index fdfe82c2..525b57fa 100644 --- a/azalea-world/src/entity/info.rs +++ b/azalea-world/src/entity/info.rs @@ -29,7 +29,7 @@ use std::{ }; use uuid::Uuid; -use super::Local; +use super::{Local, LookDirection}; /// A Bevy [`SystemSet`] for various types of entity updates. #[derive(SystemSet, Debug, Hash, Eq, PartialEq, Clone)] @@ -75,6 +75,7 @@ impl Plugin for EntityPlugin { debug_detect_updates_received_on_local_entities, add_dead, update_bounding_box, + clamp_look_direction, )) .init_resource::<EntityInfos>(); } @@ -218,10 +219,10 @@ fn update_entity_chunk_positions( ), Changed<entity::Position>, >, - world_container: Res<InstanceContainer>, + instance_container: Res<InstanceContainer>, ) { for (entity, pos, last_pos, world_name) in query.iter_mut() { - let world_lock = world_container.get(world_name).unwrap(); + let world_lock = instance_container.get(world_name).unwrap(); let mut world = world_lock.write(); let old_chunk = ChunkPos::from(*last_pos); @@ -285,11 +286,11 @@ fn debug_detect_updates_received_on_local_entities( fn remove_despawned_entities_from_indexes( mut commands: Commands, mut entity_infos: ResMut<EntityInfos>, - world_container: Res<InstanceContainer>, + instance_container: Res<InstanceContainer>, query: Query<(Entity, &EntityUuid, &Position, &WorldName, &LoadedBy), Changed<LoadedBy>>, ) { for (entity, uuid, position, world_name, loaded_by) in &query { - let world_lock = world_container.get(world_name).unwrap(); + let world_lock = instance_container.get(world_name).unwrap(); let mut world = world_lock.write(); // if the entity has no references left, despawn it @@ -322,6 +323,13 @@ fn remove_despawned_entities_from_indexes( } } +pub fn clamp_look_direction(mut query: Query<&mut LookDirection>) { + for mut look_direction in &mut query { + look_direction.y_rot %= 360.0; + look_direction.x_rot = look_direction.x_rot.clamp(-90.0, 90.0) % 360.0; + } +} + impl Debug for EntityInfos { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("EntityInfos").finish() |
