@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
99 lines (97 loc) • 5.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const IProjectItemData_1 = require("../app/IProjectItemData");
const AnimationBehaviorDefinition_1 = require("./AnimationBehaviorDefinition");
const AnimationControllerBehaviorDefinition_1 = require("./AnimationControllerBehaviorDefinition");
const AnimationControllerResourceDefinition_1 = require("./AnimationControllerResourceDefinition");
const AnimationResourceDefinition_1 = require("./AnimationResourceDefinition");
const AudioDefinition_1 = require("./AudioDefinition");
const BehaviorManifestDefinition_1 = require("./BehaviorManifestDefinition");
const BlockTypeDefinition_1 = require("./BlockTypeDefinition");
const EntityTypeDefinition_1 = require("./EntityTypeDefinition");
const EntityTypeResourceDefinition_1 = require("./EntityTypeResourceDefinition");
const FlipbookTextureCatalogDefinition_1 = require("./FlipbookTextureCatalogDefinition");
const ItemTypeBehaviorDefinition_1 = require("./ItemTypeBehaviorDefinition");
const MusicDefinitionCatalogDefinition_1 = require("./MusicDefinitionCatalogDefinition");
const RenderControllerSetDefinition_1 = require("./RenderControllerSetDefinition");
const ResourceManifestDefinition_1 = require("./ResourceManifestDefinition");
const SoundCatalogDefinition_1 = require("./SoundCatalogDefinition");
const SoundDefinitionCatalogDefinition_1 = require("./SoundDefinitionCatalogDefinition");
class MinecraftDefinitions {
static async get(projectItem) {
if (!projectItem.file || !projectItem.file.content || typeof projectItem.file.content !== "string") {
await projectItem.ensureFileStorage();
if (!projectItem.file) {
return undefined;
}
await projectItem.file.loadContent();
if (!projectItem.file.content || typeof projectItem.file.content !== "string") {
return undefined;
}
}
switch (projectItem.itemType) {
case IProjectItemData_1.ProjectItemType.entityTypeBehavior:
return await EntityTypeDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.entityTypeResource:
return await EntityTypeResourceDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.itemTypeBehavior:
return await ItemTypeBehaviorDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.blockTypeBehavior:
return await BlockTypeDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.flipbookTexturesJson:
return await FlipbookTextureCatalogDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.behaviorPackManifestJson:
return await BehaviorManifestDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.resourcePackManifestJson:
return await ResourceManifestDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.animationControllerBehaviorJson:
return await AnimationControllerBehaviorDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.animationControllerResourceJson:
return await AnimationControllerResourceDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.animationBehaviorJson:
return await AnimationBehaviorDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.animationResourceJson:
return await AnimationResourceDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.soundDefinitionCatalog:
return await SoundDefinitionCatalogDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.soundCatalog:
return await SoundCatalogDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.musicDefinitionJson:
return await MusicDefinitionCatalogDefinition_1.default.ensureOnFile(projectItem.file);
case IProjectItemData_1.ProjectItemType.renderControllerJson:
return await RenderControllerSetDefinition_1.default.ensureOnFile(projectItem.file);
}
return undefined;
}
static async ensureFoundationalDependencies(item) {
if (item.itemType === IProjectItemData_1.ProjectItemType.audio) {
await item.ensureStorage();
if (item.file) {
const audioFile = await AudioDefinition_1.default.ensureOnFile(item.file);
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();
if (!(fv instanceof Array)) {
return undefined;
}
return fv;
}
return undefined;
}
}
exports.default = MinecraftDefinitions;
//# sourceMappingURL=../maps/minecraft/MinecraftDefinitions.js.map