Class ParticleEmitterComponent

java.lang.Object
technology.sola.engine.physics.component.ParticleEmitterComponent
All Implemented Interfaces:
technology.sola.ecs.Component

@NullMarked public class ParticleEmitterComponent extends Object implements technology.sola.ecs.Component
ParticleEmitterComponent is a Component that contains data for emitting ParticleEmitterComponent.Particles as well as data for its emitted particles.
  • Constructor Details

    • ParticleEmitterComponent

      public ParticleEmitterComponent()
      Creates a ParticleEmitterComponent instance with default settings.
    • ParticleEmitterComponent

      public ParticleEmitterComponent(float particleEmissionDelay)
      Creates a ParticleEmitterComponent instance with default settings and a custom particle emission delay.
      Parameters:
      particleEmissionDelay - the desired particle emission delay
  • Method Details

    • emitIfAble

      public void emitIfAble(float delta)
      Emits new particles if enough time has elapsed based on the set properties for emission.
      Parameters:
      delta - the elapsed delta time
    • emittedParticleIterator

      public Iterator<ParticleEmitterComponent.Particle> emittedParticleIterator()
      Returns:
      the Iterator for ParticleEmitterComponent.Particles
    • setParticleEmissionDelay

      public ParticleEmitterComponent setParticleEmissionDelay(float particleEmissionDelay)
      Updates the delay between each particle emission.
      Parameters:
      particleEmissionDelay - the new particle emission delay
      Returns:
      this
    • setParticlesPerEmit

      public ParticleEmitterComponent setParticlesPerEmit(int particlesPerEmit)
      Updates the number of particles to emit per emission.
      Parameters:
      particlesPerEmit - the new number of particles to emit
      Returns:
      this
    • setParticleColor

      public ParticleEmitterComponent setParticleColor(Color particleColor)
      Updates the base Color of each new ParticleEmitterComponent.Particle.
      Parameters:
      particleColor - the new color for newly emitted particles
      Returns:
      this
    • setParticleLifeBounds

      public ParticleEmitterComponent setParticleLifeBounds(float particleMinLife, float particleMaxLife)
      Updates the minimum and maximum lifespans for newly emitted ParticleEmitterComponent.Particles.
      Parameters:
      particleMinLife - the minimum lifespan for a new particle
      particleMaxLife - the maximum lifespan for a new particle
      Returns:
      this
    • setParticleLife

      public ParticleEmitterComponent setParticleLife(float life)
      Updates the lifespan for newly emitted ParticleEmitterComponent.Particles to be a fixed value.
      Parameters:
      life - the lifespan for new particles
      Returns:
      this
    • setParticleVelocityBounds

      public ParticleEmitterComponent setParticleVelocityBounds(Vector2D particleMinVelocity, Vector2D particleMaxVelocity)
      Updates the minimum and maximum velocities for newly emitted ParticleEmitterComponent.Particles.
      Parameters:
      particleMinVelocity - the minimum velocity for new particles
      particleMaxVelocity - the maximum velocity for new particles
      Returns:
      this
    • setParticleVelocity

      public ParticleEmitterComponent setParticleVelocity(Vector2D velocity)
      Updates the velocity for newly emitted ParticleEmitterComponent.Particles to be a fixed value.
      Parameters:
      velocity - the velocity for new particles
      Returns:
      this
    • setParticleSizeBounds

      public ParticleEmitterComponent setParticleSizeBounds(float particleMinSize, float particleMaxSize)
      Updates the minimum and maximum size values for newly emitted ParticleEmitterComponent.Particles.
      Parameters:
      particleMinSize - the minimum size for new particles
      particleMaxSize - the maximum size for new particles
      Returns:
      this
    • setParticleSize

      public ParticleEmitterComponent setParticleSize(float size)
      Updates the size for newly emitted ParticleEmitterComponent.Particles to be a fixed value.
      Parameters:
      size - the size for new particles
      Returns:
      this