Split client into frontend website and server

This commit is contained in:
Pax1601
2024-02-08 22:04:23 +01:00
parent 55f3bd5adb
commit 5ca6c97cbe
792 changed files with 149898 additions and 13872 deletions

View File

@@ -0,0 +1,44 @@
export interface ContextInterface {
allowUnitCopying?: boolean;
allowUnitPasting?: boolean;
useSpawnMenu?: boolean;
useUnitControlPanel?: boolean;
useUnitInfoPanel?: boolean;
}
export class Context {
#allowUnitCopying: boolean;
#allowUnitPasting: boolean;
#useSpawnMenu: boolean;
#useUnitControlPanel: boolean;
#useUnitInfoPanel: boolean;
constructor(config: ContextInterface) {
this.#allowUnitCopying = (config.allowUnitCopying !== false);
this.#allowUnitPasting = (config.allowUnitPasting !== false);
this.#useSpawnMenu = (config.useSpawnMenu !== false);
this.#useUnitControlPanel = (config.useUnitControlPanel !== false);
this.#useUnitInfoPanel = (config.useUnitInfoPanel !== false);
}
getAllowUnitCopying() {
return this.#allowUnitCopying;
}
getAllowUnitPasting() {
return this.#allowUnitPasting;
}
getUseSpawnMenu() {
return this.#useSpawnMenu;
}
getUseUnitControlPanel() {
return this.#useUnitControlPanel;
}
getUseUnitInfoPanel() {
return this.#useUnitInfoPanel;
}
}

View File

@@ -0,0 +1,40 @@
import { Manager } from "../other/manager";
import { Context, ContextInterface } from "./context";
export class ContextManager extends Manager {
#currentContext!: string;
constructor() {
super();
}
add(name: string, contextConfig: ContextInterface) {
super.add(name, new Context(contextConfig));
if (Object.values(this.getAll()).length === 1) {
this.#currentContext = name;
}
return this;
}
currentContextIs(contextName: string) {
return contextName === this.#currentContext;
}
getCurrentContext() {
const contexts = this.getAll();
return (contexts.hasOwnProperty(this.#currentContext)) ? contexts[this.#currentContext] : false;
}
setContext(contextName: string) {
if (!this.get(contextName)) {
console.error(`setContext(): context name "${contextName}" does not exist.`);
return false;
}
this.#currentContext = contextName;
console.log(`Setting context to "${this.#currentContext}".`);
}
}

View File

@@ -0,0 +1,15 @@
import { ContextMenu } from "../contextmenus/contextmenu";
import { Manager } from "../other/manager";
export class ContextMenuManager extends Manager {
constructor() {
super();
}
add( name:string, contextMenu:ContextMenu ) {
super.add( name, contextMenu );
return this;
}
}