UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

59 lines (58 loc) 5.97 kB
import { NetworkUtil } from "../NetworkUtil.es.js"; import Identifiers from "../Identifiers.es.js"; import DataPacket from "./DataPacket.es.js"; import { Vector3 } from "@jsprismarine/math"; //#region src/network/packet/AddActorPacket.ts /** * Packet for adding an entity to the game. * * **Bound To:** Client * * | Name | Type | Notes | * | ---- |:----:|:-----:| * | uniqueEntityId | VarLong | | * | runtimeEntityId | UnsignedVarLong | | * | type | String | The namespaced entity ID | * | position | Vector3 (LFloat) | The entity's position | * | motion | Vector3 (LFloat) | The entity's motion | * | pitch | LFloat | | * | yaw | LFloat | | * | headYaw | LFloat | | */ var AddActorPacket = class extends DataPacket { static NetID = Identifiers.AddActorPacket; uniqueEntityId; runtimeEntityId; type; position = new Vector3(0, 0, 0); motion = new Vector3(0, 0, 0); pitch; yaw; headYaw; attributes = []; metadata; links = []; encodePayload() { this.writeVarLong(this.uniqueEntityId || this.runtimeEntityId); this.writeUnsignedVarLong(this.runtimeEntityId); NetworkUtil.writeString(this, this.type); this.writeFloatLE(this.position.getX()); this.writeFloatLE(this.position.getY()); this.writeFloatLE(this.position.getZ()); this.writeFloatLE(this.motion.getX()); this.writeFloatLE(this.motion.getY()); this.writeFloatLE(this.motion.getZ()); this.writeFloatLE(this.pitch); this.writeFloatLE(this.yaw); this.writeFloatLE(this.headYaw); this.writeFloatLE(this.yaw); this.writeUnsignedVarInt(0); this.metadata.networkSerialize(this); this.writeUnsignedVarInt(0); this.writeUnsignedVarInt(0); this.writeUnsignedVarInt(this.links.length); } }; //#endregion export { AddActorPacket as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkQWN0b3JQYWNrZXQuZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25ldHdvcmsvcGFja2V0L0FkZEFjdG9yUGFja2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICdAanNwcmlzbWFyaW5lL21hdGgnO1xuaW1wb3J0IHR5cGUgeyBNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2VudGl0eS9NZXRhZGF0YSc7XG5pbXBvcnQgSWRlbnRpZmllcnMgZnJvbSAnLi4vSWRlbnRpZmllcnMnO1xuaW1wb3J0IHsgTmV0d29ya1V0aWwgfSBmcm9tICcuLi9OZXR3b3JrVXRpbCc7XG5pbXBvcnQgRGF0YVBhY2tldCBmcm9tICcuL0RhdGFQYWNrZXQnO1xuXG4vKipcbiAqIFBhY2tldCBmb3IgYWRkaW5nIGFuIGVudGl0eSB0byB0aGUgZ2FtZS5cbiAqXG4gKiAqKkJvdW5kIFRvOioqIENsaWVudFxuICpcbiAqIHwgTmFtZSB8IFR5cGUgfCBOb3RlcyB8XG4gKiB8IC0tLS0gfDotLS0tOnw6LS0tLS06fFxuICogfCB1bmlxdWVFbnRpdHlJZCB8IFZhckxvbmcgfCB8XG4gKiB8IHJ1bnRpbWVFbnRpdHlJZCB8IFVuc2lnbmVkVmFyTG9uZyB8IHxcbiAqIHwgdHlwZSB8IFN0cmluZyB8IFRoZSBuYW1lc3BhY2VkIGVudGl0eSBJRCB8XG4gKiB8IHBvc2l0aW9uIHwgVmVjdG9yMyAoTEZsb2F0KSB8IFRoZSBlbnRpdHkncyBwb3NpdGlvbiB8XG4gKiB8IG1vdGlvbiB8IFZlY3RvcjMgKExGbG9hdCkgfCBUaGUgZW50aXR5J3MgbW90aW9uIHxcbiAqIHwgcGl0Y2ggfCBMRmxvYXQgfCAgfFxuICogfCB5YXcgfCBMRmxvYXQgfCAgfFxuICogfCBoZWFkWWF3IHwgTEZsb2F0IHwgIHxcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWRkQWN0b3JQYWNrZXQgZXh0ZW5kcyBEYXRhUGFja2V0IHtcbiAgICBwdWJsaWMgc3RhdGljIE5ldElEID0gSWRlbnRpZmllcnMuQWRkQWN0b3JQYWNrZXQ7XG5cbiAgICBwdWJsaWMgdW5pcXVlRW50aXR5SWQhOiBiaWdpbnQ7XG4gICAgcHVibGljIHJ1bnRpbWVFbnRpdHlJZCE6IGJpZ2ludDtcbiAgICBwdWJsaWMgdHlwZSE6IHN0cmluZztcbiAgICBwdWJsaWMgcG9zaXRpb246IFZlY3RvcjMgPSBuZXcgVmVjdG9yMygwLCAwLCAwKTtcbiAgICBwdWJsaWMgbW90aW9uOiBWZWN0b3IzID0gbmV3IFZlY3RvcjMoMCwgMCwgMCk7XG4gICAgcHVibGljIHBpdGNoITogbnVtYmVyO1xuICAgIHB1YmxpYyB5YXchOiBudW1iZXI7XG4gICAgcHVibGljIGhlYWRZYXchOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgYXR0cmlidXRlcyA9IFtdO1xuICAgIHB1YmxpYyBtZXRhZGF0YSE6IE1ldGFkYXRhO1xuICAgIHB1YmxpYyBsaW5rcyA9IFtdO1xuXG4gICAgcHVibGljIGVuY29kZVBheWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud3JpdGVWYXJMb25nKHRoaXMudW5pcXVlRW50aXR5SWQgfHwgdGhpcy5ydW50aW1lRW50aXR5SWQpO1xuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRWYXJMb25nKHRoaXMucnVudGltZUVudGl0eUlkKTtcblxuICAgICAgICBOZXR3b3JrVXRpbC53cml0ZVN0cmluZyh0aGlzLCB0aGlzLnR5cGUpO1xuXG4gICAgICAgIHRoaXMud3JpdGVGbG9hdExFKHRoaXMucG9zaXRpb24uZ2V0WCgpKTtcbiAgICAgICAgdGhpcy53cml0ZUZsb2F0TEUodGhpcy5wb3NpdGlvbi5nZXRZKCkpO1xuICAgICAgICB0aGlzLndyaXRlRmxvYXRMRSh0aGlzLnBvc2l0aW9uLmdldFooKSk7XG5cbiAgICAgICAgdGhpcy53cml0ZUZsb2F0TEUodGhpcy5tb3Rpb24uZ2V0WCgpKTtcbiAgICAgICAgdGhpcy53cml0ZUZsb2F0TEUodGhpcy5tb3Rpb24uZ2V0WSgpKTtcbiAgICAgICAgdGhpcy53cml0ZUZsb2F0TEUodGhpcy5tb3Rpb24uZ2V0WigpKTtcblxuICAgICAgICB0aGlzLndyaXRlRmxvYXRMRSh0aGlzLnBpdGNoKTtcbiAgICAgICAgdGhpcy53cml0ZUZsb2F0TEUodGhpcy55YXcpO1xuICAgICAgICB0aGlzLndyaXRlRmxvYXRMRSh0aGlzLmhlYWRZYXcpO1xuICAgICAgICB0aGlzLndyaXRlRmxvYXRMRSh0aGlzLnlhdyk7IC8vIGJvZHlZYXdcblxuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRWYXJJbnQoMCk7IC8vIFRPRE86IGF0dHJpYnV0ZXMuXG4gICAgICAgIHRoaXMubWV0YWRhdGEubmV0d29ya1NlcmlhbGl6ZSh0aGlzKTtcblxuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRWYXJJbnQoMCk7IC8vID8gdW5rbm93blxuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRWYXJJbnQoMCk7IC8vID8gdW5rbm93blxuXG4gICAgICAgIC8vIFRPRE86IGxpbmtzXG4gICAgICAgIHRoaXMud3JpdGVVbnNpZ25lZFZhckludCh0aGlzLmxpbmtzLmxlbmd0aCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsSUFBcUIsaUJBQXJCLGNBQTRDLFdBQVc7Q0FDbkQsT0FBYyxRQUFRLFlBQVk7Q0FFbEM7Q0FDQTtDQUNBO0NBQ0EsV0FBMkIsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDO0NBQzlDLFNBQXlCLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQztDQUM1QztDQUNBO0NBQ0E7Q0FFQSxhQUFvQixDQUFDO0NBQ3JCO0NBQ0EsUUFBZSxDQUFDO0NBRWhCLGdCQUE2QjtFQUN6QixLQUFLLGFBQWEsS0FBSyxrQkFBa0IsS0FBSyxlQUFlO0VBQzdELEtBQUsscUJBQXFCLEtBQUssZUFBZTtFQUU5QyxZQUFZLFlBQVksTUFBTSxLQUFLLElBQUk7RUFFdkMsS0FBSyxhQUFhLEtBQUssU0FBUyxLQUFLLENBQUM7RUFDdEMsS0FBSyxhQUFhLEtBQUssU0FBUyxLQUFLLENBQUM7RUFDdEMsS0FBSyxhQUFhLEtBQUssU0FBUyxLQUFLLENBQUM7RUFFdEMsS0FBSyxhQUFhLEtBQUssT0FBTyxLQUFLLENBQUM7RUFDcEMsS0FBSyxhQUFhLEtBQUssT0FBTyxLQUFLLENBQUM7RUFDcEMsS0FBSyxhQUFhLEtBQUssT0FBTyxLQUFLLENBQUM7RUFFcEMsS0FBSyxhQUFhLEtBQUssS0FBSztFQUM1QixLQUFLLGFBQWEsS0FBSyxHQUFHO0VBQzFCLEtBQUssYUFBYSxLQUFLLE9BQU87RUFDOUIsS0FBSyxhQUFhLEtBQUssR0FBRztFQUUxQixLQUFLLG9CQUFvQixDQUFDO0VBQzFCLEtBQUssU0FBUyxpQkFBaUIsSUFBSTtFQUVuQyxLQUFLLG9CQUFvQixDQUFDO0VBQzFCLEtBQUssb0JBQW9CLENBQUM7RUFHMUIsS0FBSyxvQkFBb0IsS0FBSyxNQUFNLE1BQU07Q0FDOUM7QUFDSiJ9