ShatteredSword/src/Wolfie2D/Rendering/Animations/TweenManager.ts

40 lines
1.1 KiB
TypeScript
Raw Normal View History

import Updateable from "../../DataTypes/Interfaces/Updateable";
import TweenController from "./TweenController";
2020-11-29 19:49:04 -05:00
export default class TweenManager implements Updateable {
2020-11-29 19:49:04 -05:00
private static instance: TweenManager = null;
protected tweenControllers: Array<TweenController>;
2020-11-29 19:49:04 -05:00
private constructor(){
this.tweenControllers = new Array();
2020-11-29 19:49:04 -05:00
}
static getInstance(): TweenManager {
if(TweenManager.instance === null){
TweenManager.instance = new TweenManager();
2020-11-29 19:49:04 -05:00
}
return TweenManager.instance;
2020-11-29 19:49:04 -05:00
}
registerTweenController(controller: TweenController){
this.tweenControllers.push(controller);
2020-11-29 19:49:04 -05:00
}
deregisterTweenController(controller: TweenController){
let index = this.tweenControllers.indexOf(controller);
this.tweenControllers.splice(index, 1);
}
2020-12-01 14:04:24 -05:00
clearTweenControllers(){
this.tweenControllers = new Array();
2020-11-29 19:49:04 -05:00
}
update(deltaT: number): void {
for(let tweenController of this.tweenControllers){
tweenController.update(deltaT);
}
2020-11-29 19:49:04 -05:00
}
}