@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
62 lines (60 loc) • 2.31 kB
JavaScript
"use strict";
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.PackType = void 0;
const BehaviorManifestDefinition_1 = require("./BehaviorManifestDefinition");
const ResourceManifestDefinition_1 = require("./ResourceManifestDefinition");
const SkinManifestDefinition_1 = require("./SkinManifestDefinition");
const PersonaManifestDefinition_1 = require("./PersonaManifestDefinition");
var PackType;
(function (PackType) {
PackType[PackType["resource"] = 0] = "resource";
PackType[PackType["behavior"] = 1] = "behavior";
PackType[PackType["skin"] = 2] = "skin";
PackType[PackType["persona"] = 3] = "persona";
})(PackType = exports.PackType || (exports.PackType = {}));
class Pack {
constructor(folderIn, packTypeIn) {
this.folder = folderIn;
this.type = packTypeIn;
}
ensureManifestFile() {
if (this.manifestFile === undefined) {
this.manifestFile = this.folder.ensureFile("manifest.json");
}
return this.manifestFile;
}
async ensureManifest() {
if (this.manifest) {
return this.manifest;
}
this.manifestFile = this.ensureManifestFile();
if (this.type === PackType.behavior) {
this.manifest = await BehaviorManifestDefinition_1.default.ensureOnFile(this.manifestFile);
}
else if (this.type === PackType.skin) {
this.manifest = await SkinManifestDefinition_1.default.ensureOnFile(this.manifestFile);
}
else if (this.type === PackType.persona) {
this.manifest = await PersonaManifestDefinition_1.default.ensureOnFile(this.manifestFile);
}
else {
this.manifest = await ResourceManifestDefinition_1.default.ensureOnFile(this.manifestFile);
}
return this.manifest;
}
static ensureOnFolder(folder, packType, project) {
if (folder.manager === undefined) {
const pack = new Pack(folder, packType);
pack.project = project;
pack.type = packType;
return pack;
}
else {
return folder.manager;
}
}
}
exports.default = Pack;
//# sourceMappingURL=../maps/minecraft/Pack.js.map