import { ControllerState } from "../models/controller-state"; import { CarouselKeyContext } from "./key-contexts/carousel-key-context"; import { KeyContext } from "./key-contexts/key-context"; import { OptionsKeyContext } from "./key-contexts/options-key-context"; import { SidebarKeyContext } from "./key-contexts/sidebar-key-context"; import { GamePreviewKeyContext } from "./key-contexts/game-preview-key-context"; export class KeyboardManager { private static current?: KeyContext; public static loaded = false; static switchContext(name: 'sidebar' | 'carousel' | 'options' | 'preview') { console.log("Switching context to " + name); switch (name) { case 'carousel': this.current = new CarouselKeyContext(); break; case 'sidebar': this.current = new SidebarKeyContext(); break; case 'preview': this.current = new GamePreviewKeyContext(); break; case 'options': this.current = new OptionsKeyContext(); break; default: console.log("Unknown context key " + name); break; } this.current?.setAvailableActions(); } static handle(event: KeyboardEvent) { this.current?.handleKey(event); } static handleState(controllerState: ControllerState) { this.current?.handleState(controllerState); } }