internal virtual void Initialize(int particleIndex, ParticleComponent <T> parent, PooledObject <T> newParticle, Action <T> intializer, Action <float, T> onTick)
        {
            this.poolObject     = newParticle;
            this.Parent         = parent;
            TotalElapsedSeconds = 0;
            ParticleIndex       = particleIndex;

            intializer((T)this);
            this.onTick = onTick;
        }
 internal override void Initialize(int particleIndex, ParticleComponent <TextParticle> parent, PooledObject <TextParticle> newParticle, Action <TextParticle> intializer, Action <float, TextParticle> onTick)
 {
     base.Initialize(particleIndex, parent, newParticle, intializer, onTick);
     camera   = parent.Entity.Game.EngineComponents.Get <Renderer2d>().GameCamera;
     Position = parent.Entity.Body.Position;
 }