/// <summary> /// Returns the current frame for the given animation, using a layer of /// indirection to support hot reloading. /// </summary> public AssetNames GetCurrentFrame(IAnimationManager manager) { var template = manager.Get(Name); if (template.StepAfter == 0 || template.Frames.Length == 1) { return(template.Frames[0]); } var frameCount = TickCounter / template.StepAfter; var frameIx = frameCount % template.Frames.Length; return(template.Frames[frameIx]); }
public void Initialize(IAnimationManager manager, AnimationNames name, int startFrame) { Name = name; TickCounter = (uint)(startFrame * manager.Get(name).StepAfter); }