@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
49 lines (46 loc) • 5.02 kB
JavaScript
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