ConceptCreator/app/storage/loader/GameModelLoader.ts
Sebastian Böckelmann 8016f55e85
Some checks failed
E2E Testing / test (push) Failing after 1m34s
Refactor Loading of ScriptAccounts
2024-03-20 09:26:14 +01:00

44 lines
1.3 KiB
TypeScript

import {StoredGameModel} from "../StoredGameModel";
import {StoreComponent} from "../StoreComponent";
import * as path from "node:path";
import * as fs from "fs";
import {ModelComponentFileDirectory} from "../ModelComponentFileDirectory";
import {ScriptAccountLoader} from "./ScriptAccountLoader";
export class GameModelLoader {
gameModelDir: string
constructor(gameModelDir: string) {
this.gameModelDir = gameModelDir;
}
loadGameModel(): StoredGameModel {
const gameModelName = path.basename(this.gameModelDir)
const gameModelComponents: StoreComponent[] = this.loadGameModelComponents();
return new StoredGameModel(gameModelName, gameModelComponents);
}
private loadGameModelComponents(): StoreComponent[] {
let gameModelComponents: StoreComponent[] = this.loadScriptAccountComponents()
gameModelComponents = gameModelComponents.concat(this.loadGamesystems())
return gameModelComponents
}
private loadScriptAccountComponents() {
const scriptAccountDir = path.join(this.gameModelDir, ModelComponentFileDirectory.SCRIPTACCOUNT_DIR_NAME);
const scriptAccountLoader = new ScriptAccountLoader(scriptAccountDir);
return scriptAccountLoader.loadScriptAccounts()
}
private loadGamesystems(): StoreComponent[] {
return []
}
}