UNPKG

wle-aligner

Version:

Align two Wonderland Engine projects so that they can share, as much as possible, the same resources and structure

74 lines 3.22 kB
import { JSONAST, ObjectToken } from "@playkostudios/jsonc-ast"; export class Project { _myJSONAST = null; myPath = null; myRoot = null; myObjects = null; myMeshes = null; myTextures = null; myImages = null; myMaterials = null; myShaders = null; mySettings = null; myAnimations = null; mySkins = null; myPipelines = null; myFiles = null; myFonts = null; myLanguages = null; constructor() { } getProjectName() { let projectName = null; if (this._myJSONAST != null) { const projectSettingsToCheck = this.mySettings.maybeGetValueTokenOfKey("project"); if (projectSettingsToCheck != null) { const projectSettings = ObjectToken.assert(projectSettingsToCheck); projectName = (projectSettings.maybeGetValueOfKey("name") ?? null); } } return projectName; } getAllObjectTokens() { const objectTokens = []; if (this._myJSONAST != null) { objectTokens.push(this.myObjects); objectTokens.push(this.myMeshes); objectTokens.push(this.myTextures); objectTokens.push(this.myImages); objectTokens.push(this.myMaterials); objectTokens.push(this.myShaders); objectTokens.push(this.myAnimations); objectTokens.push(this.mySkins); objectTokens.push(this.myPipelines); objectTokens.push(this.myFiles); objectTokens.push(this.myFonts); objectTokens.push(this.myLanguages); } return objectTokens; } async load(projectPath) { this.myPath = projectPath; this._myJSONAST = new JSONAST(); this.myRoot = ObjectToken.assert((await this._myJSONAST.parse(this.myPath)).getValueToken()); this.myObjects = ObjectToken.assert(this.myRoot.getValueTokenOfKey("objects")); this.myMeshes = ObjectToken.assert(this.myRoot.getValueTokenOfKey("meshes")); this.myTextures = ObjectToken.assert(this.myRoot.getValueTokenOfKey("textures")); this.myImages = ObjectToken.assert(this.myRoot.getValueTokenOfKey("images")); this.myMaterials = ObjectToken.assert(this.myRoot.getValueTokenOfKey("materials")); this.myShaders = ObjectToken.assert(this.myRoot.getValueTokenOfKey("shaders")); this.mySettings = ObjectToken.assert(this.myRoot.getValueTokenOfKey("settings")); this.myAnimations = ObjectToken.assert(this.myRoot.getValueTokenOfKey("animations")); this.mySkins = ObjectToken.assert(this.myRoot.getValueTokenOfKey("skins")); this.myPipelines = ObjectToken.assert(this.myRoot.getValueTokenOfKey("pipelines")); this.myFiles = ObjectToken.assert(this.myRoot.getValueTokenOfKey("files")); this.myFonts = ObjectToken.assert(this.myRoot.getValueTokenOfKey("fonts")); this.myLanguages = ObjectToken.assert(this.myRoot.getValueTokenOfKey("languages")); } async save(newPath = "") { if (this._myJSONAST != null) { await this._myJSONAST.writeToFile(newPath.length > 0 ? newPath : this.myPath); } } } //# sourceMappingURL=project.js.map