UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

139 lines (138 loc) 8.96 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const IProjectItemData_1 = require("../app/IProjectItemData"); const AnimationBehaviorDefinition_1 = __importDefault(require("./AnimationBehaviorDefinition")); const AnimationControllerBehaviorDefinition_1 = __importDefault(require("./AnimationControllerBehaviorDefinition")); const AnimationControllerResourceDefinition_1 = __importDefault(require("./AnimationControllerResourceDefinition")); const AnimationResourceDefinition_1 = __importDefault(require("./AnimationResourceDefinition")); const AudioDefinition_1 = __importDefault(require("./AudioDefinition")); const BehaviorManifestDefinition_1 = __importDefault(require("./BehaviorManifestDefinition")); const BiomeBehaviorDefinition_1 = __importDefault(require("./BiomeBehaviorDefinition")); const BiomeResourceDefinition_1 = __importDefault(require("./BiomeResourceDefinition")); const BlockTypeDefinition_1 = __importDefault(require("./BlockTypeDefinition")); const EntityTypeDefinition_1 = __importDefault(require("./EntityTypeDefinition")); const EntityTypeResourceDefinition_1 = __importDefault(require("./EntityTypeResourceDefinition")); const FlipbookTextureCatalogDefinition_1 = __importDefault(require("./FlipbookTextureCatalogDefinition")); const ItemTypeDefinition_1 = __importDefault(require("./ItemTypeDefinition")); const JigsawProcessorListDefinition_1 = __importDefault(require("./JigsawProcessorListDefinition")); const JigsawStructureDefinition_1 = __importDefault(require("./JigsawStructureDefinition")); const JigsawStructureSetDefinition_1 = __importDefault(require("./JigsawStructureSetDefinition")); const JigsawTemplatePoolDefinition_1 = __importDefault(require("./JigsawTemplatePoolDefinition")); const MusicDefinitionCatalogDefinition_1 = __importDefault(require("./MusicDefinitionCatalogDefinition")); const MinecraftUtilities_1 = __importDefault(require("./MinecraftUtilities")); const RenderControllerSetDefinition_1 = __importDefault(require("./RenderControllerSetDefinition")); const ResourceManifestDefinition_1 = __importDefault(require("./ResourceManifestDefinition")); const SoundCatalogDefinition_1 = __importDefault(require("./SoundCatalogDefinition")); const SoundDefinitionCatalogDefinition_1 = __importDefault(require("./SoundDefinitionCatalogDefinition")); const TextureSetDefinition_1 = __importDefault(require("./TextureSetDefinition")); class MinecraftDefinitions { static async get(projectItem) { if (!projectItem.isContentLoaded) { await projectItem.loadContent(); } if (!projectItem.primaryFile || !projectItem.primaryFile.content || typeof projectItem.primaryFile.content !== "string") { if (!projectItem.primaryFile) { return undefined; } if (!projectItem.primaryFile.isContentLoaded) { await projectItem.primaryFile.loadContent(); } if (!projectItem.primaryFile.content || typeof projectItem.primaryFile.content !== "string") { return undefined; } } switch (projectItem.itemType) { case IProjectItemData_1.ProjectItemType.entityTypeBehavior: return await EntityTypeDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.entityTypeResource: return await EntityTypeResourceDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.itemTypeBehavior: return await ItemTypeDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.blockTypeBehavior: return await BlockTypeDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.textureSetJson: return await TextureSetDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.flipbookTexturesJson: return await FlipbookTextureCatalogDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.behaviorPackManifestJson: return await BehaviorManifestDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.resourcePackManifestJson: return await ResourceManifestDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.animationControllerBehaviorJson: return await AnimationControllerBehaviorDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.animationControllerResourceJson: return await AnimationControllerResourceDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.animationBehaviorJson: return await AnimationBehaviorDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.animationResourceJson: return await AnimationResourceDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.soundDefinitionCatalog: return await SoundDefinitionCatalogDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.soundCatalog: return await SoundCatalogDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.musicDefinitionJson: return await MusicDefinitionCatalogDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.renderControllerJson: return await RenderControllerSetDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.biomeBehavior: return await BiomeBehaviorDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.biomeResource: return await BiomeResourceDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.jigsawProcessorList: return await JigsawProcessorListDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.jigsawStructureSet: return await JigsawStructureSetDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.jigsawTemplatePool: return await JigsawTemplatePoolDefinition_1.default.ensureOnFile(projectItem.primaryFile); case IProjectItemData_1.ProjectItemType.jigsawStructure: return await JigsawStructureDefinition_1.default.ensureOnFile(projectItem.primaryFile); } return undefined; } static async ensureFoundationalDependencies(item) { if (item.itemType === IProjectItemData_1.ProjectItemType.audio) { if (!item.isContentLoaded) { await item.loadContent(); } if (item.primaryFile) { const audioFile = await AudioDefinition_1.default.ensureOnFile(item.primaryFile); if (audioFile) { await audioFile.ensureSoundDefinitionsForFile(item.project); } } } } static async formatVersionIsCurrent(projectItem) { const def = await MinecraftDefinitions.get(projectItem); if (def && def.getFormatVersionIsCurrent) { return await def.getFormatVersionIsCurrent(); } return true; } static async getFormatVersion(projectItem) { const def = await MinecraftDefinitions.get(projectItem); if (def && def.getFormatVersion) { const fv = await def.getFormatVersion(); // format_version may be expressed as either a 3-number array ([1,0,2]) or a // string ("1.0.2"). Normalize to a number[] so consumers can display it // uniformly (e.g., fv.join(".")). if (fv === undefined || fv === null) { return undefined; } if (fv instanceof Array) { return fv; } if (typeof fv === "string" || typeof fv === "number") { return MinecraftUtilities_1.default.getVersionArrayFrom(fv); } return undefined; } return undefined; } } exports.default = MinecraftDefinitions;