UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

85 lines (84 loc) 4.73 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TextureReferenceInfoGeneratorTest = void 0; const ProjectInfoItem_1 = __importDefault(require("./ProjectInfoItem")); const IProjectItemData_1 = require("../app/IProjectItemData"); const IInfoItemData_1 = require("./IInfoItemData"); const BlocksCatalogDefinition_1 = __importDefault(require("../minecraft/BlocksCatalogDefinition")); const TerrainTextureCatalogDefinition_1 = __importDefault(require("../minecraft/TerrainTextureCatalogDefinition")); const ItemTextureCatalogDefinition_1 = __importDefault(require("../minecraft/ItemTextureCatalogDefinition")); const ContentIndex_1 = require("../core/ContentIndex"); var TextureReferenceInfoGeneratorTest; (function (TextureReferenceInfoGeneratorTest) { TextureReferenceInfoGeneratorTest[TextureReferenceInfoGeneratorTest["textureReferences"] = 101] = "textureReferences"; })(TextureReferenceInfoGeneratorTest || (exports.TextureReferenceInfoGeneratorTest = TextureReferenceInfoGeneratorTest = {})); /** * Aggregates texture reference information from various catalog definitions. * * @see {@link ../../public/data/forms/mctoolsval/textureref.form.json} for topic definitions */ class TextureReferenceInfoGenerator { id = "TEXTUREREF"; title = "Texture References"; performAddOnValidations = false; summarize(info, infoSet) { info.textureCount = infoSet.getSummedDataValue(this.id, TextureReferenceInfoGeneratorTest.textureReferences); } async generate(project, contentIndex) { const items = []; const textureRefCountPi = new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.featureAggregate, this.id, TextureReferenceInfoGeneratorTest.textureReferences, "Texture References"); items.push(textureRefCountPi); const itemsCopy = project.getItemsCopy(); for (const projectItem of itemsCopy) { if (projectItem.itemType === IProjectItemData_1.ProjectItemType.blocksCatalogResourceJson) { if (!projectItem.isContentLoaded) { await projectItem.loadContent(); } if (projectItem.primaryFile) { const blockCat = await BlocksCatalogDefinition_1.default.ensureOnFile(projectItem.primaryFile); if (blockCat && blockCat.blocksCatalog && projectItem.projectPath) { const textureRefs = blockCat.getTextureReferences(); for (const textureRef of textureRefs) { contentIndex.insert(textureRef, projectItem.projectPath, ContentIndex_1.AnnotationCategory.blockTextureReferenceDependent); } } } } else if (projectItem.itemType === IProjectItemData_1.ProjectItemType.terrainTextureCatalogResourceJson) { if (!projectItem.isContentLoaded) { await projectItem.loadContent(); } if (projectItem.primaryFile) { const blockCat = await TerrainTextureCatalogDefinition_1.default.ensureOnFile(projectItem.primaryFile); if (blockCat && projectItem.projectPath) { const textureRefs = blockCat.getTextureReferences(); for (const textureRef of textureRefs) { contentIndex.insert(textureRef, projectItem.projectPath, ContentIndex_1.AnnotationCategory.blockTextureReferenceSource); } } } } else if (projectItem.itemType === IProjectItemData_1.ProjectItemType.itemTextureJson) { if (!projectItem.isContentLoaded) { await projectItem.loadContent(); } if (projectItem.primaryFile) { const itemCat = await ItemTextureCatalogDefinition_1.default.ensureOnFile(projectItem.primaryFile); if (itemCat && projectItem.projectPath) { const textureRefs = itemCat.getTextureReferences(); for (const textureRef of textureRefs) { contentIndex.insert(textureRef, projectItem.projectPath, ContentIndex_1.AnnotationCategory.itemTextureReferenceSource); } } } } } return items; } } exports.default = TextureReferenceInfoGenerator;