public SpriteOrientationManager(int spriteNum, Entity entity) { this.spriteNum = spriteNum; this.entity = entity; entity.ChangeSpriteTo(PersonSpriteSelector.GetStaticSprite(entity.Context.Assets, spriteNum, PersonOrientation.Down)); }
public void UpdateOrientation(Vector3 posChange) { Context ctx = entity.Context; PersonOrientation?newOrientation = GetOrientation(posChange); bool newWalking = newOrientation != null; if (newWalking && (!Walking || newOrientation.Value != Orientation)) { TimedSpriteSet newSprite = PersonSpriteSelector.GetWalkingSpriteSet(ctx.Assets, spriteNum, newOrientation.Value); Orientation = (PersonOrientation)newOrientation; entity.ChangeSpriteTo(newSprite); } else if (!newWalking && Walking) { Sprite newSprite = PersonSpriteSelector.GetStaticSprite(ctx.Assets, spriteNum, Orientation); entity.ChangeSpriteTo(newSprite); } Walking = newWalking; }