UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

179 lines (177 loc) 14.2 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.PackInfoGeneratorTest = void 0; const ProjectInfoItem_1 = require("./ProjectInfoItem"); const IProjectItemData_1 = require("../app/IProjectItemData"); const IInfoItemData_1 = require("./IInfoItemData"); const StorageUtilities_1 = require("../storage/StorageUtilities"); const Utilities_1 = require("../core/Utilities"); const MinecraftUtilities_1 = require("../minecraft/MinecraftUtilities"); const ProjectInfoUtilities_1 = require("./ProjectInfoUtilities"); const MemoryTierBase = 40; var PackInfoGeneratorTest; (function (PackInfoGeneratorTest) { PackInfoGeneratorTest[PackInfoGeneratorTest["behaviorPackMinEngineVersion"] = 1] = "behaviorPackMinEngineVersion"; PackInfoGeneratorTest[PackInfoGeneratorTest["behaviorPackUuid"] = 2] = "behaviorPackUuid"; PackInfoGeneratorTest[PackInfoGeneratorTest["behaviorPackManfiest"] = 3] = "behaviorPackManfiest"; PackInfoGeneratorTest[PackInfoGeneratorTest["behaviorPackName"] = 4] = "behaviorPackName"; PackInfoGeneratorTest[PackInfoGeneratorTest["behaviorPackDescription"] = 5] = "behaviorPackDescription"; PackInfoGeneratorTest[PackInfoGeneratorTest["behaviorPackId"] = 6] = "behaviorPackId"; PackInfoGeneratorTest[PackInfoGeneratorTest["resourcePackMinEngineVersion"] = 11] = "resourcePackMinEngineVersion"; PackInfoGeneratorTest[PackInfoGeneratorTest["resourcePackUuid"] = 12] = "resourcePackUuid"; PackInfoGeneratorTest[PackInfoGeneratorTest["resourcePackManifest"] = 13] = "resourcePackManifest"; PackInfoGeneratorTest[PackInfoGeneratorTest["resourcePackName"] = 14] = "resourcePackName"; PackInfoGeneratorTest[PackInfoGeneratorTest["resourcePackDescription"] = 15] = "resourcePackDescription"; PackInfoGeneratorTest[PackInfoGeneratorTest["resourcePackId"] = 16] = "resourcePackId"; PackInfoGeneratorTest[PackInfoGeneratorTest["resourcePackFormatVersion"] = 17] = "resourcePackFormatVersion"; PackInfoGeneratorTest[PackInfoGeneratorTest["subPacks"] = 18] = "subPacks"; PackInfoGeneratorTest[PackInfoGeneratorTest["resourcePackIcon"] = 21] = "resourcePackIcon"; PackInfoGeneratorTest[PackInfoGeneratorTest["behaviorPackIcon"] = 22] = "behaviorPackIcon"; PackInfoGeneratorTest[PackInfoGeneratorTest["skinPackIcon"] = 23] = "skinPackIcon"; PackInfoGeneratorTest[PackInfoGeneratorTest["subpackTier1Count"] = 41] = "subpackTier1Count"; PackInfoGeneratorTest[PackInfoGeneratorTest["subpackTier40Count"] = 80] = "subpackTier40Count"; PackInfoGeneratorTest[PackInfoGeneratorTest["subpackTiers"] = 145] = "subpackTiers"; })(PackInfoGeneratorTest = exports.PackInfoGeneratorTest || (exports.PackInfoGeneratorTest = {})); class PackInfoGenerator { constructor() { this.id = "PACK"; this.title = "General info"; this.canAlwaysProcess = true; } getTopicData(topicId) { return { title: topicId.toString(), }; } summarize(info, infoSet) { info.defaultBehaviorPackUuid = infoSet.getFirstStringValue(this.id, PackInfoGeneratorTest.behaviorPackUuid); info.defaultIcon = infoSet.getFirstStringValue(this.id, PackInfoGeneratorTest.resourcePackIcon); if (info.defaultIcon === undefined) { info.defaultIcon = infoSet.getFirstStringValue(this.id, PackInfoGeneratorTest.behaviorPackIcon); } // because it's heavy, remove pack icon from this list of issues. Though the summarize op is probably // the wrong place to do this. infoSet.removeItems(this.id, [PackInfoGeneratorTest.resourcePackIcon, PackInfoGeneratorTest.behaviorPackIcon]); info.defaultBehaviorPackMinEngineVersion = infoSet.getFirstNumberArrayValue(this.id, PackInfoGeneratorTest.behaviorPackMinEngineVersion); info.defaultBehaviorPackName = infoSet.getFirstNumberArrayValue(this.id, PackInfoGeneratorTest.behaviorPackName); info.defaultBehaviorPackDescription = infoSet.getFirstNumberArrayValue(this.id, PackInfoGeneratorTest.behaviorPackDescription); info.defaultResourcePackUuid = infoSet.getFirstStringValue(this.id, PackInfoGeneratorTest.resourcePackUuid); info.defaultResourcePackMinEngineVersion = infoSet.getFirstNumberArrayValue(this.id, PackInfoGeneratorTest.resourcePackMinEngineVersion); info.defaultResourcePackName = infoSet.getFirstNumberArrayValue(this.id, PackInfoGeneratorTest.resourcePackName); info.defaultResourcePackDescription = infoSet.getFirstNumberArrayValue(this.id, PackInfoGeneratorTest.resourcePackDescription); info.subpackCount = infoSet.getFirstNumberValue(this.id, PackInfoGeneratorTest.subPacks); for (let i = 1; i < 41; i++) { info["subpackTier" + i + "Count"] = infoSet.getCount(this.id, MemoryTierBase + i); } } async generate(project, contentIndex) { const memoryTiersPi = new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.featureAggregate, this.id, PackInfoGeneratorTest.subpackTiers, "Entity Geometry"); const items = [memoryTiersPi]; const itemsCopy = project.getItemsCopy(); for (let i = 0; i < itemsCopy.length; i++) { const pi = itemsCopy[i]; if (pi.itemType === IProjectItemData_1.ProjectItemType.iconImage) { if (pi.file) { if (StorageUtilities_1.default.getBaseFromName(pi.file.name) === "pack_icon" && StorageUtilities_1.default.getTypeFromName(pi.file.name) === "png") { await pi.file.loadContent(false); if (pi.file.content && typeof pi.file.content !== "string") { let index = PackInfoGeneratorTest.resourcePackIcon; if (MinecraftUtilities_1.default.pathLooksLikeBehaviorPackName(pi.file.storageRelativePath)) { index = PackInfoGeneratorTest.behaviorPackIcon; } else if (MinecraftUtilities_1.default.pathLooksLikeSkinPackName(pi.file.storageRelativePath)) { index = PackInfoGeneratorTest.skinPackIcon; } items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, index, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, index), pi, Utilities_1.default.uint8ArrayToBase64(pi.file.content))); } } } } else if (pi.itemType === IProjectItemData_1.ProjectItemType.behaviorPackManifestJson) { const obj = (await pi.getJsonObject()); if (obj) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.behaviorPackManfiest, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.behaviorPackManfiest), pi, JSON.stringify(obj))); if (obj.format_version) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.behaviorPackMinEngineVersion, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.behaviorPackMinEngineVersion), pi, obj.format_version)); } if (obj.header) { if (obj.header.uuid) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.behaviorPackUuid, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.behaviorPackUuid), pi, obj.header.uuid)); } if (obj.header.uuid && obj.header.version) { if (obj.header.version.length === 3) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.behaviorPackId, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.behaviorPackId), pi, obj.header.uuid + "|" + obj.header.version[0] + "." + obj.header.version[1] + "." + obj.header.version[2])); } } if (obj.header.name) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.behaviorPackName, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.behaviorPackName), pi, project.loc.getExpandedValue(obj.header.name))); } if (obj.header.description) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.behaviorPackDescription, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.behaviorPackDescription), pi, project.loc.getExpandedValue(obj.header.description))); } if (obj.header.min_engine_version) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.behaviorPackMinEngineVersion, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.behaviorPackMinEngineVersion), pi, obj.header.min_engine_version)); } } } } else if (pi.itemType === IProjectItemData_1.ProjectItemType.resourcePackManifestJson) { const obj = (await pi.getJsonObject()); if (obj) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.resourcePackManifest, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.resourcePackManifest), pi, JSON.stringify(obj))); if (obj.subpacks) { if (Array.isArray(obj.subpacks)) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, 18, "Subpacks", pi, obj.subpacks.length)); for (const sp of obj.subpacks) { if (sp.memory_tier) { memoryTiersPi.spectrumIntFeature("Memory Tier", sp.memory_tier); items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, MemoryTierBase + sp.memory_tier, "Subpack Memory Tier " + sp.memory_tier, pi, sp.name)); } } } } if (obj.format_version) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.resourcePackFormatVersion, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.resourcePackFormatVersion), pi, obj.format_version)); } if (obj.header) { if (obj.header.uuid) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.resourcePackUuid, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.resourcePackUuid), pi, obj.header.uuid)); } if (obj.header.uuid && obj.header.version) { if (obj.header.version.length === 3) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.resourcePackId, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.resourcePackId), pi, obj.header.uuid + "|" + obj.header.version[0] + "." + obj.header.version[1] + "." + obj.header.version[2])); } } if (obj.header.name) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.resourcePackName, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.resourcePackName), pi, project.loc.getExpandedValue(obj.header.name))); } if (obj.header.description) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.resourcePackDescription, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.resourcePackDescription), pi, project.loc.getExpandedValue(obj.header.description))); } if (obj.header.min_engine_version) { items.push(new ProjectInfoItem_1.default(IInfoItemData_1.InfoItemType.info, this.id, PackInfoGeneratorTest.resourcePackMinEngineVersion, ProjectInfoUtilities_1.default.getTitleFromEnum(PackInfoGeneratorTest, PackInfoGeneratorTest.resourcePackMinEngineVersion), pi, obj.header.min_engine_version)); } } } } } return items; } } exports.default = PackInfoGenerator; //# sourceMappingURL=../maps/info/PackInfoGenerator.js.map