using Godot; namespace Cirno.Scripts.Components; public partial class AutodeleteParticle : GpuParticles2D { [Export] public double LifeTime { get; private set; } [Export] public bool AutoStart { get; private set; } private double _timer = 0; public override void _Ready() { if (AutoStart) { Init(); } } public void Init() { this.Emitting = true; } public override void _Process(double delta) { _timer += delta; if (_timer >= LifeTime || this.Emitting == false) { QueueFree(); } } }