/**
* @deprecated Тонкая обёртка совместимости над SpriteAnimator (один клип).
* Используйте SpriteAnimator: именованные клипы, pause/play, события,
* pingpong. Публичный API прежний — позиционный конструктор, setFrames,
* update; поведение сохранено байт-в-байт (loop=false → 'once').
*/
import type { Sprite, Texture } from 'pixi.js';
import { SpriteAnimator } from './SpriteAnimator';
export class FrameAnimation {
private readonly animator: SpriteAnimator;
private clipName: string;
constructor(sprite: Sprite, frames: Texture[], fps = 8, loop = true) {
this.clipName = 'frames';
this.animator = new SpriteAnimator(
sprite,
{ [this.clipName]: { frames, fps, loop: loop ? 'loop' : 'once' } },
'frames'
);
}
setFrames(frames: Texture[], reset = false): void {
this.animator.setClipFrames(this.clipName, frames);
if (reset) this.animator.play(this.clipName, { restart: true });
}
update(dt: number): void {
this.animator.update(dt);
}
}