UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

112 lines (111 loc) 3.99 kB
"use strict"; // 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 }); exports.CoordinateType = exports.CoordinateLocation = exports.CommandArgumentType = void 0; const Utilities_1 = __importDefault(require("../core/Utilities")); var CommandArgumentType; (function (CommandArgumentType) { CommandArgumentType[CommandArgumentType["coordinate"] = 0] = "coordinate"; CommandArgumentType[CommandArgumentType["unknown"] = 1] = "unknown"; })(CommandArgumentType || (exports.CommandArgumentType = CommandArgumentType = {})); var CoordinateLocation; (function (CoordinateLocation) { CoordinateLocation[CoordinateLocation["x"] = 0] = "x"; CoordinateLocation[CoordinateLocation["y"] = 1] = "y"; CoordinateLocation[CoordinateLocation["z"] = 2] = "z"; })(CoordinateLocation || (exports.CoordinateLocation = CoordinateLocation = {})); var CoordinateType; (function (CoordinateType) { CoordinateType[CoordinateType["absolute"] = 0] = "absolute"; CoordinateType[CoordinateType["relativeTilde"] = 1] = "relativeTilde"; CoordinateType[CoordinateType["localCaret"] = 2] = "localCaret"; })(CoordinateType || (exports.CoordinateType = CoordinateType = {})); class CommandArgument { _content; _type; _location; _coordinateType; _pos; get value() { if (this._type === CommandArgumentType.coordinate && this._pos !== undefined) { let result = this._pos.toString(); if (this._coordinateType === CoordinateType.localCaret) { result = "^" + result; } else if (this._coordinateType === CoordinateType.relativeTilde) { result = "~" + result; } return result; } return this._content; } get position() { if (this._pos === undefined) { return 0; } return this._pos; } set position(value) { this._pos = value; } get coordinateType() { if (this._coordinateType === undefined) { return CoordinateType.absolute; } return this._coordinateType; } set coordinateType(type) { this._coordinateType = type; } get type() { return this._type; } get location() { return this._location; } set location(newLocation) { this._location = newLocation; } constructor(content) { this._content = content; this._type = CommandArgumentType.unknown; this.setValue(content); } setValue(content) { this._content = content; const startsWithCaret = this._content.startsWith("^"); const startsWithTilde = this._content.startsWith("~"); if (startsWithCaret || startsWithTilde) { const substr = this._content.substring(1, this._content.length); if (Utilities_1.default.isNumeric(substr)) { this._type = CommandArgumentType.coordinate; if (startsWithTilde) { this._coordinateType = CoordinateType.relativeTilde; } else if (startsWithCaret) { this._coordinateType = CoordinateType.localCaret; } this._pos = parseInt(substr); } else { this._type = CommandArgumentType.unknown; } } else if (Utilities_1.default.isNumeric(this._content)) { this._type = CommandArgumentType.coordinate; this._coordinateType = CoordinateType.absolute; this._pos = parseInt(content); } else { this._type = CommandArgumentType.unknown; } } toString() { return this.value; } } exports.default = CommandArgument;