skinview3d/types/animation.d.ts

35 lines
861 B
TypeScript

import { PlayerObject } from "./model";
export interface IAnimation {
naturalSpeed?: number;
play(player: PlayerObject, time: number): void;
}
export type AnimationFn = ((player: PlayerObject, time: number) => void) & { naturalSpeed?: number };
export type Animation = AnimationFn | IAnimation;
export function invokeAnimation(
animation: Animation,
player: PlayerObject,
time: number,
): void;
export interface AnimationHandle extends IAnimation {
readonly animation: Animation;
paused: boolean;
speed: number;
reset(): void;
}
export class CompositeAnimation implements IAnimation {
constructor();
public add(animation: Animation): AnimationHandle;
public play(player: PlayerObject, time: number): void;
}
export const WalkingAnimation: AnimationFn;
export const RunningAnimation: AnimationFn;
export const RotatingAnimation: AnimationFn;