public void Render([NotNull] SpriteAnimation animation, float x, float y,
                           float offsetX = 0, float offsetY = 0, Color mask = new Color(), bool applyOffset = true, float scale = 1.0f)
        {
            SpriteFrame frame = animation.GetCurrentFrame();

            Render(frame.Sprite, x, y, offsetX, offsetY, mask, applyOffset, scale);
            animation.Update(LastUpdateTime);
        }
 //Used for manually drawing the sprte, if for example you wanted to draw it at a specific time
 public void DrawCurrentFrame(SpriteBatch spriteBatch, GameTime gameTime)
 {
     if (ShouldFlipAnimation)
     {
         spriteBatch.Draw(spriteAnimation.SpriteAnimationTexture,
                          new Rectangle(transform.Position.ToPoint(),
                                        new Vector2(spriteAnimation.CellSizeX * transform.Scale.X, spriteAnimation.CellSizeY * transform.Scale.Y).ToPoint()),
                          spriteAnimation.GetCurrentFrame(), SpriteColorTint, this.transform.Rotation, new Vector2(spriteAnimation.CellSizeX / 2, spriteAnimation.CellSizeY / 2), SpriteEffects.FlipHorizontally, 0);
     }
     else
     {
         spriteBatch.Draw(spriteAnimation.SpriteAnimationTexture,
                          new Rectangle(transform.Position.ToPoint(),
                                        new Vector2(spriteAnimation.CellSizeX * transform.Scale.X, spriteAnimation.CellSizeY * transform.Scale.Y).ToPoint()),
                          spriteAnimation.GetCurrentFrame(), SpriteColorTint, this.transform.Rotation, new Vector2(spriteAnimation.CellSizeX / 2, spriteAnimation.CellSizeY / 2), SpriteEffects.None, 0);
     }
 }