pokerogue/src/ui/ui-handler.ts

52 lines
1.0 KiB
TypeScript
Raw Normal View History

import BattleScene from "../battle-scene";
import { TextStyle, getTextColor } from "./text";
import { Mode } from "./ui";
import {Button} from "../enums/buttons";
2023-03-28 19:54:52 +01:00
export default abstract class UiHandler {
protected scene: BattleScene;
protected mode: integer;
protected cursor: integer = 0;
2023-03-29 05:31:25 +01:00
public active: boolean = false;
2023-03-28 19:54:52 +01:00
constructor(scene: BattleScene, mode: Mode) {
this.scene = scene;
this.mode = mode;
}
abstract setup(): void;
2023-12-30 23:41:25 +00:00
show(_args: any[]): boolean {
2023-03-28 19:54:52 +01:00
this.active = true;
2023-12-30 23:41:25 +00:00
return true;
2023-03-28 19:54:52 +01:00
}
abstract processInput(button: Button): boolean;
2023-03-28 19:54:52 +01:00
getUi() {
return this.scene.ui;
}
getTextColor(style: TextStyle, shadow: boolean = false): string {
return getTextColor(style, shadow, this.scene.uiTheme);
}
2023-03-31 04:02:35 +01:00
getCursor(): integer {
return this.cursor;
}
2023-03-28 19:54:52 +01:00
setCursor(cursor: integer): boolean {
const changed = this.cursor !== cursor;
if (changed) {
2023-03-28 19:54:52 +01:00
this.cursor = cursor;
}
2023-03-28 19:54:52 +01:00
return changed;
}
clear() {
this.active = false;
}
}