41 lines
961 B
TypeScript
41 lines
961 B
TypeScript
|
export class InputMgr{
|
||
|
private STATE_NORMAL = 1;
|
||
|
private STATE_KEEP = 2;
|
||
|
|
||
|
private static _inst:InputMgr = null;
|
||
|
private _flags = {};
|
||
|
private _flagsMeta = {};
|
||
|
public static get inst():InputMgr{
|
||
|
if(!this._inst){
|
||
|
this._inst = new InputMgr();
|
||
|
}
|
||
|
return this._inst;
|
||
|
}
|
||
|
|
||
|
public setFlag(flag:string,keep?:boolean,meta?:any){
|
||
|
this._flags[flag] = keep? this.STATE_KEEP:this.STATE_NORMAL;
|
||
|
if(meta != null){
|
||
|
this._flagsMeta[flag] = meta;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public removeFlag(flag:string){
|
||
|
delete this._flags[flag];
|
||
|
}
|
||
|
|
||
|
public hasFlag(flag:string):boolean{
|
||
|
return !!this._flags[flag];
|
||
|
}
|
||
|
|
||
|
public getMetaByFlag(flag:string):any{
|
||
|
return this._flagsMeta[flag];
|
||
|
}
|
||
|
|
||
|
public update(){
|
||
|
for(let k in this._flags){
|
||
|
if(this._flags[k] != this.STATE_KEEP){
|
||
|
this._flags[k] = 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|