UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

49 lines (46 loc) 5.02 kB
import { Vector3 } from '@jsprismarine/math'; class Position extends Vector3 { /** * Create a new position * @param {number} x - The x coordinate of the position. * @param {number} y - The y coordinate of the position. * @param {number} z - The z coordinate of the position. * @param {World} world - The world of the position. * @returns {Position} The new position. */ constructor(x, y, z, world) { super(x, y, z); this.world = world; } toString() { return `${super.toString()}, world: §b${this.world.getName()}§r`; } /** * Creates a Position from a Vector3 and a World. * @param {Vector3} vector - The vector to create the position from. * @param {World} world - The world of the position. * @returns {Position} The new position. */ static fromVector3(vector, world) { return new Position(vector.getX(), vector.getY(), vector.getZ(), world); } /** * Get the world of the position. * @returns {World} The world of the position. */ getWorld() { if (this.world === void 0) { throw new Error("this.world is undefined"); } return this.world; } /** * Set the world of the position. * @param {World} world - The world to set. */ setWorld(world) { this.world = world; } } export { Position }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zaXRpb24uZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JsZC9Qb3NpdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZWN0b3IzIH0gZnJvbSAnQGpzcHJpc21hcmluZS9tYXRoJztcbmltcG9ydCB0eXBlIHsgV29ybGQgfSBmcm9tICcuLyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY29vcmRpbmF0ZXMgb2YgYSBWZWN0b3IzIGluIGEgZ2l2ZW4gV29ybGQuXG4gKi9cbmV4cG9ydCBjbGFzcyBQb3NpdGlvbiBleHRlbmRzIFZlY3RvcjMge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBwb3NpdGlvblxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgcG9zaXRpb24uXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBjb29yZGluYXRlIG9mIHRoZSBwb3NpdGlvbi5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geiAtIFRoZSB6IGNvb3JkaW5hdGUgb2YgdGhlIHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7V29ybGR9IHdvcmxkIC0gVGhlIHdvcmxkIG9mIHRoZSBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7UG9zaXRpb259IFRoZSBuZXcgcG9zaXRpb24uXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICB4OiBudW1iZXIsXG4gICAgICAgIHk6IG51bWJlcixcbiAgICAgICAgejogbnVtYmVyLFxuICAgICAgICBwcml2YXRlIHdvcmxkOiBXb3JsZFxuICAgICkge1xuICAgICAgICAvLyBUT0RPOiBhc3NlcnQgdGhlIHdvcmxkIGV4aXN0cyBhbmQgaXMgbG9hZGVkXG4gICAgICAgIHN1cGVyKHgsIHksIHopO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIGAke3N1cGVyLnRvU3RyaW5nKCl9LCB3b3JsZDogwqdiJHt0aGlzLndvcmxkLmdldE5hbWUoKX3Cp3JgO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBQb3NpdGlvbiBmcm9tIGEgVmVjdG9yMyBhbmQgYSBXb3JsZC5cbiAgICAgKiBAcGFyYW0ge1ZlY3RvcjN9IHZlY3RvciAtIFRoZSB2ZWN0b3IgdG8gY3JlYXRlIHRoZSBwb3NpdGlvbiBmcm9tLlxuICAgICAqIEBwYXJhbSB7V29ybGR9IHdvcmxkIC0gVGhlIHdvcmxkIG9mIHRoZSBwb3NpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB7UG9zaXRpb259IFRoZSBuZXcgcG9zaXRpb24uXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmcm9tVmVjdG9yMyh2ZWN0b3I6IFZlY3RvcjMsIHdvcmxkOiBXb3JsZCk6IFBvc2l0aW9uIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQb3NpdGlvbih2ZWN0b3IuZ2V0WCgpLCB2ZWN0b3IuZ2V0WSgpLCB2ZWN0b3IuZ2V0WigpLCB3b3JsZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSB3b3JsZCBvZiB0aGUgcG9zaXRpb24uXG4gICAgICogQHJldHVybnMge1dvcmxkfSBUaGUgd29ybGQgb2YgdGhlIHBvc2l0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRXb3JsZCgpOiBXb3JsZCB7XG4gICAgICAgIGlmICgodGhpcy53b3JsZCBhcyBhbnkpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGhpcy53b3JsZCBpcyB1bmRlZmluZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRPRE86IGFzc2VydCB0aGUgd29ybGQgaXMgbG9hZGVkLCBlbHNlIHRocm93XG4gICAgICAgIHJldHVybiB0aGlzLndvcmxkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgd29ybGQgb2YgdGhlIHBvc2l0aW9uLlxuICAgICAqIEBwYXJhbSB7V29ybGR9IHdvcmxkIC0gVGhlIHdvcmxkIHRvIHNldC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0V29ybGQod29ybGQ6IFdvcmxkKTogdm9pZCB7XG4gICAgICAgIHRoaXMud29ybGQgPSB3b3JsZDtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNTyxNQUFNLGlCQUFpQixPQUFRLENBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTM0IsV0FDSCxDQUFBLENBQUEsRUFDQSxDQUNBLEVBQUEsQ0FBQSxFQUNRLEtBQ1YsRUFBQTtBQUVFLElBQU0sS0FBQSxDQUFBLENBQUEsRUFBRyxHQUFHLENBQUMsQ0FBQTtBQUhMLElBQUEsSUFBQSxDQUFBLEtBQUEsR0FBQSxLQUFBO0FBQUE7QUFJWixFQUVPLFFBQVcsR0FBQTtBQUNkLElBQU8sT0FBQSxDQUFBLEVBQUcsTUFBTSxRQUFTLEVBQUMsY0FBYyxJQUFLLENBQUEsS0FBQSxDQUFNLFNBQVMsQ0FBQSxFQUFBLENBQUE7QUFBQTtBQUNoRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQWMsV0FBWSxDQUFBLE1BQUEsRUFBaUIsS0FBd0IsRUFBQTtBQUMvRCxJQUFPLE9BQUEsSUFBSSxRQUFTLENBQUEsTUFBQSxDQUFPLElBQUssRUFBQSxFQUFHLE1BQU8sQ0FBQSxJQUFBLEVBQVEsRUFBQSxNQUFBLENBQU8sSUFBSyxFQUFBLEVBQUcsS0FBSyxDQUFBO0FBQUE7QUFDMUU7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1PLFFBQWtCLEdBQUE7QUFDckIsSUFBSyxJQUFBLElBQUEsQ0FBSyxVQUFrQixLQUFXLENBQUEsRUFBQTtBQUNuQyxNQUFNLE1BQUEsSUFBSSxNQUFNLHlCQUF5QixDQUFBO0FBQUE7QUFJN0MsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBO0FBQUE7QUFDaEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1PLFNBQVMsS0FBb0IsRUFBQTtBQUNoQyxJQUFBLElBQUEsQ0FBSyxLQUFRLEdBQUEsS0FBQTtBQUFBO0FBRXJCOzs7OyJ9