use crate::Point;
use yog_data::Schema;
use yog_ids as ids;
#[derive(Debug, Clone, PartialEq, Schema)]
pub struct ParticleOptions {
pub id: String,
pub color: Option<u32>,
pub scale: Option<f32>,
}
impl ParticleOptions {
pub fn plain(id: &str) -> Self {
ParticleOptions {
id: id.to_owned(),
color: None,
scale: None,
}
}
pub fn colored(id: &str, color: u32) -> Self {
ParticleOptions {
color: Some(color),
..Self::plain(id)
}
}
}
actions! {
SpawnParticles { dim: String, pos: Point, particle: ParticleOptions, count: i32, spread: Point, speed: f64 } -> bool = ids::service_particle::SPAWN, "actions.YogParticleActions.spawnParticles";
}