diff options
| author | mat <git@matdoes.dev> | 2024-04-24 03:11:26 +0000 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2024-04-24 03:11:26 +0000 |
| commit | 79a0d58cc5e6528f570ad6a1f522bbf6bc2995ac (patch) | |
| tree | 11cef59ceebc17e6c31895753d95cbad06633f07 /azalea-entity/src/plugin | |
| parent | 3b635c1d6de97ccceaf725dbfcd1625cbebdc20b (diff) | |
| download | azalea-drasl-79a0d58cc5e6528f570ad6a1f522bbf6bc2995ac.tar.xz | |
fix warning when entities that didn't move chunks despawn
Diffstat (limited to 'azalea-entity/src/plugin')
| -rw-r--r-- | azalea-entity/src/plugin/indexing.rs | 20 | ||||
| -rw-r--r-- | azalea-entity/src/plugin/mod.rs | 7 |
2 files changed, 25 insertions, 2 deletions
diff --git a/azalea-entity/src/plugin/indexing.rs b/azalea-entity/src/plugin/indexing.rs index c8aaffb0..f04f5ef2 100644 --- a/azalea-entity/src/plugin/indexing.rs +++ b/azalea-entity/src/plugin/indexing.rs @@ -5,7 +5,7 @@ use azalea_world::{Instance, InstanceContainer, InstanceName, MinecraftEntityId} use bevy_ecs::{ component::Component, entity::Entity, - query::Changed, + query::{Added, Changed}, system::{Commands, Query, Res, ResMut, Resource}, }; use derive_more::{Deref, DerefMut}; @@ -119,6 +119,24 @@ pub fn update_entity_chunk_positions( } } +/// Insert new entities into [`Instance::entities_by_chunk`]. +pub fn insert_entity_chunk_position( + query: Query<(Entity, &Position, &InstanceName), Added<EntityChunkPos>>, + instance_container: Res<InstanceContainer>, +) { + for (entity, pos, world_name) in query.iter() { + let instance_lock = instance_container.get(world_name).unwrap(); + let mut instance = instance_lock.write(); + + let chunk = ChunkPos::from(*pos); + instance + .entities_by_chunk + .entry(chunk) + .or_default() + .insert(entity); + } +} + /// Despawn entities that aren't being loaded by anything. #[allow(clippy::type_complexity)] pub fn remove_despawned_entities_from_indexes( diff --git a/azalea-entity/src/plugin/mod.rs b/azalea-entity/src/plugin/mod.rs index 4b6d9979..de18cbd3 100644 --- a/azalea-entity/src/plugin/mod.rs +++ b/azalea-entity/src/plugin/mod.rs @@ -43,7 +43,12 @@ impl Plugin for EntityPlugin { .add_systems( Update, ( - (indexing::update_entity_chunk_positions).in_set(EntityUpdateSet::Index), + ( + indexing::update_entity_chunk_positions, + indexing::insert_entity_chunk_position, + ) + .chain() + .in_set(EntityUpdateSet::Index), ( relative_updates::debug_detect_updates_received_on_local_entities, debug_new_entity, |
