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