using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Particles * @{ */ /// Specifies a burst of particles that occurs at a certain time point. [StructLayout(LayoutKind.Sequential), SerializeObject] public partial struct ParticleBurst { /// Initializes the struct with default values. public static ParticleBurst Default() { ParticleBurst value = new ParticleBurst(); value.time = 0f; value.count = new FloatDistribution(0f); value.cycles = 1; value.interval = 1f; return value; } public ParticleBurst(float time, FloatDistribution count, uint cycles = 1, float interval = 1f) { this.time = time; this.count = count; this.cycles = cycles; this.interval = interval; } /// Time at which to trigger the burst, in seconds. public float time; /// Number of particles to emit when the burst triggers. public FloatDistribution count; /// /// Determines how many times to trigger the burst. If 0 the burst will trigger infinitely. Use to /// to control the time between each cycle. /// public uint cycles; /// Controls how much time needs to pass before triggering another burst cycle, in seconds. public float interval; } /** @} */ }