@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
80 lines (79 loc) • 3.07 kB
JavaScript
;
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ITool_1 = require("./ITool");
const IProjectItemData_1 = require("./IProjectItemData");
const CommandRunner_1 = __importDefault(require("./CommandRunner"));
class ProjectTools {
static addGlobalTools(tools) {
tools.push({
title: "Reload",
type: ITool_1.ToolType.reload,
scope: ITool_1.ToolScope.global,
});
}
static generateTools(creatorTools, project) {
const tools = [];
ProjectTools.addGlobalTools(tools);
for (let i = 0; i < 10; i++) {
const ctool = creatorTools.getCustomTool(i);
if (ctool.text && ctool.text.length > 3) {
let title = ctool.name;
if (!title || title.length < 1) {
title = "Tool " + (i + 1).toString();
}
tools.push({
title: title,
type: ITool_1.ToolType.customTool,
scope: ITool_1.ToolScope.global,
parameter1: i.toString(),
});
}
}
if (project) {
for (let i = 0; i < project.items.length; i++) {
const pi = project.items[i];
if (pi.itemType === IProjectItemData_1.ProjectItemType.structure && pi.projectPath !== null) {
let structureName = pi.name;
structureName = structureName.replace(".mcstructure", "");
const tool = {
title: "Push " + structureName + " to Minecraft",
type: ITool_1.ToolType.pushStructure,
scope: ITool_1.ToolScope.project,
parameter1: pi.projectPath,
};
tools.push(tool);
}
}
}
return tools;
}
static async executeTool(tool, creatorTools, project) {
switch (tool.type) {
case ITool_1.ToolType.customTool:
if (tool.parameter1) {
CommandRunner_1.default.runCustomTool(creatorTools, parseInt(tool.parameter1) + 1);
}
break;
case ITool_1.ToolType.reload:
ProjectTools.reload(creatorTools);
break;
case ITool_1.ToolType.say:
if (tool.parameter1 && tool.parameter1.length > 0) {
ProjectTools.say(creatorTools, tool.parameter1);
}
break;
}
}
static async reload(creatorTools) {
await creatorTools.runMinecraftCommand("reload");
}
static async say(creatorTools, message) {
await creatorTools.runMinecraftCommand("say " + message);
}
}
exports.default = ProjectTools;