skinview3d/types/animation.d.ts

44 lines
902 B
TypeScript

import { PlayerObject } from './model'
type AnimationFn = (player: PlayerObject, time: number) => void
interface IAnimation {
play(player: PlayerObject, time: number): void
}
export type Animation =
| AnimationFn
| IAnimation
| {
play(player: PlayerObject, time: number): void
[x: string]: any
}
declare function invokeAnimation(
animation: Animation,
player: PlayerObject,
time: number
): void
declare class AnimationHandle implements IAnimation {
readonly animation: Animation
paused: boolean
speed: number
constructor(animation: Animation)
play(player: PlayerObject, time: number): void
reset(): void
}
export class CompositeAnimation implements IAnimation {
readonly handles: Set<AnimationHandle>
constructor()
add(animation: Animation): AnimationHandle
play(player: PlayerObject, time: number): void
}
export const WalkAnimation: AnimationFn