aboutsummaryrefslogtreecommitdiff
path: root/azalea-world/src/entity/info.rs
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2023-05-04 20:38:10 +0000
committermat <github@matdoes.dev>2023-05-04 20:38:10 +0000
commitc7a923ccc8ae825deca62ac2cc8c80c01484d5b6 (patch)
tree787c6eb579d0b126f0e9dfa161bdea758fe9aa0a /azalea-world/src/entity/info.rs
parentff6d43458cef8ac6a23e6e8accd4b71c2a04aef6 (diff)
parent634cb8d72c6608512aedba19e5cd669104bc35ea (diff)
downloadazalea-drasl-c7a923ccc8ae825deca62ac2cc8c80c01484d5b6.tar.xz
merge main
Diffstat (limited to 'azalea-world/src/entity/info.rs')
-rw-r--r--azalea-world/src/entity/info.rs18
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()