mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
35 lines
510 B
TypeScript
35 lines
510 B
TypeScript
export abstract class ToggleableFeature {
|
|
|
|
#status:boolean = false;
|
|
|
|
|
|
constructor( defaultStatus:boolean ) {
|
|
|
|
this.#status = defaultStatus;
|
|
|
|
this.onStatusUpdate();
|
|
|
|
}
|
|
|
|
|
|
getStatus() : boolean {
|
|
return this.#status;
|
|
}
|
|
|
|
|
|
protected onStatusUpdate() {}
|
|
|
|
|
|
toggleStatus( force?:boolean ) : void {
|
|
|
|
if ( force ) {
|
|
this.#status = force;
|
|
} else {
|
|
this.#status = !this.#status;
|
|
}
|
|
|
|
this.onStatusUpdate();
|
|
|
|
}
|
|
|
|
} |