Right now the fact that particles are only client-side entities causes issues and is confusing.
By creating Particle, ParticleFactory, ParticleManager and ParticleSource classes we would fix that.
ParticleFactory would be the factory for Particle implementations.
Particle would be the actual implementation.
ParticleSource would be a component you add to your ComponentProviders to spawn particles when desired. (would extend Updater)
It would keep a reference to particle factories, the delay timers for each factory and where to spawn the particles created by those factories.
ParticleManager would be the manager for registering particles.
Right now the fact that particles are only client-side entities causes issues and is confusing. By creating
Particle
,ParticleFactory
,ParticleManager
andParticleSource
classes we would fix that.ParticleFactory
would be the factory forParticle
implementations.Particle
would be the actual implementation.ParticleSource
would be a component you add to yourComponentProvider
s to spawn particles when desired. (would extendUpdater
) It would keep a reference to particle factories, the delay timers for each factory and where to spawn the particles created by those factories.ParticleManager
would be the manager for registering particles.