~starkingdoms/starkingdoms

ref: 461d3d233fe9f2f94f9a1f1b9ccf9d1cdc9a9edb starkingdoms/crates/unified/src/particle_editor/ecs.rs -rw-r--r-- 836 bytes
461d3d23TerraMaster85 fix starfield alignment(?) 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use std::time::Duration;

use bevy::{asset::Handle, ecs::component::Component, render::mesh::Mesh, sprite::ColorMaterial, time::{Timer, TimerMode}};

use crate::particles::ParticleEffect;

#[derive(Component)]
pub struct Particle;

#[derive(Component)]
pub struct LifetimeTimer(pub Timer);
impl LifetimeTimer {
    pub fn new(lifetime: f32) -> LifetimeTimer {
        LifetimeTimer(Timer::new(Duration::from_secs_f32(lifetime), TimerMode::Once))
    }
}

#[derive(Component)]
pub struct SpawnDelayTimer(pub Timer);
impl SpawnDelayTimer {
    pub fn new(delay: f32) -> SpawnDelayTimer {
        SpawnDelayTimer(Timer::new(Duration::from_secs_f32(delay), TimerMode::Once))
    }
}

#[derive(Component)]
pub struct CircleMesh(pub Handle<Mesh>, pub Handle<ColorMaterial>);

#[derive(Component)]
pub struct ParentEffect(pub ParticleEffect);