public Sprite(Texture2D texture, SpriteDefinition spriteDefinition, string spritePath) { Texture2D = texture; SpriteDefinition = spriteDefinition; CurrentAnimationName = "idle"; this.spritePath = spritePath; animation = new SpriteAnimation(SpriteDefinition.AnimationDefinitions[CurrentAnimationName], SpriteDefinition); }
/// <summary>Reloads the texture and sprite definition from disk.</summary> public void Reload() { var currentAnimationFrame = animation.GetCurrentFrame(); var currentAnimationName = animation.Definition.Name; var currentPlayOnce = animation.GetPlayOnce(); var reloadedSprite = Sprite.LoadSprite(spritePath); Texture2D = reloadedSprite.Texture2D; SpriteDefinition = reloadedSprite.SpriteDefinition; var oldAnim = animation; animation = reloadedSprite.animation; animation.SetDefinition(SpriteDefinition.AnimationDefinitions[currentAnimationName], false); animation.SetFrame(currentAnimationFrame); animation.SetPlayOnce(currentPlayOnce); animation.currentWaitTime = oldAnim.currentWaitTime; animation.waitTimeTarget = oldAnim.waitTimeTarget; animation.animationDirection = oldAnim.animationDirection; animation.Paused = oldAnim.Paused; animation.lastAnimationName = oldAnim.lastAnimationName; }