UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

153 lines (151 loc) 8.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ContentIndex_1 = require("../core/ContentIndex"); const LookupUtilities_1 = require("./LookupUtilities"); class ProjectLookupUtilities { static async getLookup(project, lookupId) { switch (lookupId) { case "blockType": return await this.getBlockTypeReferences(project); case "entityType": return await this.getEntityTypeReferences(project); case "itemType": return await this.getItemTypeReferences(project); case "entityTypeEvents": break; case "difficulty": break; case "damageCause": break; case "lootTable": break; case "soundDefinition": return await this.getSoundDefinitionReferences(project); case "itemTexture": return await this.getItemTextureReferences(project); case "terrainTexture": return await this.getTerrainTextureReferences(project); case "entityTypePlusVariants": break; } return undefined; } static async getBlockTypeReferences(project) { if (project.infoSet.contentIndex.iteration !== ProjectLookupUtilities.cacheIteration) { ProjectLookupUtilities.cacheIteration = project.infoSet.contentIndex.iteration; ProjectLookupUtilities.referenceCache = {}; } if (ProjectLookupUtilities.referenceCache["blockType"]) { return ProjectLookupUtilities.referenceCache["blockType"]; } await project.ensureInfoSetGenerated(); let simpleRefs = []; const refs = LookupUtilities_1.default.getReferencesFromAnnotatedValues(project.infoSet.contentIndex.getAll([ContentIndex_1.AnnotationCategory.blockTypeSource]), ContentIndex_1.AnnotationCategory.blockTypeSource, "{0} block type from " + project.name); if (refs) { LookupUtilities_1.default.sortReferences(refs); simpleRefs = refs; } LookupUtilities_1.default.appendReferences(simpleRefs, await LookupUtilities_1.default.getLookup("blockType")); ProjectLookupUtilities.referenceCache["blockType"] = simpleRefs; return simpleRefs; } static async getEntityTypeReferences(project) { if (project.infoSet.contentIndex.iteration !== ProjectLookupUtilities.cacheIteration) { ProjectLookupUtilities.cacheIteration = project.infoSet.contentIndex.iteration; ProjectLookupUtilities.referenceCache = {}; } if (ProjectLookupUtilities.referenceCache["entityType"]) { return ProjectLookupUtilities.referenceCache["entityType"]; } await project.ensureInfoSetGenerated(); let simpleRefs = []; const refs = LookupUtilities_1.default.getReferencesFromAnnotatedValues(project.infoSet.contentIndex.getAll([ContentIndex_1.AnnotationCategory.blockTypeSource]), ContentIndex_1.AnnotationCategory.entityTypeSource, "{0} entity type from " + project.name); if (refs) { LookupUtilities_1.default.sortReferences(refs); simpleRefs = refs; } LookupUtilities_1.default.appendReferences(simpleRefs, await LookupUtilities_1.default.getLookup("entityType")); ProjectLookupUtilities.referenceCache["entityType"] = simpleRefs; return simpleRefs; } static async getItemTypeReferences(project) { if (project.infoSet.contentIndex.iteration !== ProjectLookupUtilities.cacheIteration) { ProjectLookupUtilities.cacheIteration = project.infoSet.contentIndex.iteration; ProjectLookupUtilities.referenceCache = {}; } if (ProjectLookupUtilities.referenceCache["itemType"]) { return ProjectLookupUtilities.referenceCache["itemType"]; } await project.ensureInfoSetGenerated(); let simpleRefs = []; const refs = LookupUtilities_1.default.getReferencesFromAnnotatedValues(project.infoSet.contentIndex.getAll([ContentIndex_1.AnnotationCategory.blockTypeSource]), ContentIndex_1.AnnotationCategory.itemTypeSource, "{0} item type from " + project.name); if (refs) { LookupUtilities_1.default.sortReferences(refs); simpleRefs = refs; } LookupUtilities_1.default.appendReferences(simpleRefs, await LookupUtilities_1.default.getLookup("itemType")); ProjectLookupUtilities.referenceCache["itemType"] = simpleRefs; return simpleRefs; } static async getSoundDefinitionReferences(project) { if (project.infoSet.contentIndex.iteration !== ProjectLookupUtilities.cacheIteration) { ProjectLookupUtilities.cacheIteration = project.infoSet.contentIndex.iteration; ProjectLookupUtilities.referenceCache = {}; } if (ProjectLookupUtilities.referenceCache["soundDefinition"]) { return ProjectLookupUtilities.referenceCache["soundDefinition"]; } await project.ensureInfoSetGenerated(); let simpleRefs = []; const refs = LookupUtilities_1.default.getReferencesFromAnnotatedValues(project.infoSet.contentIndex.getAll([ContentIndex_1.AnnotationCategory.blockTypeSource]), ContentIndex_1.AnnotationCategory.blockTypeSource, "{0} sound from " + project.name); if (refs) { LookupUtilities_1.default.sortReferences(refs); simpleRefs = refs; } LookupUtilities_1.default.appendReferences(simpleRefs, await LookupUtilities_1.default.getLookup("soundDefinition")); ProjectLookupUtilities.referenceCache["soundDefinition"] = simpleRefs; return simpleRefs; } static async getTerrainTextureReferences(project) { if (project.infoSet.contentIndex.iteration !== ProjectLookupUtilities.cacheIteration) { ProjectLookupUtilities.cacheIteration = project.infoSet.contentIndex.iteration; ProjectLookupUtilities.referenceCache = {}; } if (ProjectLookupUtilities.referenceCache["terrainTexture"]) { return ProjectLookupUtilities.referenceCache["terrainTexture"]; } await project.ensureInfoSetGenerated(); let simpleRefs = []; const refs = LookupUtilities_1.default.getReferencesFromAnnotatedValues(project.infoSet.contentIndex.getAll([ContentIndex_1.AnnotationCategory.terrainTextureSource]), ContentIndex_1.AnnotationCategory.terrainTextureSource, "{0} terrain texture from " + project.name); if (refs) { LookupUtilities_1.default.sortReferences(refs); simpleRefs = refs; } LookupUtilities_1.default.appendReferences(simpleRefs, await LookupUtilities_1.default.getLookup("terrainTexture")); ProjectLookupUtilities.referenceCache["terrainTexture"] = simpleRefs; return simpleRefs; } static async getItemTextureReferences(project) { if (project.infoSet.contentIndex.iteration !== ProjectLookupUtilities.cacheIteration) { ProjectLookupUtilities.cacheIteration = project.infoSet.contentIndex.iteration; ProjectLookupUtilities.referenceCache = {}; } if (ProjectLookupUtilities.referenceCache["itemTexture"]) { return ProjectLookupUtilities.referenceCache["itemTexture"]; } await project.ensureInfoSetGenerated(); let simpleRefs = []; const refs = LookupUtilities_1.default.getReferencesFromAnnotatedValues(project.infoSet.contentIndex.getAll([ContentIndex_1.AnnotationCategory.itemTextureSource]), ContentIndex_1.AnnotationCategory.itemTextureSource, "{0} item texture from " + project.name); if (refs) { LookupUtilities_1.default.sortReferences(refs); simpleRefs = refs; } LookupUtilities_1.default.appendReferences(simpleRefs, await LookupUtilities_1.default.getLookup("itemTexture")); ProjectLookupUtilities.referenceCache["itemTexture"] = simpleRefs; return simpleRefs; } } exports.default = ProjectLookupUtilities; ProjectLookupUtilities.referenceCache = {}; ProjectLookupUtilities.cacheIteration = 0; //# sourceMappingURL=../maps/app/ProjectLookupUtilities.js.map