public void Update(float elapsedSeconds)
 {
     foreach (Entity e in this.actives.Values)
     {
         SpriteAnimationComponent animation = e.GetComponent<SpriteAnimationComponent>();
         if (e.HasComponent<IntentComponent>())
         {
             if (e.GetComponent<IntentComponent>().IntentManager.HasIntent(Intent.Accelerate))
             {
                 animation.Visible = true;
             }
             else
             {
                 animation.Visible = false;
             }
         }
         animation.Animation.Update(elapsedSeconds);
     }
 }
        public override void Draw(float elapsedSeconds, SpriteBatch spriteBatch)
        {
            //Parallel.ForEach(this.actives.Values, (e) =>
            //{

            //});

            foreach (Entity e in this.actives.Values)
            {
                TransformComponent transform = e.GetComponent<TransformComponent>();
                SpriteAnimationComponent animation = e.GetComponent<SpriteAnimationComponent>();

                System.Diagnostics.Debug.Assert(transform != null, "TransformComponent not found");
                System.Diagnostics.Debug.Assert(animation != null, "SpriteAnimationComponent not found");

                if (animation.Visible)
                {
                    spriteBatch.Draw(animation.Animation.Texture, transform.EntityToWorld(animation.Offset) * WindowSettings.UnitScale, animation.Animation.GetCurrentFrame(),
                        Color.White, transform.Rotation, animation.Animation.Origin, animation.Scale * WindowSettings.UnitScale, SpriteEffects.None, 0.8f);
                }
            }
        }