1 /* 2 * This file was automatically generated by sel-utils and 3 * released under the MIT License. 4 * 5 * License: https://github.com/sel-project/sel-utils/blob/master/LICENSE 6 * Repository: https://github.com/sel-project/sel-utils 7 * Generated from https://github.com/sel-project/sel-utils/blob/master/xml/metadata/java315.xml 8 */ 9 module sul.metadata.java315; 10 11 import std.typecons : Tuple, tuple; 12 13 import sul.utils.buffer : Buffer; 14 import sul.utils.metadataflags; 15 import sul.utils.var; 16 17 static import sul.protocol.java315.types; 18 19 alias Changed(T) = Tuple!(T, "value", bool, "changed"); 20 21 enum MetadataType : ubyte { 22 23 BYTE = 0, 24 INT = 1, 25 FLOAT = 2, 26 STRING = 3, 27 CHAT = 4, 28 SLOT = 5, 29 BOOL = 6, 30 ROTATION = 7, 31 POSITION = 8, 32 OPTIONAL_POSITION = 9, 33 DIRECTION = 10, 34 UUID = 11, 35 BLOCK = 12, 36 } 37 38 class Metadata { 39 40 public enum ENTITY_FLAGS : size_t { 41 ON_FIRE = 0, 42 SNEAKING = 1, 43 SPRINTING = 3, 44 INVISIBLE = 5, 45 GLOWING = 6, 46 GLIDING = 7, 47 } 48 public enum ubyte AIR = 1; 49 public enum ubyte NAMETAG = 2; 50 public enum ubyte SHOW_NAMETAG = 3; 51 public enum ubyte SILENT = 4; 52 public enum ubyte NO_GRAVITY = 5; 53 public enum ubyte POTION = 6; 54 public enum ubyte SPAWN_POSITION = 6; 55 public enum ubyte RADIUS = 6; 56 public enum ubyte COLOR = 7; 57 public enum ubyte IS_SINGLE_POINT = 8; 58 public enum ubyte PARTICLE_ID = 9; 59 public enum ubyte PARTICLE_PARAMETER_1 = 10; 60 public enum ubyte PARTICLE_PARAMETER_2 = 11; 61 public enum ubyte HOOKED_ENTITY = 6; 62 public enum ARROW_FLAGS : size_t { 63 CRITICAL = 0, 64 } 65 public enum ubyte TIME_SINCE_LAST_HIT = 6; 66 public enum ubyte FORWARD_DIRECTION = 7; 67 public enum ubyte DAMAGE_TAKEN = 8; 68 public enum ubyte BOAT_VARIANT = 9; 69 public enum ubyte RIGHT_PADDLE_TURNING = 10; 70 public enum ubyte LEFT_PADDLE_TURNING = 11; 71 public enum ubyte BEAM_TARGET = 6; 72 public enum ubyte SHOW_BOTTOM = 7; 73 public enum ubyte FIREWORK = 6; 74 public enum ubyte ITEM = 6; 75 public enum ubyte ROTATION = 7; 76 public enum LIVING_FLAGS : size_t { 77 HAND_ACTIVE = 0, 78 OFFHAND = 1, 79 } 80 public enum ubyte HEALTH = 7; 81 public enum ubyte POTION_COLOR = 8; 82 public enum ubyte POTION_AMBIENT = 9; 83 public enum ubyte ARROWS = 10; 84 public enum ubyte ADDITIONAL_HEARTS = 11; 85 public enum ubyte SCORE = 12; 86 public enum SKIN_PARTS : size_t { 87 CAPE = 0, 88 JACKET = 1, 89 LEFT_SLEEVE = 2, 90 RIGHT_SLEEVE = 3, 91 LEFT_PANTS = 4, 92 RIGHT_PANTS = 5, 93 HAT = 6, 94 } 95 public enum ubyte MAIN_HAND = 14; 96 public enum ARMOR_STAND_FLAGS : size_t { 97 IS_SMALL = 0, 98 HAS_ARMS = 2, 99 NO_BASE_PLATE = 3, 100 SET_MARKER = 4, 101 } 102 public enum ubyte HEAD_ROTATION = 12; 103 public enum ubyte BODY_ROTATION = 13; 104 public enum ubyte LEFT_ARM_ROTATION = 14; 105 public enum ubyte RIGHT_ARM_ROTATION = 15; 106 public enum ubyte LEFT_LEG_ROTATION = 16; 107 public enum ubyte RIGHT_LEG_ROTATION = 17; 108 public enum INSTENTIENT_FLAGS : size_t { 109 NO_AI = 0, 110 LEFT_HANDED = 1, 111 } 112 public enum ubyte HANGING = 12; 113 public enum ubyte BABY = 12; 114 public enum HORSE_FLAGS : size_t { 115 HORSE_TAMED = 1, 116 HORSE_SADDLED = 2, 117 HORSE_CHESTED = 3, 118 HORSE_EATING = 5, 119 HORSE_REARING = 6, 120 MOUTH_OPEN = 7, 121 } 122 public enum ubyte OWNER_UUID = 14; 123 public enum ubyte HORSE_VARIANT = 15; 124 public enum ubyte HORSE_ARMOR = 16; 125 public enum ubyte CHESTED = 15; 126 public enum ubyte LLAMA_STRENGTH = 16; 127 public enum ubyte CARPET_COLOR = 17; 128 public enum ubyte LLAMA_VARIANT = 18; 129 public enum ubyte PIG_SADDLED = 13; 130 public enum ubyte RABBIT_VARIANT = 13; 131 public enum ubyte STANDING_UP = 13; 132 public enum SHEEP_FLAGS_AND_COLOR : size_t { 133 SHEARED = 7, 134 } 135 public enum TAMEABLE_FLAGS : size_t { 136 SITTING = 0, 137 ANGRY = 1, 138 TAMED = 2, 139 } 140 public enum ubyte OCELOT_VARIANT = 15; 141 public enum ubyte WOLF_HEALTH = 15; 142 public enum ubyte BEGGING = 16; 143 public enum ubyte COLLAR_COLOR = 17; 144 public enum ubyte PROFESSION = 13; 145 public enum ubyte CREATED_BY_PLAYER = 12; 146 public enum SNOWMAN_FLAGS : size_t { 147 PUMPKINLESS = 4, 148 } 149 public enum ubyte SHULKER_DIRECTION = 12; 150 public enum ubyte SHULKER_ATTACHMENT = 13; 151 public enum ubyte SHULKER_SHIELD_HEIGHT = 14; 152 public enum ubyte SHULKER_COLOR = 15; 153 public enum ubyte BLAZE_ON_FIRE = 12; 154 public enum ubyte CREEPER_STATE = 12; 155 public enum ubyte CHARGED = 13; 156 public enum ubyte IGNITED = 14; 157 public enum ubyte RECTRACTING_SPIKES = 12; 158 public enum ubyte GUARDIAN_TARGET = 13; 159 public enum ubyte SPELL = 12; 160 public enum ubyte ATTACK_MODE = 12; 161 public enum ubyte SWINGING_ARMS = 12; 162 public enum ubyte CLIMBING = 12; 163 public enum ubyte CENTER_HEAD_TARGET = 12; 164 public enum ubyte LEFT_HEAD_TARGET = 13; 165 public enum ubyte RIGHT_HEAD_TARGET = 14; 166 public enum ubyte INVULNERABLE_TIME = 15; 167 public enum ubyte HANDS_HELD_UP = 14; 168 public enum ubyte CONVERTING = 15; 169 public enum ubyte ZOMBIE_VILLAGER_PROFESSION = 16; 170 public enum ubyte CARRIED_BLOCK = 12; 171 public enum ubyte SCREAMING = 13; 172 public enum ubyte DRAGON_PHASE = 12; 173 public enum ubyte GHAST_ATTACKING = 12; 174 public enum ubyte SLIME_SIZE = 12; 175 public enum ubyte SHAKING_POWER = 6; 176 public enum ubyte SHAKING_DIRECTION = 7; 177 public enum ubyte SHAKING_MULTIPLIER = 8; 178 public enum ubyte MINECART_BLOCK = 9; 179 public enum ubyte MINECART_BLOCK_POSITION = 10; 180 public enum ubyte MINECART_CUSTOM_BLOCK = 11; 181 public enum ubyte FURNACE_POWERED = 12; 182 public enum ubyte COMMAND = 12; 183 public enum ubyte LAST_OUTPUT = 13; 184 public enum ubyte FUSE_TIME = 6; 185 186 public DecodedMetadata[] decoded; 187 188 private bool _cached = false; 189 private ubyte[] _cache; 190 191 private void delegate(Buffer) pure nothrow @safe[] _changed; 192 193 private MetadataFlags!(byte) _entityFlags; 194 private Changed!(uint) _air = tuple(cast(uint)300, false); 195 private Changed!(string) _nametag; 196 private Changed!(bool) _showNametag; 197 private Changed!(bool) _silent; 198 private Changed!(bool) _noGravity; 199 private Changed!(sul.protocol.java315.types.Slot) _potion; 200 private Changed!(ulong) _spawnPosition; 201 private Changed!(float) _radius = tuple(cast(float)0.5, false); 202 private Changed!(uint) _color; 203 private Changed!(bool) _isSinglePoint; 204 private Changed!(uint) _particleId; 205 private Changed!(uint) _particleParameter1; 206 private Changed!(uint) _particleParameter2; 207 private Changed!(uint) _hookedEntity; 208 private Changed!(MetadataFlags!(byte)) _arrowFlags; 209 private Changed!(uint) _timeSinceLastHit; 210 private Changed!(uint) _forwardDirection = tuple(cast(uint)1, false); 211 private Changed!(float) _damageTaken = tuple(cast(float)0, false); 212 private Changed!(uint) _boatVariant; 213 private Changed!(bool) _rightPaddleTurning; 214 private Changed!(bool) _leftPaddleTurning; 215 private Changed!(sul.protocol.java315.types.OptionalPosition) _beamTarget; 216 private Changed!(bool) _showBottom; 217 private Changed!(sul.protocol.java315.types.Slot) _firework; 218 private Changed!(sul.protocol.java315.types.Slot) _item; 219 private Changed!(uint) _rotation; 220 private Changed!(MetadataFlags!(byte)) _livingFlags; 221 private Changed!(float) _health = tuple(cast(float)1, false); 222 private Changed!(uint) _potionColor; 223 private Changed!(bool) _potionAmbient; 224 private Changed!(uint) _arrows; 225 private Changed!(float) _additionalHearts = tuple(cast(float)0, false); 226 private Changed!(uint) _score; 227 private Changed!(MetadataFlags!(byte)) _skinParts = tuple(cast(MetadataFlags!(byte))0, false); 228 private Changed!(byte) _mainHand = tuple(cast(byte)1, false); 229 private Changed!(MetadataFlags!(byte)) _armorStandFlags; 230 private Changed!(Tuple!(float, "x", float, "y", float, "z")) _headRotation; 231 private Changed!(Tuple!(float, "x", float, "y", float, "z")) _bodyRotation; 232 private Changed!(Tuple!(float, "x", float, "y", float, "z")) _leftArmRotation; 233 private Changed!(Tuple!(float, "x", float, "y", float, "z")) _rightArmRotation; 234 private Changed!(Tuple!(float, "x", float, "y", float, "z")) _leftLegRotation; 235 private Changed!(Tuple!(float, "x", float, "y", float, "z")) _rightLegRotation; 236 private Changed!(MetadataFlags!(byte)) _instentientFlags; 237 private Changed!(byte) _hanging; 238 private Changed!(bool) _baby; 239 private Changed!(MetadataFlags!(byte)) _horseFlags; 240 private Changed!(sul.protocol.java315.types.OptionalUuid) _ownerUuid; 241 private Changed!(uint) _horseVariant; 242 private Changed!(uint) _horseArmor; 243 private Changed!(bool) _chested; 244 private Changed!(uint) _llamaStrength; 245 private Changed!(uint) _carpetColor = tuple(cast(uint)-1, false); 246 private Changed!(uint) _llamaVariant; 247 private Changed!(bool) _pigSaddled; 248 private Changed!(uint) _rabbitVariant; 249 private Changed!(bool) _standingUp; 250 private Changed!(MetadataFlags!(byte)) _sheepFlagsAndColor; 251 private Changed!(MetadataFlags!(byte)) _tameableFlags; 252 private Changed!(uint) _ocelotVariant; 253 private Changed!(float) _wolfHealth; 254 private Changed!(bool) _begging; 255 private Changed!(uint) _collarColor = tuple(cast(uint)14, false); 256 private Changed!(uint) _profession; 257 private Changed!(byte) _createdByPlayer; 258 private Changed!(MetadataFlags!(byte)) _snowmanFlags; 259 private Changed!(uint) _shulkerDirection; 260 private Changed!(sul.protocol.java315.types.OptionalPosition) _shulkerAttachment; 261 private Changed!(byte) _shulkerShieldHeight; 262 private Changed!(byte) _shulkerColor; 263 private Changed!(byte) _blazeOnFire; 264 private Changed!(uint) _creeperState = tuple(cast(uint)-1, false); 265 private Changed!(bool) _charged; 266 private Changed!(bool) _ignited; 267 private Changed!(bool) _rectractingSpikes; 268 private Changed!(uint) _guardianTarget; 269 private Changed!(byte) _spell; 270 private Changed!(byte) _attackMode; 271 private Changed!(bool) _swingingArms; 272 private Changed!(byte) _climbing; 273 private Changed!(uint) _centerHeadTarget; 274 private Changed!(uint) _leftHeadTarget; 275 private Changed!(uint) _rightHeadTarget; 276 private Changed!(uint) _invulnerableTime; 277 private Changed!(bool) _handsHeldUp; 278 private Changed!(bool) _converting; 279 private Changed!(uint) _zombieVillagerProfession; 280 private Changed!(uint) _carriedBlock; 281 private Changed!(bool) _screaming; 282 private Changed!(uint) _dragonPhase; 283 private Changed!(bool) _ghastAttacking; 284 private Changed!(uint) _slimeSize = tuple(cast(uint)1, false); 285 private Changed!(uint) _shakingPower; 286 private Changed!(uint) _shakingDirection; 287 private Changed!(float) _shakingMultiplier = tuple(cast(float)0, false); 288 private Changed!(uint) _minecartBlock; 289 private Changed!(uint) _minecartBlockPosition = tuple(cast(uint)6, false); 290 private Changed!(bool) _minecartCustomBlock; 291 private Changed!(bool) _furnacePowered; 292 private Changed!(string) _command; 293 private Changed!(string) _lastOutput; 294 private Changed!(uint) _fuseTime; 295 296 public pure nothrow @safe this() { 297 this.reset(); 298 } 299 300 public pure nothrow @safe void reset() { 301 this._changed = [ 302 &this.encodeEntityFlags, 303 ]; 304 } 305 306 public pure nothrow @property @safe @nogc byte entityFlags() { 307 return _entityFlags; 308 } 309 310 public pure nothrow @property @safe byte entityFlags(byte value) { 311 this._cached = false; 312 this._entityFlags = value; 313 return value; 314 } 315 316 public pure nothrow @safe encodeEntityFlags(Buffer buffer) { 317 with(buffer) { 318 writeBigEndianUbyte(0); 319 writeBigEndianUbyte(0); 320 writeBigEndianByte(this._entityFlags); 321 } 322 } 323 324 public pure nothrow @property @safe bool onFire() { 325 return _entityFlags._0; 326 } 327 328 public pure nothrow @property @safe bool onFire(bool value) { 329 _entityFlags._0 = value; 330 return value; 331 } 332 333 public pure nothrow @property @safe bool sneaking() { 334 return _entityFlags._1; 335 } 336 337 public pure nothrow @property @safe bool sneaking(bool value) { 338 _entityFlags._1 = value; 339 return value; 340 } 341 342 public pure nothrow @property @safe bool sprinting() { 343 return _entityFlags._3; 344 } 345 346 public pure nothrow @property @safe bool sprinting(bool value) { 347 _entityFlags._3 = value; 348 return value; 349 } 350 351 public pure nothrow @property @safe bool invisible() { 352 return _entityFlags._5; 353 } 354 355 public pure nothrow @property @safe bool invisible(bool value) { 356 _entityFlags._5 = value; 357 return value; 358 } 359 360 public pure nothrow @property @safe bool glowing() { 361 return _entityFlags._6; 362 } 363 364 public pure nothrow @property @safe bool glowing(bool value) { 365 _entityFlags._6 = value; 366 return value; 367 } 368 369 public pure nothrow @property @safe bool gliding() { 370 return _entityFlags._7; 371 } 372 373 public pure nothrow @property @safe bool gliding(bool value) { 374 _entityFlags._7 = value; 375 return value; 376 } 377 378 public pure nothrow @property @safe @nogc uint air() { 379 return _air.value; 380 } 381 382 public pure nothrow @property @safe uint air(uint value) { 383 this._cached = false; 384 this._air.value = value; 385 if(!this._air.changed) { 386 this._air.changed = true; 387 this._changed ~= &this.encodeAir; 388 } 389 return value; 390 } 391 392 public pure nothrow @safe encodeAir(Buffer buffer) { 393 with(buffer) { 394 writeBigEndianUbyte(1); 395 writeBigEndianUbyte(1); 396 writeBytes(varuint.encode(this._air.value)); 397 } 398 } 399 400 public pure nothrow @property @safe @nogc string nametag() { 401 return _nametag.value; 402 } 403 404 public pure nothrow @property @safe string nametag(string value) { 405 this._cached = false; 406 this._nametag.value = value; 407 if(!this._nametag.changed) { 408 this._nametag.changed = true; 409 this._changed ~= &this.encodeNametag; 410 } 411 return value; 412 } 413 414 public pure nothrow @safe encodeNametag(Buffer buffer) { 415 with(buffer) { 416 writeBigEndianUbyte(2); 417 writeBigEndianUbyte(3); 418 writeBytes(varuint.encode(cast(uint)this._nametag.value.length)); writeString(this._nametag.value); 419 } 420 } 421 422 public pure nothrow @property @safe @nogc bool showNametag() { 423 return _showNametag.value; 424 } 425 426 public pure nothrow @property @safe bool showNametag(bool value) { 427 this._cached = false; 428 this._showNametag.value = value; 429 if(!this._showNametag.changed) { 430 this._showNametag.changed = true; 431 this._changed ~= &this.encodeShowNametag; 432 } 433 return value; 434 } 435 436 public pure nothrow @safe encodeShowNametag(Buffer buffer) { 437 with(buffer) { 438 writeBigEndianUbyte(3); 439 writeBigEndianUbyte(6); 440 writeBigEndianBool(this._showNametag.value); 441 } 442 } 443 444 public pure nothrow @property @safe @nogc bool silent() { 445 return _silent.value; 446 } 447 448 public pure nothrow @property @safe bool silent(bool value) { 449 this._cached = false; 450 this._silent.value = value; 451 if(!this._silent.changed) { 452 this._silent.changed = true; 453 this._changed ~= &this.encodeSilent; 454 } 455 return value; 456 } 457 458 public pure nothrow @safe encodeSilent(Buffer buffer) { 459 with(buffer) { 460 writeBigEndianUbyte(4); 461 writeBigEndianUbyte(6); 462 writeBigEndianBool(this._silent.value); 463 } 464 } 465 466 public pure nothrow @property @safe @nogc bool noGravity() { 467 return _noGravity.value; 468 } 469 470 public pure nothrow @property @safe bool noGravity(bool value) { 471 this._cached = false; 472 this._noGravity.value = value; 473 if(!this._noGravity.changed) { 474 this._noGravity.changed = true; 475 this._changed ~= &this.encodeNoGravity; 476 } 477 return value; 478 } 479 480 public pure nothrow @safe encodeNoGravity(Buffer buffer) { 481 with(buffer) { 482 writeBigEndianUbyte(5); 483 writeBigEndianUbyte(6); 484 writeBigEndianBool(this._noGravity.value); 485 } 486 } 487 488 public pure nothrow @property @safe @nogc sul.protocol.java315.types.Slot potion() { 489 return _potion.value; 490 } 491 492 public pure nothrow @property @safe sul.protocol.java315.types.Slot potion(sul.protocol.java315.types.Slot value) { 493 this._cached = false; 494 this._potion.value = value; 495 if(!this._potion.changed) { 496 this._potion.changed = true; 497 this._changed ~= &this.encodePotion; 498 } 499 return value; 500 } 501 502 public pure nothrow @safe encodePotion(Buffer buffer) { 503 with(buffer) { 504 writeBigEndianUbyte(6); 505 writeBigEndianUbyte(5); 506 this._potion.value.encode(bufferInstance); 507 } 508 } 509 510 public pure nothrow @property @safe @nogc ulong spawnPosition() { 511 return _spawnPosition.value; 512 } 513 514 public pure nothrow @property @safe ulong spawnPosition(ulong value) { 515 this._cached = false; 516 this._spawnPosition.value = value; 517 if(!this._spawnPosition.changed) { 518 this._spawnPosition.changed = true; 519 this._changed ~= &this.encodeSpawnPosition; 520 } 521 return value; 522 } 523 524 public pure nothrow @safe encodeSpawnPosition(Buffer buffer) { 525 with(buffer) { 526 writeBigEndianUbyte(6); 527 writeBigEndianUbyte(8); 528 writeBigEndianUlong(this._spawnPosition.value); 529 } 530 } 531 532 public pure nothrow @property @safe @nogc float radius() { 533 return _radius.value; 534 } 535 536 public pure nothrow @property @safe float radius(float value) { 537 this._cached = false; 538 this._radius.value = value; 539 if(!this._radius.changed) { 540 this._radius.changed = true; 541 this._changed ~= &this.encodeRadius; 542 } 543 return value; 544 } 545 546 public pure nothrow @safe encodeRadius(Buffer buffer) { 547 with(buffer) { 548 writeBigEndianUbyte(6); 549 writeBigEndianUbyte(2); 550 writeBigEndianFloat(this._radius.value); 551 } 552 } 553 554 public pure nothrow @property @safe @nogc uint color() { 555 return _color.value; 556 } 557 558 public pure nothrow @property @safe uint color(uint value) { 559 this._cached = false; 560 this._color.value = value; 561 if(!this._color.changed) { 562 this._color.changed = true; 563 this._changed ~= &this.encodeColor; 564 } 565 return value; 566 } 567 568 public pure nothrow @safe encodeColor(Buffer buffer) { 569 with(buffer) { 570 writeBigEndianUbyte(7); 571 writeBigEndianUbyte(1); 572 writeBytes(varuint.encode(this._color.value)); 573 } 574 } 575 576 public pure nothrow @property @safe @nogc bool isSinglePoint() { 577 return _isSinglePoint.value; 578 } 579 580 public pure nothrow @property @safe bool isSinglePoint(bool value) { 581 this._cached = false; 582 this._isSinglePoint.value = value; 583 if(!this._isSinglePoint.changed) { 584 this._isSinglePoint.changed = true; 585 this._changed ~= &this.encodeIsSinglePoint; 586 } 587 return value; 588 } 589 590 public pure nothrow @safe encodeIsSinglePoint(Buffer buffer) { 591 with(buffer) { 592 writeBigEndianUbyte(8); 593 writeBigEndianUbyte(6); 594 writeBigEndianBool(this._isSinglePoint.value); 595 } 596 } 597 598 public pure nothrow @property @safe @nogc uint particleId() { 599 return _particleId.value; 600 } 601 602 public pure nothrow @property @safe uint particleId(uint value) { 603 this._cached = false; 604 this._particleId.value = value; 605 if(!this._particleId.changed) { 606 this._particleId.changed = true; 607 this._changed ~= &this.encodeParticleId; 608 } 609 return value; 610 } 611 612 public pure nothrow @safe encodeParticleId(Buffer buffer) { 613 with(buffer) { 614 writeBigEndianUbyte(9); 615 writeBigEndianUbyte(1); 616 writeBytes(varuint.encode(this._particleId.value)); 617 } 618 } 619 620 public pure nothrow @property @safe @nogc uint particleParameter1() { 621 return _particleParameter1.value; 622 } 623 624 public pure nothrow @property @safe uint particleParameter1(uint value) { 625 this._cached = false; 626 this._particleParameter1.value = value; 627 if(!this._particleParameter1.changed) { 628 this._particleParameter1.changed = true; 629 this._changed ~= &this.encodeParticleParameter1; 630 } 631 return value; 632 } 633 634 public pure nothrow @safe encodeParticleParameter1(Buffer buffer) { 635 with(buffer) { 636 writeBigEndianUbyte(10); 637 writeBigEndianUbyte(1); 638 writeBytes(varuint.encode(this._particleParameter1.value)); 639 } 640 } 641 642 public pure nothrow @property @safe @nogc uint particleParameter2() { 643 return _particleParameter2.value; 644 } 645 646 public pure nothrow @property @safe uint particleParameter2(uint value) { 647 this._cached = false; 648 this._particleParameter2.value = value; 649 if(!this._particleParameter2.changed) { 650 this._particleParameter2.changed = true; 651 this._changed ~= &this.encodeParticleParameter2; 652 } 653 return value; 654 } 655 656 public pure nothrow @safe encodeParticleParameter2(Buffer buffer) { 657 with(buffer) { 658 writeBigEndianUbyte(11); 659 writeBigEndianUbyte(1); 660 writeBytes(varuint.encode(this._particleParameter2.value)); 661 } 662 } 663 664 public pure nothrow @property @safe @nogc uint hookedEntity() { 665 return _hookedEntity.value; 666 } 667 668 public pure nothrow @property @safe uint hookedEntity(uint value) { 669 this._cached = false; 670 this._hookedEntity.value = value; 671 if(!this._hookedEntity.changed) { 672 this._hookedEntity.changed = true; 673 this._changed ~= &this.encodeHookedEntity; 674 } 675 return value; 676 } 677 678 public pure nothrow @safe encodeHookedEntity(Buffer buffer) { 679 with(buffer) { 680 writeBigEndianUbyte(6); 681 writeBigEndianUbyte(1); 682 writeBytes(varuint.encode(this._hookedEntity.value)); 683 } 684 } 685 686 public pure nothrow @property @safe @nogc byte arrowFlags() { 687 return _arrowFlags.value; 688 } 689 690 public pure nothrow @property @safe byte arrowFlags(byte value) { 691 this._cached = false; 692 this._arrowFlags.value = value; 693 if(!this._arrowFlags.changed) { 694 this._arrowFlags.changed = true; 695 this._changed ~= &this.encodeArrowFlags; 696 } 697 return value; 698 } 699 700 public pure nothrow @safe encodeArrowFlags(Buffer buffer) { 701 with(buffer) { 702 writeBigEndianUbyte(6); 703 writeBigEndianUbyte(0); 704 writeBigEndianByte(this._arrowFlags.value); 705 } 706 } 707 708 public pure nothrow @property @safe bool critical() { 709 return _arrowFlags.value._0; 710 } 711 712 public pure nothrow @property @safe bool critical(bool value) { 713 _arrowFlags.value._0 = value; 714 return value; 715 } 716 717 public pure nothrow @property @safe @nogc uint timeSinceLastHit() { 718 return _timeSinceLastHit.value; 719 } 720 721 public pure nothrow @property @safe uint timeSinceLastHit(uint value) { 722 this._cached = false; 723 this._timeSinceLastHit.value = value; 724 if(!this._timeSinceLastHit.changed) { 725 this._timeSinceLastHit.changed = true; 726 this._changed ~= &this.encodeTimeSinceLastHit; 727 } 728 return value; 729 } 730 731 public pure nothrow @safe encodeTimeSinceLastHit(Buffer buffer) { 732 with(buffer) { 733 writeBigEndianUbyte(6); 734 writeBigEndianUbyte(1); 735 writeBytes(varuint.encode(this._timeSinceLastHit.value)); 736 } 737 } 738 739 public pure nothrow @property @safe @nogc uint forwardDirection() { 740 return _forwardDirection.value; 741 } 742 743 public pure nothrow @property @safe uint forwardDirection(uint value) { 744 this._cached = false; 745 this._forwardDirection.value = value; 746 if(!this._forwardDirection.changed) { 747 this._forwardDirection.changed = true; 748 this._changed ~= &this.encodeForwardDirection; 749 } 750 return value; 751 } 752 753 public pure nothrow @safe encodeForwardDirection(Buffer buffer) { 754 with(buffer) { 755 writeBigEndianUbyte(7); 756 writeBigEndianUbyte(1); 757 writeBytes(varuint.encode(this._forwardDirection.value)); 758 } 759 } 760 761 public pure nothrow @property @safe @nogc float damageTaken() { 762 return _damageTaken.value; 763 } 764 765 public pure nothrow @property @safe float damageTaken(float value) { 766 this._cached = false; 767 this._damageTaken.value = value; 768 if(!this._damageTaken.changed) { 769 this._damageTaken.changed = true; 770 this._changed ~= &this.encodeDamageTaken; 771 } 772 return value; 773 } 774 775 public pure nothrow @safe encodeDamageTaken(Buffer buffer) { 776 with(buffer) { 777 writeBigEndianUbyte(8); 778 writeBigEndianUbyte(2); 779 writeBigEndianFloat(this._damageTaken.value); 780 } 781 } 782 783 public pure nothrow @property @safe @nogc uint boatVariant() { 784 return _boatVariant.value; 785 } 786 787 public pure nothrow @property @safe uint boatVariant(uint value) { 788 this._cached = false; 789 this._boatVariant.value = value; 790 if(!this._boatVariant.changed) { 791 this._boatVariant.changed = true; 792 this._changed ~= &this.encodeBoatVariant; 793 } 794 return value; 795 } 796 797 public pure nothrow @safe encodeBoatVariant(Buffer buffer) { 798 with(buffer) { 799 writeBigEndianUbyte(9); 800 writeBigEndianUbyte(1); 801 writeBytes(varuint.encode(this._boatVariant.value)); 802 } 803 } 804 805 public pure nothrow @property @safe @nogc bool rightPaddleTurning() { 806 return _rightPaddleTurning.value; 807 } 808 809 public pure nothrow @property @safe bool rightPaddleTurning(bool value) { 810 this._cached = false; 811 this._rightPaddleTurning.value = value; 812 if(!this._rightPaddleTurning.changed) { 813 this._rightPaddleTurning.changed = true; 814 this._changed ~= &this.encodeRightPaddleTurning; 815 } 816 return value; 817 } 818 819 public pure nothrow @safe encodeRightPaddleTurning(Buffer buffer) { 820 with(buffer) { 821 writeBigEndianUbyte(10); 822 writeBigEndianUbyte(6); 823 writeBigEndianBool(this._rightPaddleTurning.value); 824 } 825 } 826 827 public pure nothrow @property @safe @nogc bool leftPaddleTurning() { 828 return _leftPaddleTurning.value; 829 } 830 831 public pure nothrow @property @safe bool leftPaddleTurning(bool value) { 832 this._cached = false; 833 this._leftPaddleTurning.value = value; 834 if(!this._leftPaddleTurning.changed) { 835 this._leftPaddleTurning.changed = true; 836 this._changed ~= &this.encodeLeftPaddleTurning; 837 } 838 return value; 839 } 840 841 public pure nothrow @safe encodeLeftPaddleTurning(Buffer buffer) { 842 with(buffer) { 843 writeBigEndianUbyte(11); 844 writeBigEndianUbyte(6); 845 writeBigEndianBool(this._leftPaddleTurning.value); 846 } 847 } 848 849 public pure nothrow @property @safe @nogc sul.protocol.java315.types.OptionalPosition beamTarget() { 850 return _beamTarget.value; 851 } 852 853 public pure nothrow @property @safe sul.protocol.java315.types.OptionalPosition beamTarget(sul.protocol.java315.types.OptionalPosition value) { 854 this._cached = false; 855 this._beamTarget.value = value; 856 if(!this._beamTarget.changed) { 857 this._beamTarget.changed = true; 858 this._changed ~= &this.encodeBeamTarget; 859 } 860 return value; 861 } 862 863 public pure nothrow @safe encodeBeamTarget(Buffer buffer) { 864 with(buffer) { 865 writeBigEndianUbyte(6); 866 writeBigEndianUbyte(9); 867 this._beamTarget.value.encode(bufferInstance); 868 } 869 } 870 871 public pure nothrow @property @safe @nogc bool showBottom() { 872 return _showBottom.value; 873 } 874 875 public pure nothrow @property @safe bool showBottom(bool value) { 876 this._cached = false; 877 this._showBottom.value = value; 878 if(!this._showBottom.changed) { 879 this._showBottom.changed = true; 880 this._changed ~= &this.encodeShowBottom; 881 } 882 return value; 883 } 884 885 public pure nothrow @safe encodeShowBottom(Buffer buffer) { 886 with(buffer) { 887 writeBigEndianUbyte(7); 888 writeBigEndianUbyte(6); 889 writeBigEndianBool(this._showBottom.value); 890 } 891 } 892 893 public pure nothrow @property @safe @nogc sul.protocol.java315.types.Slot firework() { 894 return _firework.value; 895 } 896 897 public pure nothrow @property @safe sul.protocol.java315.types.Slot firework(sul.protocol.java315.types.Slot value) { 898 this._cached = false; 899 this._firework.value = value; 900 if(!this._firework.changed) { 901 this._firework.changed = true; 902 this._changed ~= &this.encodeFirework; 903 } 904 return value; 905 } 906 907 public pure nothrow @safe encodeFirework(Buffer buffer) { 908 with(buffer) { 909 writeBigEndianUbyte(6); 910 writeBigEndianUbyte(5); 911 this._firework.value.encode(bufferInstance); 912 } 913 } 914 915 public pure nothrow @property @safe @nogc sul.protocol.java315.types.Slot item() { 916 return _item.value; 917 } 918 919 public pure nothrow @property @safe sul.protocol.java315.types.Slot item(sul.protocol.java315.types.Slot value) { 920 this._cached = false; 921 this._item.value = value; 922 if(!this._item.changed) { 923 this._item.changed = true; 924 this._changed ~= &this.encodeItem; 925 } 926 return value; 927 } 928 929 public pure nothrow @safe encodeItem(Buffer buffer) { 930 with(buffer) { 931 writeBigEndianUbyte(6); 932 writeBigEndianUbyte(5); 933 this._item.value.encode(bufferInstance); 934 } 935 } 936 937 public pure nothrow @property @safe @nogc uint rotation() { 938 return _rotation.value; 939 } 940 941 public pure nothrow @property @safe uint rotation(uint value) { 942 this._cached = false; 943 this._rotation.value = value; 944 if(!this._rotation.changed) { 945 this._rotation.changed = true; 946 this._changed ~= &this.encodeRotation; 947 } 948 return value; 949 } 950 951 public pure nothrow @safe encodeRotation(Buffer buffer) { 952 with(buffer) { 953 writeBigEndianUbyte(7); 954 writeBigEndianUbyte(1); 955 writeBytes(varuint.encode(this._rotation.value)); 956 } 957 } 958 959 public pure nothrow @property @safe @nogc byte livingFlags() { 960 return _livingFlags.value; 961 } 962 963 public pure nothrow @property @safe byte livingFlags(byte value) { 964 this._cached = false; 965 this._livingFlags.value = value; 966 if(!this._livingFlags.changed) { 967 this._livingFlags.changed = true; 968 this._changed ~= &this.encodeLivingFlags; 969 } 970 return value; 971 } 972 973 public pure nothrow @safe encodeLivingFlags(Buffer buffer) { 974 with(buffer) { 975 writeBigEndianUbyte(6); 976 writeBigEndianUbyte(0); 977 writeBigEndianByte(this._livingFlags.value); 978 } 979 } 980 981 public pure nothrow @property @safe bool handActive() { 982 return _livingFlags.value._0; 983 } 984 985 public pure nothrow @property @safe bool handActive(bool value) { 986 _livingFlags.value._0 = value; 987 return value; 988 } 989 990 public pure nothrow @property @safe bool offhand() { 991 return _livingFlags.value._1; 992 } 993 994 public pure nothrow @property @safe bool offhand(bool value) { 995 _livingFlags.value._1 = value; 996 return value; 997 } 998 999 public pure nothrow @property @safe @nogc float health() { 1000 return _health.value; 1001 } 1002 1003 public pure nothrow @property @safe float health(float value) { 1004 this._cached = false; 1005 this._health.value = value; 1006 if(!this._health.changed) { 1007 this._health.changed = true; 1008 this._changed ~= &this.encodeHealth; 1009 } 1010 return value; 1011 } 1012 1013 public pure nothrow @safe encodeHealth(Buffer buffer) { 1014 with(buffer) { 1015 writeBigEndianUbyte(7); 1016 writeBigEndianUbyte(2); 1017 writeBigEndianFloat(this._health.value); 1018 } 1019 } 1020 1021 public pure nothrow @property @safe @nogc uint potionColor() { 1022 return _potionColor.value; 1023 } 1024 1025 public pure nothrow @property @safe uint potionColor(uint value) { 1026 this._cached = false; 1027 this._potionColor.value = value; 1028 if(!this._potionColor.changed) { 1029 this._potionColor.changed = true; 1030 this._changed ~= &this.encodePotionColor; 1031 } 1032 return value; 1033 } 1034 1035 public pure nothrow @safe encodePotionColor(Buffer buffer) { 1036 with(buffer) { 1037 writeBigEndianUbyte(8); 1038 writeBigEndianUbyte(1); 1039 writeBytes(varuint.encode(this._potionColor.value)); 1040 } 1041 } 1042 1043 public pure nothrow @property @safe @nogc bool potionAmbient() { 1044 return _potionAmbient.value; 1045 } 1046 1047 public pure nothrow @property @safe bool potionAmbient(bool value) { 1048 this._cached = false; 1049 this._potionAmbient.value = value; 1050 if(!this._potionAmbient.changed) { 1051 this._potionAmbient.changed = true; 1052 this._changed ~= &this.encodePotionAmbient; 1053 } 1054 return value; 1055 } 1056 1057 public pure nothrow @safe encodePotionAmbient(Buffer buffer) { 1058 with(buffer) { 1059 writeBigEndianUbyte(9); 1060 writeBigEndianUbyte(6); 1061 writeBigEndianBool(this._potionAmbient.value); 1062 } 1063 } 1064 1065 public pure nothrow @property @safe @nogc uint arrows() { 1066 return _arrows.value; 1067 } 1068 1069 public pure nothrow @property @safe uint arrows(uint value) { 1070 this._cached = false; 1071 this._arrows.value = value; 1072 if(!this._arrows.changed) { 1073 this._arrows.changed = true; 1074 this._changed ~= &this.encodeArrows; 1075 } 1076 return value; 1077 } 1078 1079 public pure nothrow @safe encodeArrows(Buffer buffer) { 1080 with(buffer) { 1081 writeBigEndianUbyte(10); 1082 writeBigEndianUbyte(1); 1083 writeBytes(varuint.encode(this._arrows.value)); 1084 } 1085 } 1086 1087 public pure nothrow @property @safe @nogc float additionalHearts() { 1088 return _additionalHearts.value; 1089 } 1090 1091 public pure nothrow @property @safe float additionalHearts(float value) { 1092 this._cached = false; 1093 this._additionalHearts.value = value; 1094 if(!this._additionalHearts.changed) { 1095 this._additionalHearts.changed = true; 1096 this._changed ~= &this.encodeAdditionalHearts; 1097 } 1098 return value; 1099 } 1100 1101 public pure nothrow @safe encodeAdditionalHearts(Buffer buffer) { 1102 with(buffer) { 1103 writeBigEndianUbyte(11); 1104 writeBigEndianUbyte(2); 1105 writeBigEndianFloat(this._additionalHearts.value); 1106 } 1107 } 1108 1109 public pure nothrow @property @safe @nogc uint score() { 1110 return _score.value; 1111 } 1112 1113 public pure nothrow @property @safe uint score(uint value) { 1114 this._cached = false; 1115 this._score.value = value; 1116 if(!this._score.changed) { 1117 this._score.changed = true; 1118 this._changed ~= &this.encodeScore; 1119 } 1120 return value; 1121 } 1122 1123 public pure nothrow @safe encodeScore(Buffer buffer) { 1124 with(buffer) { 1125 writeBigEndianUbyte(12); 1126 writeBigEndianUbyte(1); 1127 writeBytes(varuint.encode(this._score.value)); 1128 } 1129 } 1130 1131 public pure nothrow @property @safe @nogc byte skinParts() { 1132 return _skinParts.value; 1133 } 1134 1135 public pure nothrow @property @safe byte skinParts(byte value) { 1136 this._cached = false; 1137 this._skinParts.value = value; 1138 if(!this._skinParts.changed) { 1139 this._skinParts.changed = true; 1140 this._changed ~= &this.encodeSkinParts; 1141 } 1142 return value; 1143 } 1144 1145 public pure nothrow @safe encodeSkinParts(Buffer buffer) { 1146 with(buffer) { 1147 writeBigEndianUbyte(13); 1148 writeBigEndianUbyte(0); 1149 writeBigEndianByte(this._skinParts.value); 1150 } 1151 } 1152 1153 public pure nothrow @property @safe bool cape() { 1154 return _skinParts.value._0; 1155 } 1156 1157 public pure nothrow @property @safe bool cape(bool value) { 1158 _skinParts.value._0 = value; 1159 return value; 1160 } 1161 1162 public pure nothrow @property @safe bool jacket() { 1163 return _skinParts.value._1; 1164 } 1165 1166 public pure nothrow @property @safe bool jacket(bool value) { 1167 _skinParts.value._1 = value; 1168 return value; 1169 } 1170 1171 public pure nothrow @property @safe bool leftSleeve() { 1172 return _skinParts.value._2; 1173 } 1174 1175 public pure nothrow @property @safe bool leftSleeve(bool value) { 1176 _skinParts.value._2 = value; 1177 return value; 1178 } 1179 1180 public pure nothrow @property @safe bool rightSleeve() { 1181 return _skinParts.value._3; 1182 } 1183 1184 public pure nothrow @property @safe bool rightSleeve(bool value) { 1185 _skinParts.value._3 = value; 1186 return value; 1187 } 1188 1189 public pure nothrow @property @safe bool leftPants() { 1190 return _skinParts.value._4; 1191 } 1192 1193 public pure nothrow @property @safe bool leftPants(bool value) { 1194 _skinParts.value._4 = value; 1195 return value; 1196 } 1197 1198 public pure nothrow @property @safe bool rightPants() { 1199 return _skinParts.value._5; 1200 } 1201 1202 public pure nothrow @property @safe bool rightPants(bool value) { 1203 _skinParts.value._5 = value; 1204 return value; 1205 } 1206 1207 public pure nothrow @property @safe bool hat() { 1208 return _skinParts.value._6; 1209 } 1210 1211 public pure nothrow @property @safe bool hat(bool value) { 1212 _skinParts.value._6 = value; 1213 return value; 1214 } 1215 1216 public pure nothrow @property @safe @nogc byte mainHand() { 1217 return _mainHand.value; 1218 } 1219 1220 public pure nothrow @property @safe byte mainHand(byte value) { 1221 this._cached = false; 1222 this._mainHand.value = value; 1223 if(!this._mainHand.changed) { 1224 this._mainHand.changed = true; 1225 this._changed ~= &this.encodeMainHand; 1226 } 1227 return value; 1228 } 1229 1230 public pure nothrow @safe encodeMainHand(Buffer buffer) { 1231 with(buffer) { 1232 writeBigEndianUbyte(14); 1233 writeBigEndianUbyte(0); 1234 writeBigEndianByte(this._mainHand.value); 1235 } 1236 } 1237 1238 public pure nothrow @property @safe @nogc byte armorStandFlags() { 1239 return _armorStandFlags.value; 1240 } 1241 1242 public pure nothrow @property @safe byte armorStandFlags(byte value) { 1243 this._cached = false; 1244 this._armorStandFlags.value = value; 1245 if(!this._armorStandFlags.changed) { 1246 this._armorStandFlags.changed = true; 1247 this._changed ~= &this.encodeArmorStandFlags; 1248 } 1249 return value; 1250 } 1251 1252 public pure nothrow @safe encodeArmorStandFlags(Buffer buffer) { 1253 with(buffer) { 1254 writeBigEndianUbyte(11); 1255 writeBigEndianUbyte(0); 1256 writeBigEndianByte(this._armorStandFlags.value); 1257 } 1258 } 1259 1260 public pure nothrow @property @safe bool isSmall() { 1261 return _armorStandFlags.value._0; 1262 } 1263 1264 public pure nothrow @property @safe bool isSmall(bool value) { 1265 _armorStandFlags.value._0 = value; 1266 return value; 1267 } 1268 1269 public pure nothrow @property @safe bool hasArms() { 1270 return _armorStandFlags.value._2; 1271 } 1272 1273 public pure nothrow @property @safe bool hasArms(bool value) { 1274 _armorStandFlags.value._2 = value; 1275 return value; 1276 } 1277 1278 public pure nothrow @property @safe bool noBasePlate() { 1279 return _armorStandFlags.value._3; 1280 } 1281 1282 public pure nothrow @property @safe bool noBasePlate(bool value) { 1283 _armorStandFlags.value._3 = value; 1284 return value; 1285 } 1286 1287 public pure nothrow @property @safe bool setMarker() { 1288 return _armorStandFlags.value._4; 1289 } 1290 1291 public pure nothrow @property @safe bool setMarker(bool value) { 1292 _armorStandFlags.value._4 = value; 1293 return value; 1294 } 1295 1296 public pure nothrow @property @safe @nogc Tuple!(float, "x", float, "y", float, "z") headRotation() { 1297 return _headRotation.value; 1298 } 1299 1300 public pure nothrow @property @safe Tuple!(float, "x", float, "y", float, "z") headRotation(Tuple!(float, "x", float, "y", float, "z") value) { 1301 this._cached = false; 1302 this._headRotation.value = value; 1303 if(!this._headRotation.changed) { 1304 this._headRotation.changed = true; 1305 this._changed ~= &this.encodeHeadRotation; 1306 } 1307 return value; 1308 } 1309 1310 public pure nothrow @safe encodeHeadRotation(Buffer buffer) { 1311 with(buffer) { 1312 writeBigEndianUbyte(12); 1313 writeBigEndianUbyte(7); 1314 writeBigEndianFloat(this._headRotation.value.x); writeBigEndianFloat(this._headRotation.value.y); writeBigEndianFloat(this._headRotation.value.z); 1315 } 1316 } 1317 1318 public pure nothrow @property @safe @nogc Tuple!(float, "x", float, "y", float, "z") bodyRotation() { 1319 return _bodyRotation.value; 1320 } 1321 1322 public pure nothrow @property @safe Tuple!(float, "x", float, "y", float, "z") bodyRotation(Tuple!(float, "x", float, "y", float, "z") value) { 1323 this._cached = false; 1324 this._bodyRotation.value = value; 1325 if(!this._bodyRotation.changed) { 1326 this._bodyRotation.changed = true; 1327 this._changed ~= &this.encodeBodyRotation; 1328 } 1329 return value; 1330 } 1331 1332 public pure nothrow @safe encodeBodyRotation(Buffer buffer) { 1333 with(buffer) { 1334 writeBigEndianUbyte(13); 1335 writeBigEndianUbyte(7); 1336 writeBigEndianFloat(this._bodyRotation.value.x); writeBigEndianFloat(this._bodyRotation.value.y); writeBigEndianFloat(this._bodyRotation.value.z); 1337 } 1338 } 1339 1340 public pure nothrow @property @safe @nogc Tuple!(float, "x", float, "y", float, "z") leftArmRotation() { 1341 return _leftArmRotation.value; 1342 } 1343 1344 public pure nothrow @property @safe Tuple!(float, "x", float, "y", float, "z") leftArmRotation(Tuple!(float, "x", float, "y", float, "z") value) { 1345 this._cached = false; 1346 this._leftArmRotation.value = value; 1347 if(!this._leftArmRotation.changed) { 1348 this._leftArmRotation.changed = true; 1349 this._changed ~= &this.encodeLeftArmRotation; 1350 } 1351 return value; 1352 } 1353 1354 public pure nothrow @safe encodeLeftArmRotation(Buffer buffer) { 1355 with(buffer) { 1356 writeBigEndianUbyte(14); 1357 writeBigEndianUbyte(7); 1358 writeBigEndianFloat(this._leftArmRotation.value.x); writeBigEndianFloat(this._leftArmRotation.value.y); writeBigEndianFloat(this._leftArmRotation.value.z); 1359 } 1360 } 1361 1362 public pure nothrow @property @safe @nogc Tuple!(float, "x", float, "y", float, "z") rightArmRotation() { 1363 return _rightArmRotation.value; 1364 } 1365 1366 public pure nothrow @property @safe Tuple!(float, "x", float, "y", float, "z") rightArmRotation(Tuple!(float, "x", float, "y", float, "z") value) { 1367 this._cached = false; 1368 this._rightArmRotation.value = value; 1369 if(!this._rightArmRotation.changed) { 1370 this._rightArmRotation.changed = true; 1371 this._changed ~= &this.encodeRightArmRotation; 1372 } 1373 return value; 1374 } 1375 1376 public pure nothrow @safe encodeRightArmRotation(Buffer buffer) { 1377 with(buffer) { 1378 writeBigEndianUbyte(15); 1379 writeBigEndianUbyte(7); 1380 writeBigEndianFloat(this._rightArmRotation.value.x); writeBigEndianFloat(this._rightArmRotation.value.y); writeBigEndianFloat(this._rightArmRotation.value.z); 1381 } 1382 } 1383 1384 public pure nothrow @property @safe @nogc Tuple!(float, "x", float, "y", float, "z") leftLegRotation() { 1385 return _leftLegRotation.value; 1386 } 1387 1388 public pure nothrow @property @safe Tuple!(float, "x", float, "y", float, "z") leftLegRotation(Tuple!(float, "x", float, "y", float, "z") value) { 1389 this._cached = false; 1390 this._leftLegRotation.value = value; 1391 if(!this._leftLegRotation.changed) { 1392 this._leftLegRotation.changed = true; 1393 this._changed ~= &this.encodeLeftLegRotation; 1394 } 1395 return value; 1396 } 1397 1398 public pure nothrow @safe encodeLeftLegRotation(Buffer buffer) { 1399 with(buffer) { 1400 writeBigEndianUbyte(16); 1401 writeBigEndianUbyte(7); 1402 writeBigEndianFloat(this._leftLegRotation.value.x); writeBigEndianFloat(this._leftLegRotation.value.y); writeBigEndianFloat(this._leftLegRotation.value.z); 1403 } 1404 } 1405 1406 public pure nothrow @property @safe @nogc Tuple!(float, "x", float, "y", float, "z") rightLegRotation() { 1407 return _rightLegRotation.value; 1408 } 1409 1410 public pure nothrow @property @safe Tuple!(float, "x", float, "y", float, "z") rightLegRotation(Tuple!(float, "x", float, "y", float, "z") value) { 1411 this._cached = false; 1412 this._rightLegRotation.value = value; 1413 if(!this._rightLegRotation.changed) { 1414 this._rightLegRotation.changed = true; 1415 this._changed ~= &this.encodeRightLegRotation; 1416 } 1417 return value; 1418 } 1419 1420 public pure nothrow @safe encodeRightLegRotation(Buffer buffer) { 1421 with(buffer) { 1422 writeBigEndianUbyte(17); 1423 writeBigEndianUbyte(7); 1424 writeBigEndianFloat(this._rightLegRotation.value.x); writeBigEndianFloat(this._rightLegRotation.value.y); writeBigEndianFloat(this._rightLegRotation.value.z); 1425 } 1426 } 1427 1428 public pure nothrow @property @safe @nogc byte instentientFlags() { 1429 return _instentientFlags.value; 1430 } 1431 1432 public pure nothrow @property @safe byte instentientFlags(byte value) { 1433 this._cached = false; 1434 this._instentientFlags.value = value; 1435 if(!this._instentientFlags.changed) { 1436 this._instentientFlags.changed = true; 1437 this._changed ~= &this.encodeInstentientFlags; 1438 } 1439 return value; 1440 } 1441 1442 public pure nothrow @safe encodeInstentientFlags(Buffer buffer) { 1443 with(buffer) { 1444 writeBigEndianUbyte(11); 1445 writeBigEndianUbyte(0); 1446 writeBigEndianByte(this._instentientFlags.value); 1447 } 1448 } 1449 1450 public pure nothrow @property @safe bool noAi() { 1451 return _instentientFlags.value._0; 1452 } 1453 1454 public pure nothrow @property @safe bool noAi(bool value) { 1455 _instentientFlags.value._0 = value; 1456 return value; 1457 } 1458 1459 public pure nothrow @property @safe bool leftHanded() { 1460 return _instentientFlags.value._1; 1461 } 1462 1463 public pure nothrow @property @safe bool leftHanded(bool value) { 1464 _instentientFlags.value._1 = value; 1465 return value; 1466 } 1467 1468 public pure nothrow @property @safe @nogc byte hanging() { 1469 return _hanging.value; 1470 } 1471 1472 public pure nothrow @property @safe byte hanging(byte value) { 1473 this._cached = false; 1474 this._hanging.value = value; 1475 if(!this._hanging.changed) { 1476 this._hanging.changed = true; 1477 this._changed ~= &this.encodeHanging; 1478 } 1479 return value; 1480 } 1481 1482 public pure nothrow @safe encodeHanging(Buffer buffer) { 1483 with(buffer) { 1484 writeBigEndianUbyte(12); 1485 writeBigEndianUbyte(0); 1486 writeBigEndianByte(this._hanging.value); 1487 } 1488 } 1489 1490 public pure nothrow @property @safe @nogc bool baby() { 1491 return _baby.value; 1492 } 1493 1494 public pure nothrow @property @safe bool baby(bool value) { 1495 this._cached = false; 1496 this._baby.value = value; 1497 if(!this._baby.changed) { 1498 this._baby.changed = true; 1499 this._changed ~= &this.encodeBaby; 1500 } 1501 return value; 1502 } 1503 1504 public pure nothrow @safe encodeBaby(Buffer buffer) { 1505 with(buffer) { 1506 writeBigEndianUbyte(12); 1507 writeBigEndianUbyte(6); 1508 writeBigEndianBool(this._baby.value); 1509 } 1510 } 1511 1512 public pure nothrow @property @safe @nogc byte horseFlags() { 1513 return _horseFlags.value; 1514 } 1515 1516 public pure nothrow @property @safe byte horseFlags(byte value) { 1517 this._cached = false; 1518 this._horseFlags.value = value; 1519 if(!this._horseFlags.changed) { 1520 this._horseFlags.changed = true; 1521 this._changed ~= &this.encodeHorseFlags; 1522 } 1523 return value; 1524 } 1525 1526 public pure nothrow @safe encodeHorseFlags(Buffer buffer) { 1527 with(buffer) { 1528 writeBigEndianUbyte(13); 1529 writeBigEndianUbyte(0); 1530 writeBigEndianByte(this._horseFlags.value); 1531 } 1532 } 1533 1534 public pure nothrow @property @safe bool horseTamed() { 1535 return _horseFlags.value._1; 1536 } 1537 1538 public pure nothrow @property @safe bool horseTamed(bool value) { 1539 _horseFlags.value._1 = value; 1540 return value; 1541 } 1542 1543 public pure nothrow @property @safe bool horseSaddled() { 1544 return _horseFlags.value._2; 1545 } 1546 1547 public pure nothrow @property @safe bool horseSaddled(bool value) { 1548 _horseFlags.value._2 = value; 1549 return value; 1550 } 1551 1552 public pure nothrow @property @safe bool horseChested() { 1553 return _horseFlags.value._3; 1554 } 1555 1556 public pure nothrow @property @safe bool horseChested(bool value) { 1557 _horseFlags.value._3 = value; 1558 return value; 1559 } 1560 1561 public pure nothrow @property @safe bool horseEating() { 1562 return _horseFlags.value._5; 1563 } 1564 1565 public pure nothrow @property @safe bool horseEating(bool value) { 1566 _horseFlags.value._5 = value; 1567 return value; 1568 } 1569 1570 public pure nothrow @property @safe bool horseRearing() { 1571 return _horseFlags.value._6; 1572 } 1573 1574 public pure nothrow @property @safe bool horseRearing(bool value) { 1575 _horseFlags.value._6 = value; 1576 return value; 1577 } 1578 1579 public pure nothrow @property @safe bool mouthOpen() { 1580 return _horseFlags.value._7; 1581 } 1582 1583 public pure nothrow @property @safe bool mouthOpen(bool value) { 1584 _horseFlags.value._7 = value; 1585 return value; 1586 } 1587 1588 public pure nothrow @property @safe @nogc sul.protocol.java315.types.OptionalUuid ownerUuid() { 1589 return _ownerUuid.value; 1590 } 1591 1592 public pure nothrow @property @safe sul.protocol.java315.types.OptionalUuid ownerUuid(sul.protocol.java315.types.OptionalUuid value) { 1593 this._cached = false; 1594 this._ownerUuid.value = value; 1595 if(!this._ownerUuid.changed) { 1596 this._ownerUuid.changed = true; 1597 this._changed ~= &this.encodeOwnerUuid; 1598 } 1599 return value; 1600 } 1601 1602 public pure nothrow @safe encodeOwnerUuid(Buffer buffer) { 1603 with(buffer) { 1604 writeBigEndianUbyte(14); 1605 writeBigEndianUbyte(11); 1606 this._ownerUuid.value.encode(bufferInstance); 1607 } 1608 } 1609 1610 public pure nothrow @property @safe @nogc uint horseVariant() { 1611 return _horseVariant.value; 1612 } 1613 1614 public pure nothrow @property @safe uint horseVariant(uint value) { 1615 this._cached = false; 1616 this._horseVariant.value = value; 1617 if(!this._horseVariant.changed) { 1618 this._horseVariant.changed = true; 1619 this._changed ~= &this.encodeHorseVariant; 1620 } 1621 return value; 1622 } 1623 1624 public pure nothrow @safe encodeHorseVariant(Buffer buffer) { 1625 with(buffer) { 1626 writeBigEndianUbyte(15); 1627 writeBigEndianUbyte(1); 1628 writeBytes(varuint.encode(this._horseVariant.value)); 1629 } 1630 } 1631 1632 public pure nothrow @property @safe @nogc uint horseArmor() { 1633 return _horseArmor.value; 1634 } 1635 1636 public pure nothrow @property @safe uint horseArmor(uint value) { 1637 this._cached = false; 1638 this._horseArmor.value = value; 1639 if(!this._horseArmor.changed) { 1640 this._horseArmor.changed = true; 1641 this._changed ~= &this.encodeHorseArmor; 1642 } 1643 return value; 1644 } 1645 1646 public pure nothrow @safe encodeHorseArmor(Buffer buffer) { 1647 with(buffer) { 1648 writeBigEndianUbyte(16); 1649 writeBigEndianUbyte(1); 1650 writeBytes(varuint.encode(this._horseArmor.value)); 1651 } 1652 } 1653 1654 public pure nothrow @property @safe @nogc bool chested() { 1655 return _chested.value; 1656 } 1657 1658 public pure nothrow @property @safe bool chested(bool value) { 1659 this._cached = false; 1660 this._chested.value = value; 1661 if(!this._chested.changed) { 1662 this._chested.changed = true; 1663 this._changed ~= &this.encodeChested; 1664 } 1665 return value; 1666 } 1667 1668 public pure nothrow @safe encodeChested(Buffer buffer) { 1669 with(buffer) { 1670 writeBigEndianUbyte(15); 1671 writeBigEndianUbyte(6); 1672 writeBigEndianBool(this._chested.value); 1673 } 1674 } 1675 1676 public pure nothrow @property @safe @nogc uint llamaStrength() { 1677 return _llamaStrength.value; 1678 } 1679 1680 public pure nothrow @property @safe uint llamaStrength(uint value) { 1681 this._cached = false; 1682 this._llamaStrength.value = value; 1683 if(!this._llamaStrength.changed) { 1684 this._llamaStrength.changed = true; 1685 this._changed ~= &this.encodeLlamaStrength; 1686 } 1687 return value; 1688 } 1689 1690 public pure nothrow @safe encodeLlamaStrength(Buffer buffer) { 1691 with(buffer) { 1692 writeBigEndianUbyte(16); 1693 writeBigEndianUbyte(1); 1694 writeBytes(varuint.encode(this._llamaStrength.value)); 1695 } 1696 } 1697 1698 public pure nothrow @property @safe @nogc uint carpetColor() { 1699 return _carpetColor.value; 1700 } 1701 1702 public pure nothrow @property @safe uint carpetColor(uint value) { 1703 this._cached = false; 1704 this._carpetColor.value = value; 1705 if(!this._carpetColor.changed) { 1706 this._carpetColor.changed = true; 1707 this._changed ~= &this.encodeCarpetColor; 1708 } 1709 return value; 1710 } 1711 1712 public pure nothrow @safe encodeCarpetColor(Buffer buffer) { 1713 with(buffer) { 1714 writeBigEndianUbyte(17); 1715 writeBigEndianUbyte(1); 1716 writeBytes(varuint.encode(this._carpetColor.value)); 1717 } 1718 } 1719 1720 public pure nothrow @property @safe @nogc uint llamaVariant() { 1721 return _llamaVariant.value; 1722 } 1723 1724 public pure nothrow @property @safe uint llamaVariant(uint value) { 1725 this._cached = false; 1726 this._llamaVariant.value = value; 1727 if(!this._llamaVariant.changed) { 1728 this._llamaVariant.changed = true; 1729 this._changed ~= &this.encodeLlamaVariant; 1730 } 1731 return value; 1732 } 1733 1734 public pure nothrow @safe encodeLlamaVariant(Buffer buffer) { 1735 with(buffer) { 1736 writeBigEndianUbyte(18); 1737 writeBigEndianUbyte(1); 1738 writeBytes(varuint.encode(this._llamaVariant.value)); 1739 } 1740 } 1741 1742 public pure nothrow @property @safe @nogc bool pigSaddled() { 1743 return _pigSaddled.value; 1744 } 1745 1746 public pure nothrow @property @safe bool pigSaddled(bool value) { 1747 this._cached = false; 1748 this._pigSaddled.value = value; 1749 if(!this._pigSaddled.changed) { 1750 this._pigSaddled.changed = true; 1751 this._changed ~= &this.encodePigSaddled; 1752 } 1753 return value; 1754 } 1755 1756 public pure nothrow @safe encodePigSaddled(Buffer buffer) { 1757 with(buffer) { 1758 writeBigEndianUbyte(13); 1759 writeBigEndianUbyte(6); 1760 writeBigEndianBool(this._pigSaddled.value); 1761 } 1762 } 1763 1764 public pure nothrow @property @safe @nogc uint rabbitVariant() { 1765 return _rabbitVariant.value; 1766 } 1767 1768 public pure nothrow @property @safe uint rabbitVariant(uint value) { 1769 this._cached = false; 1770 this._rabbitVariant.value = value; 1771 if(!this._rabbitVariant.changed) { 1772 this._rabbitVariant.changed = true; 1773 this._changed ~= &this.encodeRabbitVariant; 1774 } 1775 return value; 1776 } 1777 1778 public pure nothrow @safe encodeRabbitVariant(Buffer buffer) { 1779 with(buffer) { 1780 writeBigEndianUbyte(13); 1781 writeBigEndianUbyte(1); 1782 writeBytes(varuint.encode(this._rabbitVariant.value)); 1783 } 1784 } 1785 1786 public pure nothrow @property @safe @nogc bool standingUp() { 1787 return _standingUp.value; 1788 } 1789 1790 public pure nothrow @property @safe bool standingUp(bool value) { 1791 this._cached = false; 1792 this._standingUp.value = value; 1793 if(!this._standingUp.changed) { 1794 this._standingUp.changed = true; 1795 this._changed ~= &this.encodeStandingUp; 1796 } 1797 return value; 1798 } 1799 1800 public pure nothrow @safe encodeStandingUp(Buffer buffer) { 1801 with(buffer) { 1802 writeBigEndianUbyte(13); 1803 writeBigEndianUbyte(6); 1804 writeBigEndianBool(this._standingUp.value); 1805 } 1806 } 1807 1808 public pure nothrow @property @safe @nogc byte sheepFlagsAndColor() { 1809 return _sheepFlagsAndColor.value; 1810 } 1811 1812 public pure nothrow @property @safe byte sheepFlagsAndColor(byte value) { 1813 this._cached = false; 1814 this._sheepFlagsAndColor.value = value; 1815 if(!this._sheepFlagsAndColor.changed) { 1816 this._sheepFlagsAndColor.changed = true; 1817 this._changed ~= &this.encodeSheepFlagsAndColor; 1818 } 1819 return value; 1820 } 1821 1822 public pure nothrow @safe encodeSheepFlagsAndColor(Buffer buffer) { 1823 with(buffer) { 1824 writeBigEndianUbyte(13); 1825 writeBigEndianUbyte(0); 1826 writeBigEndianByte(this._sheepFlagsAndColor.value); 1827 } 1828 } 1829 1830 public pure nothrow @property @safe bool sheared() { 1831 return _sheepFlagsAndColor.value._7; 1832 } 1833 1834 public pure nothrow @property @safe bool sheared(bool value) { 1835 _sheepFlagsAndColor.value._7 = value; 1836 return value; 1837 } 1838 1839 public pure nothrow @property @safe @nogc byte tameableFlags() { 1840 return _tameableFlags.value; 1841 } 1842 1843 public pure nothrow @property @safe byte tameableFlags(byte value) { 1844 this._cached = false; 1845 this._tameableFlags.value = value; 1846 if(!this._tameableFlags.changed) { 1847 this._tameableFlags.changed = true; 1848 this._changed ~= &this.encodeTameableFlags; 1849 } 1850 return value; 1851 } 1852 1853 public pure nothrow @safe encodeTameableFlags(Buffer buffer) { 1854 with(buffer) { 1855 writeBigEndianUbyte(13); 1856 writeBigEndianUbyte(0); 1857 writeBigEndianByte(this._tameableFlags.value); 1858 } 1859 } 1860 1861 public pure nothrow @property @safe bool sitting() { 1862 return _tameableFlags.value._0; 1863 } 1864 1865 public pure nothrow @property @safe bool sitting(bool value) { 1866 _tameableFlags.value._0 = value; 1867 return value; 1868 } 1869 1870 public pure nothrow @property @safe bool angry() { 1871 return _tameableFlags.value._1; 1872 } 1873 1874 public pure nothrow @property @safe bool angry(bool value) { 1875 _tameableFlags.value._1 = value; 1876 return value; 1877 } 1878 1879 public pure nothrow @property @safe bool tamed() { 1880 return _tameableFlags.value._2; 1881 } 1882 1883 public pure nothrow @property @safe bool tamed(bool value) { 1884 _tameableFlags.value._2 = value; 1885 return value; 1886 } 1887 1888 public pure nothrow @property @safe @nogc uint ocelotVariant() { 1889 return _ocelotVariant.value; 1890 } 1891 1892 public pure nothrow @property @safe uint ocelotVariant(uint value) { 1893 this._cached = false; 1894 this._ocelotVariant.value = value; 1895 if(!this._ocelotVariant.changed) { 1896 this._ocelotVariant.changed = true; 1897 this._changed ~= &this.encodeOcelotVariant; 1898 } 1899 return value; 1900 } 1901 1902 public pure nothrow @safe encodeOcelotVariant(Buffer buffer) { 1903 with(buffer) { 1904 writeBigEndianUbyte(15); 1905 writeBigEndianUbyte(1); 1906 writeBytes(varuint.encode(this._ocelotVariant.value)); 1907 } 1908 } 1909 1910 public pure nothrow @property @safe @nogc float wolfHealth() { 1911 return _wolfHealth.value; 1912 } 1913 1914 public pure nothrow @property @safe float wolfHealth(float value) { 1915 this._cached = false; 1916 this._wolfHealth.value = value; 1917 if(!this._wolfHealth.changed) { 1918 this._wolfHealth.changed = true; 1919 this._changed ~= &this.encodeWolfHealth; 1920 } 1921 return value; 1922 } 1923 1924 public pure nothrow @safe encodeWolfHealth(Buffer buffer) { 1925 with(buffer) { 1926 writeBigEndianUbyte(15); 1927 writeBigEndianUbyte(2); 1928 writeBigEndianFloat(this._wolfHealth.value); 1929 } 1930 } 1931 1932 public pure nothrow @property @safe @nogc bool begging() { 1933 return _begging.value; 1934 } 1935 1936 public pure nothrow @property @safe bool begging(bool value) { 1937 this._cached = false; 1938 this._begging.value = value; 1939 if(!this._begging.changed) { 1940 this._begging.changed = true; 1941 this._changed ~= &this.encodeBegging; 1942 } 1943 return value; 1944 } 1945 1946 public pure nothrow @safe encodeBegging(Buffer buffer) { 1947 with(buffer) { 1948 writeBigEndianUbyte(16); 1949 writeBigEndianUbyte(6); 1950 writeBigEndianBool(this._begging.value); 1951 } 1952 } 1953 1954 public pure nothrow @property @safe @nogc uint collarColor() { 1955 return _collarColor.value; 1956 } 1957 1958 public pure nothrow @property @safe uint collarColor(uint value) { 1959 this._cached = false; 1960 this._collarColor.value = value; 1961 if(!this._collarColor.changed) { 1962 this._collarColor.changed = true; 1963 this._changed ~= &this.encodeCollarColor; 1964 } 1965 return value; 1966 } 1967 1968 public pure nothrow @safe encodeCollarColor(Buffer buffer) { 1969 with(buffer) { 1970 writeBigEndianUbyte(17); 1971 writeBigEndianUbyte(1); 1972 writeBytes(varuint.encode(this._collarColor.value)); 1973 } 1974 } 1975 1976 public pure nothrow @property @safe @nogc uint profession() { 1977 return _profession.value; 1978 } 1979 1980 public pure nothrow @property @safe uint profession(uint value) { 1981 this._cached = false; 1982 this._profession.value = value; 1983 if(!this._profession.changed) { 1984 this._profession.changed = true; 1985 this._changed ~= &this.encodeProfession; 1986 } 1987 return value; 1988 } 1989 1990 public pure nothrow @safe encodeProfession(Buffer buffer) { 1991 with(buffer) { 1992 writeBigEndianUbyte(13); 1993 writeBigEndianUbyte(1); 1994 writeBytes(varuint.encode(this._profession.value)); 1995 } 1996 } 1997 1998 public pure nothrow @property @safe @nogc byte createdByPlayer() { 1999 return _createdByPlayer.value; 2000 } 2001 2002 public pure nothrow @property @safe byte createdByPlayer(byte value) { 2003 this._cached = false; 2004 this._createdByPlayer.value = value; 2005 if(!this._createdByPlayer.changed) { 2006 this._createdByPlayer.changed = true; 2007 this._changed ~= &this.encodeCreatedByPlayer; 2008 } 2009 return value; 2010 } 2011 2012 public pure nothrow @safe encodeCreatedByPlayer(Buffer buffer) { 2013 with(buffer) { 2014 writeBigEndianUbyte(12); 2015 writeBigEndianUbyte(0); 2016 writeBigEndianByte(this._createdByPlayer.value); 2017 } 2018 } 2019 2020 public pure nothrow @property @safe @nogc byte snowmanFlags() { 2021 return _snowmanFlags.value; 2022 } 2023 2024 public pure nothrow @property @safe byte snowmanFlags(byte value) { 2025 this._cached = false; 2026 this._snowmanFlags.value = value; 2027 if(!this._snowmanFlags.changed) { 2028 this._snowmanFlags.changed = true; 2029 this._changed ~= &this.encodeSnowmanFlags; 2030 } 2031 return value; 2032 } 2033 2034 public pure nothrow @safe encodeSnowmanFlags(Buffer buffer) { 2035 with(buffer) { 2036 writeBigEndianUbyte(12); 2037 writeBigEndianUbyte(0); 2038 writeBigEndianByte(this._snowmanFlags.value); 2039 } 2040 } 2041 2042 public pure nothrow @property @safe bool pumpkinless() { 2043 return _snowmanFlags.value._4; 2044 } 2045 2046 public pure nothrow @property @safe bool pumpkinless(bool value) { 2047 _snowmanFlags.value._4 = value; 2048 return value; 2049 } 2050 2051 public pure nothrow @property @safe @nogc uint shulkerDirection() { 2052 return _shulkerDirection.value; 2053 } 2054 2055 public pure nothrow @property @safe uint shulkerDirection(uint value) { 2056 this._cached = false; 2057 this._shulkerDirection.value = value; 2058 if(!this._shulkerDirection.changed) { 2059 this._shulkerDirection.changed = true; 2060 this._changed ~= &this.encodeShulkerDirection; 2061 } 2062 return value; 2063 } 2064 2065 public pure nothrow @safe encodeShulkerDirection(Buffer buffer) { 2066 with(buffer) { 2067 writeBigEndianUbyte(12); 2068 writeBigEndianUbyte(10); 2069 writeBytes(varuint.encode(this._shulkerDirection.value)); 2070 } 2071 } 2072 2073 public pure nothrow @property @safe @nogc sul.protocol.java315.types.OptionalPosition shulkerAttachment() { 2074 return _shulkerAttachment.value; 2075 } 2076 2077 public pure nothrow @property @safe sul.protocol.java315.types.OptionalPosition shulkerAttachment(sul.protocol.java315.types.OptionalPosition value) { 2078 this._cached = false; 2079 this._shulkerAttachment.value = value; 2080 if(!this._shulkerAttachment.changed) { 2081 this._shulkerAttachment.changed = true; 2082 this._changed ~= &this.encodeShulkerAttachment; 2083 } 2084 return value; 2085 } 2086 2087 public pure nothrow @safe encodeShulkerAttachment(Buffer buffer) { 2088 with(buffer) { 2089 writeBigEndianUbyte(13); 2090 writeBigEndianUbyte(9); 2091 this._shulkerAttachment.value.encode(bufferInstance); 2092 } 2093 } 2094 2095 public pure nothrow @property @safe @nogc byte shulkerShieldHeight() { 2096 return _shulkerShieldHeight.value; 2097 } 2098 2099 public pure nothrow @property @safe byte shulkerShieldHeight(byte value) { 2100 this._cached = false; 2101 this._shulkerShieldHeight.value = value; 2102 if(!this._shulkerShieldHeight.changed) { 2103 this._shulkerShieldHeight.changed = true; 2104 this._changed ~= &this.encodeShulkerShieldHeight; 2105 } 2106 return value; 2107 } 2108 2109 public pure nothrow @safe encodeShulkerShieldHeight(Buffer buffer) { 2110 with(buffer) { 2111 writeBigEndianUbyte(14); 2112 writeBigEndianUbyte(0); 2113 writeBigEndianByte(this._shulkerShieldHeight.value); 2114 } 2115 } 2116 2117 public pure nothrow @property @safe @nogc byte shulkerColor() { 2118 return _shulkerColor.value; 2119 } 2120 2121 public pure nothrow @property @safe byte shulkerColor(byte value) { 2122 this._cached = false; 2123 this._shulkerColor.value = value; 2124 if(!this._shulkerColor.changed) { 2125 this._shulkerColor.changed = true; 2126 this._changed ~= &this.encodeShulkerColor; 2127 } 2128 return value; 2129 } 2130 2131 public pure nothrow @safe encodeShulkerColor(Buffer buffer) { 2132 with(buffer) { 2133 writeBigEndianUbyte(15); 2134 writeBigEndianUbyte(0); 2135 writeBigEndianByte(this._shulkerColor.value); 2136 } 2137 } 2138 2139 public pure nothrow @property @safe @nogc byte blazeOnFire() { 2140 return _blazeOnFire.value; 2141 } 2142 2143 public pure nothrow @property @safe byte blazeOnFire(byte value) { 2144 this._cached = false; 2145 this._blazeOnFire.value = value; 2146 if(!this._blazeOnFire.changed) { 2147 this._blazeOnFire.changed = true; 2148 this._changed ~= &this.encodeBlazeOnFire; 2149 } 2150 return value; 2151 } 2152 2153 public pure nothrow @safe encodeBlazeOnFire(Buffer buffer) { 2154 with(buffer) { 2155 writeBigEndianUbyte(12); 2156 writeBigEndianUbyte(0); 2157 writeBigEndianByte(this._blazeOnFire.value); 2158 } 2159 } 2160 2161 public pure nothrow @property @safe @nogc uint creeperState() { 2162 return _creeperState.value; 2163 } 2164 2165 public pure nothrow @property @safe uint creeperState(uint value) { 2166 this._cached = false; 2167 this._creeperState.value = value; 2168 if(!this._creeperState.changed) { 2169 this._creeperState.changed = true; 2170 this._changed ~= &this.encodeCreeperState; 2171 } 2172 return value; 2173 } 2174 2175 public pure nothrow @safe encodeCreeperState(Buffer buffer) { 2176 with(buffer) { 2177 writeBigEndianUbyte(12); 2178 writeBigEndianUbyte(1); 2179 writeBytes(varuint.encode(this._creeperState.value)); 2180 } 2181 } 2182 2183 public pure nothrow @property @safe @nogc bool charged() { 2184 return _charged.value; 2185 } 2186 2187 public pure nothrow @property @safe bool charged(bool value) { 2188 this._cached = false; 2189 this._charged.value = value; 2190 if(!this._charged.changed) { 2191 this._charged.changed = true; 2192 this._changed ~= &this.encodeCharged; 2193 } 2194 return value; 2195 } 2196 2197 public pure nothrow @safe encodeCharged(Buffer buffer) { 2198 with(buffer) { 2199 writeBigEndianUbyte(13); 2200 writeBigEndianUbyte(6); 2201 writeBigEndianBool(this._charged.value); 2202 } 2203 } 2204 2205 public pure nothrow @property @safe @nogc bool ignited() { 2206 return _ignited.value; 2207 } 2208 2209 public pure nothrow @property @safe bool ignited(bool value) { 2210 this._cached = false; 2211 this._ignited.value = value; 2212 if(!this._ignited.changed) { 2213 this._ignited.changed = true; 2214 this._changed ~= &this.encodeIgnited; 2215 } 2216 return value; 2217 } 2218 2219 public pure nothrow @safe encodeIgnited(Buffer buffer) { 2220 with(buffer) { 2221 writeBigEndianUbyte(14); 2222 writeBigEndianUbyte(6); 2223 writeBigEndianBool(this._ignited.value); 2224 } 2225 } 2226 2227 public pure nothrow @property @safe @nogc bool rectractingSpikes() { 2228 return _rectractingSpikes.value; 2229 } 2230 2231 public pure nothrow @property @safe bool rectractingSpikes(bool value) { 2232 this._cached = false; 2233 this._rectractingSpikes.value = value; 2234 if(!this._rectractingSpikes.changed) { 2235 this._rectractingSpikes.changed = true; 2236 this._changed ~= &this.encodeRectractingSpikes; 2237 } 2238 return value; 2239 } 2240 2241 public pure nothrow @safe encodeRectractingSpikes(Buffer buffer) { 2242 with(buffer) { 2243 writeBigEndianUbyte(12); 2244 writeBigEndianUbyte(6); 2245 writeBigEndianBool(this._rectractingSpikes.value); 2246 } 2247 } 2248 2249 public pure nothrow @property @safe @nogc uint guardianTarget() { 2250 return _guardianTarget.value; 2251 } 2252 2253 public pure nothrow @property @safe uint guardianTarget(uint value) { 2254 this._cached = false; 2255 this._guardianTarget.value = value; 2256 if(!this._guardianTarget.changed) { 2257 this._guardianTarget.changed = true; 2258 this._changed ~= &this.encodeGuardianTarget; 2259 } 2260 return value; 2261 } 2262 2263 public pure nothrow @safe encodeGuardianTarget(Buffer buffer) { 2264 with(buffer) { 2265 writeBigEndianUbyte(13); 2266 writeBigEndianUbyte(1); 2267 writeBytes(varuint.encode(this._guardianTarget.value)); 2268 } 2269 } 2270 2271 public pure nothrow @property @safe @nogc byte spell() { 2272 return _spell.value; 2273 } 2274 2275 public pure nothrow @property @safe byte spell(byte value) { 2276 this._cached = false; 2277 this._spell.value = value; 2278 if(!this._spell.changed) { 2279 this._spell.changed = true; 2280 this._changed ~= &this.encodeSpell; 2281 } 2282 return value; 2283 } 2284 2285 public pure nothrow @safe encodeSpell(Buffer buffer) { 2286 with(buffer) { 2287 writeBigEndianUbyte(12); 2288 writeBigEndianUbyte(0); 2289 writeBigEndianByte(this._spell.value); 2290 } 2291 } 2292 2293 public pure nothrow @property @safe @nogc byte attackMode() { 2294 return _attackMode.value; 2295 } 2296 2297 public pure nothrow @property @safe byte attackMode(byte value) { 2298 this._cached = false; 2299 this._attackMode.value = value; 2300 if(!this._attackMode.changed) { 2301 this._attackMode.changed = true; 2302 this._changed ~= &this.encodeAttackMode; 2303 } 2304 return value; 2305 } 2306 2307 public pure nothrow @safe encodeAttackMode(Buffer buffer) { 2308 with(buffer) { 2309 writeBigEndianUbyte(12); 2310 writeBigEndianUbyte(0); 2311 writeBigEndianByte(this._attackMode.value); 2312 } 2313 } 2314 2315 public pure nothrow @property @safe @nogc bool swingingArms() { 2316 return _swingingArms.value; 2317 } 2318 2319 public pure nothrow @property @safe bool swingingArms(bool value) { 2320 this._cached = false; 2321 this._swingingArms.value = value; 2322 if(!this._swingingArms.changed) { 2323 this._swingingArms.changed = true; 2324 this._changed ~= &this.encodeSwingingArms; 2325 } 2326 return value; 2327 } 2328 2329 public pure nothrow @safe encodeSwingingArms(Buffer buffer) { 2330 with(buffer) { 2331 writeBigEndianUbyte(12); 2332 writeBigEndianUbyte(6); 2333 writeBigEndianBool(this._swingingArms.value); 2334 } 2335 } 2336 2337 public pure nothrow @property @safe @nogc byte climbing() { 2338 return _climbing.value; 2339 } 2340 2341 public pure nothrow @property @safe byte climbing(byte value) { 2342 this._cached = false; 2343 this._climbing.value = value; 2344 if(!this._climbing.changed) { 2345 this._climbing.changed = true; 2346 this._changed ~= &this.encodeClimbing; 2347 } 2348 return value; 2349 } 2350 2351 public pure nothrow @safe encodeClimbing(Buffer buffer) { 2352 with(buffer) { 2353 writeBigEndianUbyte(12); 2354 writeBigEndianUbyte(0); 2355 writeBigEndianByte(this._climbing.value); 2356 } 2357 } 2358 2359 public pure nothrow @property @safe @nogc uint centerHeadTarget() { 2360 return _centerHeadTarget.value; 2361 } 2362 2363 public pure nothrow @property @safe uint centerHeadTarget(uint value) { 2364 this._cached = false; 2365 this._centerHeadTarget.value = value; 2366 if(!this._centerHeadTarget.changed) { 2367 this._centerHeadTarget.changed = true; 2368 this._changed ~= &this.encodeCenterHeadTarget; 2369 } 2370 return value; 2371 } 2372 2373 public pure nothrow @safe encodeCenterHeadTarget(Buffer buffer) { 2374 with(buffer) { 2375 writeBigEndianUbyte(12); 2376 writeBigEndianUbyte(1); 2377 writeBytes(varuint.encode(this._centerHeadTarget.value)); 2378 } 2379 } 2380 2381 public pure nothrow @property @safe @nogc uint leftHeadTarget() { 2382 return _leftHeadTarget.value; 2383 } 2384 2385 public pure nothrow @property @safe uint leftHeadTarget(uint value) { 2386 this._cached = false; 2387 this._leftHeadTarget.value = value; 2388 if(!this._leftHeadTarget.changed) { 2389 this._leftHeadTarget.changed = true; 2390 this._changed ~= &this.encodeLeftHeadTarget; 2391 } 2392 return value; 2393 } 2394 2395 public pure nothrow @safe encodeLeftHeadTarget(Buffer buffer) { 2396 with(buffer) { 2397 writeBigEndianUbyte(13); 2398 writeBigEndianUbyte(1); 2399 writeBytes(varuint.encode(this._leftHeadTarget.value)); 2400 } 2401 } 2402 2403 public pure nothrow @property @safe @nogc uint rightHeadTarget() { 2404 return _rightHeadTarget.value; 2405 } 2406 2407 public pure nothrow @property @safe uint rightHeadTarget(uint value) { 2408 this._cached = false; 2409 this._rightHeadTarget.value = value; 2410 if(!this._rightHeadTarget.changed) { 2411 this._rightHeadTarget.changed = true; 2412 this._changed ~= &this.encodeRightHeadTarget; 2413 } 2414 return value; 2415 } 2416 2417 public pure nothrow @safe encodeRightHeadTarget(Buffer buffer) { 2418 with(buffer) { 2419 writeBigEndianUbyte(14); 2420 writeBigEndianUbyte(1); 2421 writeBytes(varuint.encode(this._rightHeadTarget.value)); 2422 } 2423 } 2424 2425 public pure nothrow @property @safe @nogc uint invulnerableTime() { 2426 return _invulnerableTime.value; 2427 } 2428 2429 public pure nothrow @property @safe uint invulnerableTime(uint value) { 2430 this._cached = false; 2431 this._invulnerableTime.value = value; 2432 if(!this._invulnerableTime.changed) { 2433 this._invulnerableTime.changed = true; 2434 this._changed ~= &this.encodeInvulnerableTime; 2435 } 2436 return value; 2437 } 2438 2439 public pure nothrow @safe encodeInvulnerableTime(Buffer buffer) { 2440 with(buffer) { 2441 writeBigEndianUbyte(15); 2442 writeBigEndianUbyte(1); 2443 writeBytes(varuint.encode(this._invulnerableTime.value)); 2444 } 2445 } 2446 2447 public pure nothrow @property @safe @nogc bool handsHeldUp() { 2448 return _handsHeldUp.value; 2449 } 2450 2451 public pure nothrow @property @safe bool handsHeldUp(bool value) { 2452 this._cached = false; 2453 this._handsHeldUp.value = value; 2454 if(!this._handsHeldUp.changed) { 2455 this._handsHeldUp.changed = true; 2456 this._changed ~= &this.encodeHandsHeldUp; 2457 } 2458 return value; 2459 } 2460 2461 public pure nothrow @safe encodeHandsHeldUp(Buffer buffer) { 2462 with(buffer) { 2463 writeBigEndianUbyte(14); 2464 writeBigEndianUbyte(6); 2465 writeBigEndianBool(this._handsHeldUp.value); 2466 } 2467 } 2468 2469 public pure nothrow @property @safe @nogc bool converting() { 2470 return _converting.value; 2471 } 2472 2473 public pure nothrow @property @safe bool converting(bool value) { 2474 this._cached = false; 2475 this._converting.value = value; 2476 if(!this._converting.changed) { 2477 this._converting.changed = true; 2478 this._changed ~= &this.encodeConverting; 2479 } 2480 return value; 2481 } 2482 2483 public pure nothrow @safe encodeConverting(Buffer buffer) { 2484 with(buffer) { 2485 writeBigEndianUbyte(15); 2486 writeBigEndianUbyte(6); 2487 writeBigEndianBool(this._converting.value); 2488 } 2489 } 2490 2491 public pure nothrow @property @safe @nogc uint zombieVillagerProfession() { 2492 return _zombieVillagerProfession.value; 2493 } 2494 2495 public pure nothrow @property @safe uint zombieVillagerProfession(uint value) { 2496 this._cached = false; 2497 this._zombieVillagerProfession.value = value; 2498 if(!this._zombieVillagerProfession.changed) { 2499 this._zombieVillagerProfession.changed = true; 2500 this._changed ~= &this.encodeZombieVillagerProfession; 2501 } 2502 return value; 2503 } 2504 2505 public pure nothrow @safe encodeZombieVillagerProfession(Buffer buffer) { 2506 with(buffer) { 2507 writeBigEndianUbyte(16); 2508 writeBigEndianUbyte(1); 2509 writeBytes(varuint.encode(this._zombieVillagerProfession.value)); 2510 } 2511 } 2512 2513 public pure nothrow @property @safe @nogc uint carriedBlock() { 2514 return _carriedBlock.value; 2515 } 2516 2517 public pure nothrow @property @safe uint carriedBlock(uint value) { 2518 this._cached = false; 2519 this._carriedBlock.value = value; 2520 if(!this._carriedBlock.changed) { 2521 this._carriedBlock.changed = true; 2522 this._changed ~= &this.encodeCarriedBlock; 2523 } 2524 return value; 2525 } 2526 2527 public pure nothrow @safe encodeCarriedBlock(Buffer buffer) { 2528 with(buffer) { 2529 writeBigEndianUbyte(12); 2530 writeBigEndianUbyte(12); 2531 writeBytes(varuint.encode(this._carriedBlock.value)); 2532 } 2533 } 2534 2535 public pure nothrow @property @safe @nogc bool screaming() { 2536 return _screaming.value; 2537 } 2538 2539 public pure nothrow @property @safe bool screaming(bool value) { 2540 this._cached = false; 2541 this._screaming.value = value; 2542 if(!this._screaming.changed) { 2543 this._screaming.changed = true; 2544 this._changed ~= &this.encodeScreaming; 2545 } 2546 return value; 2547 } 2548 2549 public pure nothrow @safe encodeScreaming(Buffer buffer) { 2550 with(buffer) { 2551 writeBigEndianUbyte(13); 2552 writeBigEndianUbyte(6); 2553 writeBigEndianBool(this._screaming.value); 2554 } 2555 } 2556 2557 public pure nothrow @property @safe @nogc uint dragonPhase() { 2558 return _dragonPhase.value; 2559 } 2560 2561 public pure nothrow @property @safe uint dragonPhase(uint value) { 2562 this._cached = false; 2563 this._dragonPhase.value = value; 2564 if(!this._dragonPhase.changed) { 2565 this._dragonPhase.changed = true; 2566 this._changed ~= &this.encodeDragonPhase; 2567 } 2568 return value; 2569 } 2570 2571 public pure nothrow @safe encodeDragonPhase(Buffer buffer) { 2572 with(buffer) { 2573 writeBigEndianUbyte(12); 2574 writeBigEndianUbyte(1); 2575 writeBytes(varuint.encode(this._dragonPhase.value)); 2576 } 2577 } 2578 2579 public pure nothrow @property @safe @nogc bool ghastAttacking() { 2580 return _ghastAttacking.value; 2581 } 2582 2583 public pure nothrow @property @safe bool ghastAttacking(bool value) { 2584 this._cached = false; 2585 this._ghastAttacking.value = value; 2586 if(!this._ghastAttacking.changed) { 2587 this._ghastAttacking.changed = true; 2588 this._changed ~= &this.encodeGhastAttacking; 2589 } 2590 return value; 2591 } 2592 2593 public pure nothrow @safe encodeGhastAttacking(Buffer buffer) { 2594 with(buffer) { 2595 writeBigEndianUbyte(12); 2596 writeBigEndianUbyte(6); 2597 writeBigEndianBool(this._ghastAttacking.value); 2598 } 2599 } 2600 2601 public pure nothrow @property @safe @nogc uint slimeSize() { 2602 return _slimeSize.value; 2603 } 2604 2605 public pure nothrow @property @safe uint slimeSize(uint value) { 2606 this._cached = false; 2607 this._slimeSize.value = value; 2608 if(!this._slimeSize.changed) { 2609 this._slimeSize.changed = true; 2610 this._changed ~= &this.encodeSlimeSize; 2611 } 2612 return value; 2613 } 2614 2615 public pure nothrow @safe encodeSlimeSize(Buffer buffer) { 2616 with(buffer) { 2617 writeBigEndianUbyte(12); 2618 writeBigEndianUbyte(1); 2619 writeBytes(varuint.encode(this._slimeSize.value)); 2620 } 2621 } 2622 2623 public pure nothrow @property @safe @nogc uint shakingPower() { 2624 return _shakingPower.value; 2625 } 2626 2627 public pure nothrow @property @safe uint shakingPower(uint value) { 2628 this._cached = false; 2629 this._shakingPower.value = value; 2630 if(!this._shakingPower.changed) { 2631 this._shakingPower.changed = true; 2632 this._changed ~= &this.encodeShakingPower; 2633 } 2634 return value; 2635 } 2636 2637 public pure nothrow @safe encodeShakingPower(Buffer buffer) { 2638 with(buffer) { 2639 writeBigEndianUbyte(6); 2640 writeBigEndianUbyte(1); 2641 writeBytes(varuint.encode(this._shakingPower.value)); 2642 } 2643 } 2644 2645 public pure nothrow @property @safe @nogc uint shakingDirection() { 2646 return _shakingDirection.value; 2647 } 2648 2649 public pure nothrow @property @safe uint shakingDirection(uint value) { 2650 this._cached = false; 2651 this._shakingDirection.value = value; 2652 if(!this._shakingDirection.changed) { 2653 this._shakingDirection.changed = true; 2654 this._changed ~= &this.encodeShakingDirection; 2655 } 2656 return value; 2657 } 2658 2659 public pure nothrow @safe encodeShakingDirection(Buffer buffer) { 2660 with(buffer) { 2661 writeBigEndianUbyte(7); 2662 writeBigEndianUbyte(1); 2663 writeBytes(varuint.encode(this._shakingDirection.value)); 2664 } 2665 } 2666 2667 public pure nothrow @property @safe @nogc float shakingMultiplier() { 2668 return _shakingMultiplier.value; 2669 } 2670 2671 public pure nothrow @property @safe float shakingMultiplier(float value) { 2672 this._cached = false; 2673 this._shakingMultiplier.value = value; 2674 if(!this._shakingMultiplier.changed) { 2675 this._shakingMultiplier.changed = true; 2676 this._changed ~= &this.encodeShakingMultiplier; 2677 } 2678 return value; 2679 } 2680 2681 public pure nothrow @safe encodeShakingMultiplier(Buffer buffer) { 2682 with(buffer) { 2683 writeBigEndianUbyte(8); 2684 writeBigEndianUbyte(2); 2685 writeBigEndianFloat(this._shakingMultiplier.value); 2686 } 2687 } 2688 2689 public pure nothrow @property @safe @nogc uint minecartBlock() { 2690 return _minecartBlock.value; 2691 } 2692 2693 public pure nothrow @property @safe uint minecartBlock(uint value) { 2694 this._cached = false; 2695 this._minecartBlock.value = value; 2696 if(!this._minecartBlock.changed) { 2697 this._minecartBlock.changed = true; 2698 this._changed ~= &this.encodeMinecartBlock; 2699 } 2700 return value; 2701 } 2702 2703 public pure nothrow @safe encodeMinecartBlock(Buffer buffer) { 2704 with(buffer) { 2705 writeBigEndianUbyte(9); 2706 writeBigEndianUbyte(1); 2707 writeBytes(varuint.encode(this._minecartBlock.value)); 2708 } 2709 } 2710 2711 public pure nothrow @property @safe @nogc uint minecartBlockPosition() { 2712 return _minecartBlockPosition.value; 2713 } 2714 2715 public pure nothrow @property @safe uint minecartBlockPosition(uint value) { 2716 this._cached = false; 2717 this._minecartBlockPosition.value = value; 2718 if(!this._minecartBlockPosition.changed) { 2719 this._minecartBlockPosition.changed = true; 2720 this._changed ~= &this.encodeMinecartBlockPosition; 2721 } 2722 return value; 2723 } 2724 2725 public pure nothrow @safe encodeMinecartBlockPosition(Buffer buffer) { 2726 with(buffer) { 2727 writeBigEndianUbyte(10); 2728 writeBigEndianUbyte(1); 2729 writeBytes(varuint.encode(this._minecartBlockPosition.value)); 2730 } 2731 } 2732 2733 public pure nothrow @property @safe @nogc bool minecartCustomBlock() { 2734 return _minecartCustomBlock.value; 2735 } 2736 2737 public pure nothrow @property @safe bool minecartCustomBlock(bool value) { 2738 this._cached = false; 2739 this._minecartCustomBlock.value = value; 2740 if(!this._minecartCustomBlock.changed) { 2741 this._minecartCustomBlock.changed = true; 2742 this._changed ~= &this.encodeMinecartCustomBlock; 2743 } 2744 return value; 2745 } 2746 2747 public pure nothrow @safe encodeMinecartCustomBlock(Buffer buffer) { 2748 with(buffer) { 2749 writeBigEndianUbyte(11); 2750 writeBigEndianUbyte(6); 2751 writeBigEndianBool(this._minecartCustomBlock.value); 2752 } 2753 } 2754 2755 public pure nothrow @property @safe @nogc bool furnacePowered() { 2756 return _furnacePowered.value; 2757 } 2758 2759 public pure nothrow @property @safe bool furnacePowered(bool value) { 2760 this._cached = false; 2761 this._furnacePowered.value = value; 2762 if(!this._furnacePowered.changed) { 2763 this._furnacePowered.changed = true; 2764 this._changed ~= &this.encodeFurnacePowered; 2765 } 2766 return value; 2767 } 2768 2769 public pure nothrow @safe encodeFurnacePowered(Buffer buffer) { 2770 with(buffer) { 2771 writeBigEndianUbyte(12); 2772 writeBigEndianUbyte(6); 2773 writeBigEndianBool(this._furnacePowered.value); 2774 } 2775 } 2776 2777 public pure nothrow @property @safe @nogc string command() { 2778 return _command.value; 2779 } 2780 2781 public pure nothrow @property @safe string command(string value) { 2782 this._cached = false; 2783 this._command.value = value; 2784 if(!this._command.changed) { 2785 this._command.changed = true; 2786 this._changed ~= &this.encodeCommand; 2787 } 2788 return value; 2789 } 2790 2791 public pure nothrow @safe encodeCommand(Buffer buffer) { 2792 with(buffer) { 2793 writeBigEndianUbyte(12); 2794 writeBigEndianUbyte(3); 2795 writeBytes(varuint.encode(cast(uint)this._command.value.length)); writeString(this._command.value); 2796 } 2797 } 2798 2799 public pure nothrow @property @safe @nogc string lastOutput() { 2800 return _lastOutput.value; 2801 } 2802 2803 public pure nothrow @property @safe string lastOutput(string value) { 2804 this._cached = false; 2805 this._lastOutput.value = value; 2806 if(!this._lastOutput.changed) { 2807 this._lastOutput.changed = true; 2808 this._changed ~= &this.encodeLastOutput; 2809 } 2810 return value; 2811 } 2812 2813 public pure nothrow @safe encodeLastOutput(Buffer buffer) { 2814 with(buffer) { 2815 writeBigEndianUbyte(13); 2816 writeBigEndianUbyte(4); 2817 writeBytes(varuint.encode(cast(uint)this._lastOutput.value.length)); writeString(this._lastOutput.value); 2818 } 2819 } 2820 2821 public pure nothrow @property @safe @nogc uint fuseTime() { 2822 return _fuseTime.value; 2823 } 2824 2825 public pure nothrow @property @safe uint fuseTime(uint value) { 2826 this._cached = false; 2827 this._fuseTime.value = value; 2828 if(!this._fuseTime.changed) { 2829 this._fuseTime.changed = true; 2830 this._changed ~= &this.encodeFuseTime; 2831 } 2832 return value; 2833 } 2834 2835 public pure nothrow @safe encodeFuseTime(Buffer buffer) { 2836 with(buffer) { 2837 writeBigEndianUbyte(6); 2838 writeBigEndianUbyte(1); 2839 writeBytes(varuint.encode(this._fuseTime.value)); 2840 } 2841 } 2842 2843 public pure nothrow @safe encode(Buffer buffer) { 2844 with(buffer) { 2845 if(this._cached) { 2846 buffer.writeBytes(this._cache); 2847 } else { 2848 immutable start = buffer._buffer.length; 2849 foreach(del ; this._changed) del(buffer); 2850 writeBigEndianUbyte(255); 2851 this._cached = true; 2852 this._cache = buffer._buffer[start..$]; 2853 } 2854 } 2855 } 2856 2857 public static pure nothrow @safe Metadata decode(Buffer buffer) { 2858 auto metadata = new Metadata(); 2859 with(buffer) { 2860 ubyte id; 2861 while(_index < _buffer.length && (id=readBigEndianUbyte()) != 255) { 2862 switch(readBigEndianUbyte()) { 2863 case 0: 2864 byte _0; 2865 _0=readBigEndianByte(); 2866 metadata.decoded ~= DecodedMetadata.fromByte(id, _0); 2867 break; 2868 case 1: 2869 uint _1; 2870 _1=varuint.decode(_buffer, &_index); 2871 metadata.decoded ~= DecodedMetadata.fromInt(id, _1); 2872 break; 2873 case 2: 2874 float _2; 2875 _2=readBigEndianFloat(); 2876 metadata.decoded ~= DecodedMetadata.fromFloat(id, _2); 2877 break; 2878 case 3: 2879 string _3; 2880 uint xm=varuint.decode(_buffer, &_index); _3=readString(xm); 2881 metadata.decoded ~= DecodedMetadata.fromString(id, _3); 2882 break; 2883 case 4: 2884 string _4; 2885 uint xq=varuint.decode(_buffer, &_index); _4=readString(xq); 2886 metadata.decoded ~= DecodedMetadata.fromChat(id, _4); 2887 break; 2888 case 5: 2889 sul.protocol.java315.types.Slot _5; 2890 _5.decode(bufferInstance); 2891 metadata.decoded ~= DecodedMetadata.fromSlot(id, _5); 2892 break; 2893 case 6: 2894 bool _6; 2895 _6=readBigEndianBool(); 2896 metadata.decoded ~= DecodedMetadata.fromBool(id, _6); 2897 break; 2898 case 7: 2899 Tuple!(float, "x", float, "y", float, "z") _7; 2900 _7.x=readBigEndianFloat(); _7.y=readBigEndianFloat(); _7.z=readBigEndianFloat(); 2901 metadata.decoded ~= DecodedMetadata.fromRotation(id, _7); 2902 break; 2903 case 8: 2904 ulong _8; 2905 _8=readBigEndianUlong(); 2906 metadata.decoded ~= DecodedMetadata.fromPosition(id, _8); 2907 break; 2908 case 9: 2909 sul.protocol.java315.types.OptionalPosition _9; 2910 _9.decode(bufferInstance); 2911 metadata.decoded ~= DecodedMetadata.fromOptionalPosition(id, _9); 2912 break; 2913 case 10: 2914 uint _10; 2915 _10=varuint.decode(_buffer, &_index); 2916 metadata.decoded ~= DecodedMetadata.fromDirection(id, _10); 2917 break; 2918 case 11: 2919 sul.protocol.java315.types.OptionalUuid _11; 2920 _11.decode(bufferInstance); 2921 metadata.decoded ~= DecodedMetadata.fromUuid(id, _11); 2922 break; 2923 case 12: 2924 uint _12; 2925 _12=varuint.decode(_buffer, &_index); 2926 metadata.decoded ~= DecodedMetadata.fromBlock(id, _12); 2927 break; 2928 default: 2929 break; 2930 } 2931 } 2932 } 2933 return metadata; 2934 } 2935 2936 } 2937 2938 class DecodedMetadata { 2939 2940 public immutable ubyte id; 2941 public immutable ubyte type; 2942 2943 union { 2944 byte byte_; 2945 uint int_; 2946 float float_; 2947 string string_; 2948 string chat; 2949 sul.protocol.java315.types.Slot slot; 2950 bool bool_; 2951 Tuple!(float, "x", float, "y", float, "z") rotation; 2952 ulong position; 2953 sul.protocol.java315.types.OptionalPosition optional_position; 2954 uint direction; 2955 sul.protocol.java315.types.OptionalUuid uuid; 2956 uint block; 2957 } 2958 2959 private pure nothrow @safe @nogc this(ubyte id, ubyte type) { 2960 this.id = id; 2961 this.type = type; 2962 } 2963 2964 public static pure nothrow @trusted DecodedMetadata fromByte(ubyte id, byte value) { 2965 auto ret = new DecodedMetadata(id, 0); 2966 ret.byte_ = value; 2967 return ret; 2968 } 2969 2970 public static pure nothrow @trusted DecodedMetadata fromInt(ubyte id, uint value) { 2971 auto ret = new DecodedMetadata(id, 1); 2972 ret.int_ = value; 2973 return ret; 2974 } 2975 2976 public static pure nothrow @trusted DecodedMetadata fromFloat(ubyte id, float value) { 2977 auto ret = new DecodedMetadata(id, 2); 2978 ret.float_ = value; 2979 return ret; 2980 } 2981 2982 public static pure nothrow @trusted DecodedMetadata fromString(ubyte id, string value) { 2983 auto ret = new DecodedMetadata(id, 3); 2984 ret.string_ = value; 2985 return ret; 2986 } 2987 2988 public static pure nothrow @trusted DecodedMetadata fromChat(ubyte id, string value) { 2989 auto ret = new DecodedMetadata(id, 4); 2990 ret.chat = value; 2991 return ret; 2992 } 2993 2994 public static pure nothrow @trusted DecodedMetadata fromSlot(ubyte id, sul.protocol.java315.types.Slot value) { 2995 auto ret = new DecodedMetadata(id, 5); 2996 ret.slot = value; 2997 return ret; 2998 } 2999 3000 public static pure nothrow @trusted DecodedMetadata fromBool(ubyte id, bool value) { 3001 auto ret = new DecodedMetadata(id, 6); 3002 ret.bool_ = value; 3003 return ret; 3004 } 3005 3006 public static pure nothrow @trusted DecodedMetadata fromRotation(ubyte id, Tuple!(float, "x", float, "y", float, "z") value) { 3007 auto ret = new DecodedMetadata(id, 7); 3008 ret.rotation = value; 3009 return ret; 3010 } 3011 3012 public static pure nothrow @trusted DecodedMetadata fromPosition(ubyte id, ulong value) { 3013 auto ret = new DecodedMetadata(id, 8); 3014 ret.position = value; 3015 return ret; 3016 } 3017 3018 public static pure nothrow @trusted DecodedMetadata fromOptionalPosition(ubyte id, sul.protocol.java315.types.OptionalPosition value) { 3019 auto ret = new DecodedMetadata(id, 9); 3020 ret.optional_position = value; 3021 return ret; 3022 } 3023 3024 public static pure nothrow @trusted DecodedMetadata fromDirection(ubyte id, uint value) { 3025 auto ret = new DecodedMetadata(id, 10); 3026 ret.direction = value; 3027 return ret; 3028 } 3029 3030 public static pure nothrow @trusted DecodedMetadata fromUuid(ubyte id, sul.protocol.java315.types.OptionalUuid value) { 3031 auto ret = new DecodedMetadata(id, 11); 3032 ret.uuid = value; 3033 return ret; 3034 } 3035 3036 public static pure nothrow @trusted DecodedMetadata fromBlock(ubyte id, uint value) { 3037 auto ret = new DecodedMetadata(id, 12); 3038 ret.block = value; 3039 return ret; 3040 } 3041 3042 }