Skip to content

Commit

Permalink
>:(
Browse files Browse the repository at this point in the history
  • Loading branch information
BoxyUwU committed Mar 4, 2022
1 parent b6a647c commit db0f44b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 9 deletions.
6 changes: 5 additions & 1 deletion crates/bevy_ecs/src/entity/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ impl<'a> core::iter::ExactSizeIterator for ReserveEntitiesIterator<'a> {}

#[derive(Debug, Default)]
pub struct Entities {
pub meta: Vec<EntityMeta>,
pub(crate) meta: Vec<EntityMeta>,

/// The `pending` and `free_cursor` fields describe three sets of Entity IDs
/// that have been freed or are in the process of being allocated:
Expand Down Expand Up @@ -243,6 +243,10 @@ pub struct Entities {
}

impl Entities {
pub fn meta_len(&self) -> usize {
self.meta.len()
}

/// Reserve entity IDs concurrently.
///
/// Storage for entity generation and location is lazily allocated by calling `flush`.
Expand Down
15 changes: 9 additions & 6 deletions crates/bevy_ecs/src/world/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -134,18 +134,21 @@ impl World {
&self.entities
}

/// Retrieves this world's [Entities] collection mutably
#[inline]
pub fn entities_mut(&mut self) -> &mut Entities {
&mut self.entities
}

/// Retrieves this world's [Archetypes] collection
#[inline]
pub fn archetypes(&self) -> &Archetypes {
&self.archetypes
}

/// Retrieves this world's [Entities] collection mutably
///
/// # Safety
/// No funny business
#[inline]
pub unsafe fn entities_mut(&mut self) -> &mut Entities {
&mut self.entities
}

/// Retrieves this world's [Components] collection
#[inline]
pub fn components(&self) -> &Components {
Expand Down
4 changes: 2 additions & 2 deletions crates/bevy_render/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ impl Plugin for RenderPlugin {

// reserve all existing app entities for use in render_app
// they can only be spawned using `get_or_spawn()`
let meta_len = app_world.entities().meta.len();
let meta_len = app_world.entities().meta_len();
render_app
.world
.entities()
Expand All @@ -198,7 +198,7 @@ impl Plugin for RenderPlugin {
// flushing as "invalid" ensures that app world entities aren't added as "empty archetype" entities by default
// these entities cannot be accessed without spawning directly onto them
// this _only_ works as expected because clear_entities() is called at the end of every frame.
render_app.world.entities_mut().flush_as_invalid();
unsafe { render_app.world.entities_mut() }.flush_as_invalid();
}

{
Expand Down

0 comments on commit db0f44b

Please sign in to comment.