Skip to content

Commit

Permalink
Put ParticleSpawnerData in ParticleSpawnerBundle
Browse files Browse the repository at this point in the history
  • Loading branch information
rparrett committed Mar 27, 2024
1 parent 3b8804a commit d33aa0a
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 15 deletions.
18 changes: 6 additions & 12 deletions src/core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -171,15 +171,21 @@ pub struct ParticleSpawnerBundle {
settings: ParticleSpawnerSettings,
mesh: Handle<Mesh>,
name: Name,
data: ParticleSpawnerData,
no_batching: NoAutomaticBatching,
}

impl ParticleSpawnerBundle {
pub fn from_settings(settings: ParticleSpawnerSettings) -> Self {
let data = ParticleSpawnerData::from(&settings);

Self {
settings,
spatial: SpatialBundle::default(),
mesh: DEFAULT_MESH.clone(),
name: Name::new("Particle System"),
data,
no_batching: NoAutomaticBatching,
}
}
}
Expand Down Expand Up @@ -212,18 +218,6 @@ impl Default for EffectModifier {
}
}

pub fn create_spawner_data(
mut commands: Commands,
mut spawners: Query<(Entity, &ParticleSpawnerSettings), Without<ParticleSpawnerData>>,
) {
for (entity, settings) in &mut spawners {
commands
.entity(entity)
.insert(ParticleSpawnerData::from(settings))
.insert(NoAutomaticBatching);
}
}

pub fn sync_spawner_data(
mut spawners: Query<
(&ParticleSpawnerSettings, &mut ParticleSpawnerData),
Expand Down
6 changes: 3 additions & 3 deletions src/plugin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ use crate::core::setup_default_mesh;

use super::{
core::{
create_spawner_data, propagate_particle_spawner_modifier, spawn_particles,
sync_spawner_data, update_particles, ParticleSpawnerSettings,
propagate_particle_spawner_modifier, spawn_particles, sync_spawner_data, update_particles,
ParticleSpawnerSettings,
},
render,
};
Expand Down Expand Up @@ -34,7 +34,7 @@ impl Plugin for ParticleSystemPlugin {
Update,
(
apply_deferred,
(create_spawner_data, propagate_particle_spawner_modifier),
propagate_particle_spawner_modifier,
apply_deferred,
sync_spawner_data,
#[cfg(feature = "physics_xpbd")]
Expand Down

0 comments on commit d33aa0a

Please sign in to comment.