@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
179 lines (177 loc) • 14.2 kB
JavaScript
"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