"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GameModelLoader = void 0; const StoredGameModel_1 = require("../StoredGameModel"); const path = require("node:path"); const ModelComponentFileDirectory_1 = require("../ModelComponentFileDirectory"); const ScriptAccountLoader_1 = require("./ScriptAccountLoader"); const GamesystemLoader_1 = require("./GamesystemLoader"); const CharacterLoader_1 = require("./CharacterLoader"); class GameModelLoader { constructor(gameModelDir) { this.gameModelDir = gameModelDir; } loadGameModel() { const gameModelName = path.basename(this.gameModelDir); const storedScriptAccounts = this.loadScriptAccountComponents(); const storedGamesystems = this.loadGamesystems(); const storedCharacters = this.loadCharacters(); return new StoredGameModel_1.StoredGameModel(gameModelName, storedScriptAccounts, storedGamesystems, storedCharacters, [], []); } loadScriptAccountComponents() { const scriptAccountDir = path.join(this.gameModelDir, ModelComponentFileDirectory_1.ModelComponentFileDirectory.SCRIPTACCOUNT_DIR_NAME); const scriptAccountLoader = new ScriptAccountLoader_1.ScriptAccountLoader(scriptAccountDir); return scriptAccountLoader.loadScriptAccounts(); } loadGamesystems() { const gamesystemDir = path.join(this.gameModelDir, ModelComponentFileDirectory_1.ModelComponentFileDirectory.GAMESYSTEM_DIR_NAME); const gamesystemLoader = new GamesystemLoader_1.GamesystemLoader(gamesystemDir); return gamesystemLoader.loadGamesystems(); } loadCharacters() { const characterDir = path.join(this.gameModelDir, ModelComponentFileDirectory_1.ModelComponentFileDirectory.CHARACTER_DIR_NAME); const characterLoader = new CharacterLoader_1.CharacterLoader(characterDir); return characterLoader.loadCharacters(); } } exports.GameModelLoader = GameModelLoader; //# sourceMappingURL=GameModelLoader.js.map