1 /* 2 * This file has been automatically generated by Soupply and released under the MIT license. 3 * Generated from bedrock282 4 */ 5 module soupply.bedrock282.metadata; 6 7 import xpacket; 8 9 import xserial.serial : EndianType, serializeLength, serializeNumber, deserializeLength, deserializeNumber; 10 11 import soupply.util; 12 13 static import soupply.bedrock282.types; 14 15 class MetadataValue : PacketImpl!(Endian.littleEndian, varuint, varuint) 16 { 17 18 @Var @EncodeOnly uint type; 19 20 this(uint type) pure nothrow @safe @nogc 21 { 22 this.type = type; 23 } 24 25 mixin Make; 26 27 } 28 29 class MetadataByte : MetadataValue 30 { 31 32 byte value; 33 34 this() pure nothrow @safe @nogc 35 { 36 super(0); 37 } 38 39 this(byte value) pure nothrow @safe @nogc 40 { 41 this(); 42 this.value = value; 43 } 44 45 mixin Make; 46 47 } 48 49 class MetadataShort : MetadataValue 50 { 51 52 short value; 53 54 this() pure nothrow @safe @nogc 55 { 56 super(1); 57 } 58 59 this(short value) pure nothrow @safe @nogc 60 { 61 this(); 62 this.value = value; 63 } 64 65 mixin Make; 66 67 } 68 69 class MetadataInt : MetadataValue 70 { 71 72 @Var int value; 73 74 this() pure nothrow @safe @nogc 75 { 76 super(2); 77 } 78 79 this(int value) pure nothrow @safe @nogc 80 { 81 this(); 82 this.value = value; 83 } 84 85 mixin Make; 86 87 } 88 89 class MetadataFloat : MetadataValue 90 { 91 92 float value; 93 94 this() pure nothrow @safe @nogc 95 { 96 super(3); 97 } 98 99 this(float value) pure nothrow @safe @nogc 100 { 101 this(); 102 this.value = value; 103 } 104 105 mixin Make; 106 107 } 108 109 class MetadataString : MetadataValue 110 { 111 112 string value; 113 114 this() pure nothrow @safe @nogc 115 { 116 super(4); 117 } 118 119 this(string value) pure nothrow @safe @nogc 120 { 121 this(); 122 this.value = value; 123 } 124 125 mixin Make; 126 127 } 128 129 class MetadataSlot : MetadataValue 130 { 131 132 soupply.bedrock282.types.Slot value; 133 134 this() pure nothrow @safe @nogc 135 { 136 super(5); 137 } 138 139 this(soupply.bedrock282.types.Slot value) pure nothrow @safe @nogc 140 { 141 this(); 142 this.value = value; 143 } 144 145 mixin Make; 146 147 } 148 149 class MetadataBlockPosition : MetadataValue 150 { 151 152 @Var Vector!(int, "xyz") value; 153 154 this() pure nothrow @safe @nogc 155 { 156 super(6); 157 } 158 159 this(Vector!(int, "xyz") value) pure nothrow @safe @nogc 160 { 161 this(); 162 this.value = value; 163 } 164 165 mixin Make; 166 167 } 168 169 class MetadataLong : MetadataValue 170 { 171 172 @Var long value; 173 174 this() pure nothrow @safe @nogc 175 { 176 super(7); 177 } 178 179 this(long value) pure nothrow @safe @nogc 180 { 181 this(); 182 this.value = value; 183 } 184 185 mixin Make; 186 187 } 188 189 class MetadataEntityPosition : MetadataValue 190 { 191 192 Vector!(float, "xyz") value; 193 194 this() pure nothrow @safe @nogc 195 { 196 super(8); 197 } 198 199 this(Vector!(float, "xyz") value) pure nothrow @safe @nogc 200 { 201 this(); 202 this.value = value; 203 } 204 205 mixin Make; 206 207 } 208 209 class Metadata 210 { 211 212 MetadataValue[uint] values; 213 214 this() 215 { 216 this.values[0] = new MetadataLong(long(0)); 217 this.values[7] = new MetadataShort(short(0)); 218 this.values[38] = new MetadataLong(long(-1)); 219 } 220 221 void serialize(Buffer buffer) 222 { 223 serializeLength!(EndianType.var, uint)(buffer, values.length); 224 foreach(id, value; values) 225 { 226 serializeNumber!(EndianType.var, uint)(buffer, id); 227 value.encodeBody(buffer); 228 } 229 } 230 231 void deserialize(Buffer buffer) 232 { 233 foreach(i ; 0..deserializeLength!(EndianType.var, uint)(buffer)) 234 { 235 uint id = deserializeNumber!(EndianType.var, uint)(buffer); 236 switch(deserializeNumber!(EndianType.var, uint)(buffer)) 237 { 238 case 0: 239 auto value = new MetadataByte(); 240 value.decodeBody(buffer); 241 this.values[id] = value; 242 break; 243 case 1: 244 auto value = new MetadataShort(); 245 value.decodeBody(buffer); 246 this.values[id] = value; 247 break; 248 case 2: 249 auto value = new MetadataInt(); 250 value.decodeBody(buffer); 251 this.values[id] = value; 252 break; 253 case 3: 254 auto value = new MetadataFloat(); 255 value.decodeBody(buffer); 256 this.values[id] = value; 257 break; 258 case 4: 259 auto value = new MetadataString(); 260 value.decodeBody(buffer); 261 this.values[id] = value; 262 break; 263 case 5: 264 auto value = new MetadataSlot(); 265 value.decodeBody(buffer); 266 this.values[id] = value; 267 break; 268 case 6: 269 auto value = new MetadataBlockPosition(); 270 value.decodeBody(buffer); 271 this.values[id] = value; 272 break; 273 case 7: 274 auto value = new MetadataLong(); 275 value.decodeBody(buffer); 276 this.values[id] = value; 277 break; 278 case 8: 279 auto value = new MetadataEntityPosition(); 280 value.decodeBody(buffer); 281 this.values[id] = value; 282 break; 283 default: throw new Exception("Unknown metadata type"); 284 } 285 } 286 } 287 288 @property long entityFlags() 289 { 290 auto ptr = 0 in this.values; 291 if(ptr && cast(MetadataLong)*ptr) return (cast(MetadataLong)*ptr).value; 292 return long(0); 293 } 294 295 @property long entityFlags(long value) 296 { 297 auto ptr = 0 in this.values; 298 if(ptr && cast(MetadataLong)*ptr) (cast(MetadataLong)*ptr).value = value; 299 else this.values[0] = new MetadataLong(value); 300 return value; 301 } 302 303 @property int health() 304 { 305 auto ptr = 1 in this.values; 306 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 307 return (int).init; 308 } 309 310 @property int health(int value) 311 { 312 auto ptr = 1 in this.values; 313 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 314 else this.values[1] = new MetadataInt(value); 315 return value; 316 } 317 318 @property int variant() 319 { 320 auto ptr = 2 in this.values; 321 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 322 return (int).init; 323 } 324 325 @property int variant(int value) 326 { 327 auto ptr = 2 in this.values; 328 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 329 else this.values[2] = new MetadataInt(value); 330 return value; 331 } 332 333 @property byte color() 334 { 335 auto ptr = 3 in this.values; 336 if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value; 337 return (byte).init; 338 } 339 340 @property byte color(byte value) 341 { 342 auto ptr = 3 in this.values; 343 if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value; 344 else this.values[3] = new MetadataByte(value); 345 return value; 346 } 347 348 @property string nametag() 349 { 350 auto ptr = 4 in this.values; 351 if(ptr && cast(MetadataString)*ptr) return (cast(MetadataString)*ptr).value; 352 return (string).init; 353 } 354 355 @property string nametag(string value) 356 { 357 auto ptr = 4 in this.values; 358 if(ptr && cast(MetadataString)*ptr) (cast(MetadataString)*ptr).value = value; 359 else this.values[4] = new MetadataString(value); 360 return value; 361 } 362 363 @property long owner() 364 { 365 auto ptr = 5 in this.values; 366 if(ptr && cast(MetadataLong)*ptr) return (cast(MetadataLong)*ptr).value; 367 return long(-1); 368 } 369 370 @property long owner(long value) 371 { 372 auto ptr = 5 in this.values; 373 if(ptr && cast(MetadataLong)*ptr) (cast(MetadataLong)*ptr).value = value; 374 else this.values[5] = new MetadataLong(value); 375 return value; 376 } 377 378 @property long target() 379 { 380 auto ptr = 6 in this.values; 381 if(ptr && cast(MetadataLong)*ptr) return (cast(MetadataLong)*ptr).value; 382 return (long).init; 383 } 384 385 @property long target(long value) 386 { 387 auto ptr = 6 in this.values; 388 if(ptr && cast(MetadataLong)*ptr) (cast(MetadataLong)*ptr).value = value; 389 else this.values[6] = new MetadataLong(value); 390 return value; 391 } 392 393 @property short air() 394 { 395 auto ptr = 7 in this.values; 396 if(ptr && cast(MetadataShort)*ptr) return (cast(MetadataShort)*ptr).value; 397 return short(0); 398 } 399 400 @property short air(short value) 401 { 402 auto ptr = 7 in this.values; 403 if(ptr && cast(MetadataShort)*ptr) (cast(MetadataShort)*ptr).value = value; 404 else this.values[7] = new MetadataShort(value); 405 return value; 406 } 407 408 @property int potionColor() 409 { 410 auto ptr = 8 in this.values; 411 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 412 return (int).init; 413 } 414 415 @property int potionColor(int value) 416 { 417 auto ptr = 8 in this.values; 418 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 419 else this.values[8] = new MetadataInt(value); 420 return value; 421 } 422 423 @property byte potionAmbient() 424 { 425 auto ptr = 9 in this.values; 426 if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value; 427 return (byte).init; 428 } 429 430 @property byte potionAmbient(byte value) 431 { 432 auto ptr = 9 in this.values; 433 if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value; 434 else this.values[9] = new MetadataByte(value); 435 return value; 436 } 437 438 @property int hurtTime() 439 { 440 auto ptr = 11 in this.values; 441 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 442 return (int).init; 443 } 444 445 @property int hurtTime(int value) 446 { 447 auto ptr = 11 in this.values; 448 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 449 else this.values[11] = new MetadataInt(value); 450 return value; 451 } 452 453 @property int hurtDirection() 454 { 455 auto ptr = 12 in this.values; 456 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 457 return (int).init; 458 } 459 460 @property int hurtDirection(int value) 461 { 462 auto ptr = 12 in this.values; 463 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 464 else this.values[12] = new MetadataInt(value); 465 return value; 466 } 467 468 @property float paddleTimeLeft() 469 { 470 auto ptr = 13 in this.values; 471 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 472 return (float).init; 473 } 474 475 @property float paddleTimeLeft(float value) 476 { 477 auto ptr = 13 in this.values; 478 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 479 else this.values[13] = new MetadataFloat(value); 480 return value; 481 } 482 483 @property float paddleTimeRight() 484 { 485 auto ptr = 14 in this.values; 486 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 487 return (float).init; 488 } 489 490 @property float paddleTimeRight(float value) 491 { 492 auto ptr = 14 in this.values; 493 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 494 else this.values[14] = new MetadataFloat(value); 495 return value; 496 } 497 498 @property int experienceCount() 499 { 500 auto ptr = 15 in this.values; 501 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 502 return (int).init; 503 } 504 505 @property int experienceCount(int value) 506 { 507 auto ptr = 15 in this.values; 508 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 509 else this.values[15] = new MetadataInt(value); 510 return value; 511 } 512 513 @property int minecartBlock() 514 { 515 auto ptr = 16 in this.values; 516 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 517 return (int).init; 518 } 519 520 @property int minecartBlock(int value) 521 { 522 auto ptr = 16 in this.values; 523 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 524 else this.values[16] = new MetadataInt(value); 525 return value; 526 } 527 528 @property int minecartOffset() 529 { 530 auto ptr = 17 in this.values; 531 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 532 return (int).init; 533 } 534 535 @property int minecartOffset(int value) 536 { 537 auto ptr = 17 in this.values; 538 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 539 else this.values[17] = new MetadataInt(value); 540 return value; 541 } 542 543 @property byte minecartHasBlock() 544 { 545 auto ptr = 18 in this.values; 546 if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value; 547 return (byte).init; 548 } 549 550 @property byte minecartHasBlock(byte value) 551 { 552 auto ptr = 18 in this.values; 553 if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value; 554 else this.values[18] = new MetadataByte(value); 555 return value; 556 } 557 558 @property short endermanItemId() 559 { 560 auto ptr = 23 in this.values; 561 if(ptr && cast(MetadataShort)*ptr) return (cast(MetadataShort)*ptr).value; 562 return (short).init; 563 } 564 565 @property short endermanItemId(short value) 566 { 567 auto ptr = 23 in this.values; 568 if(ptr && cast(MetadataShort)*ptr) (cast(MetadataShort)*ptr).value = value; 569 else this.values[23] = new MetadataShort(value); 570 return value; 571 } 572 573 @property short endermanItemDamage() 574 { 575 auto ptr = 24 in this.values; 576 if(ptr && cast(MetadataShort)*ptr) return (cast(MetadataShort)*ptr).value; 577 return (short).init; 578 } 579 580 @property short endermanItemDamage(short value) 581 { 582 auto ptr = 24 in this.values; 583 if(ptr && cast(MetadataShort)*ptr) (cast(MetadataShort)*ptr).value = value; 584 else this.values[24] = new MetadataShort(value); 585 return value; 586 } 587 588 @property short age() 589 { 590 auto ptr = 25 in this.values; 591 if(ptr && cast(MetadataShort)*ptr) return (cast(MetadataShort)*ptr).value; 592 return (short).init; 593 } 594 595 @property short age(short value) 596 { 597 auto ptr = 25 in this.values; 598 if(ptr && cast(MetadataShort)*ptr) (cast(MetadataShort)*ptr).value = value; 599 else this.values[25] = new MetadataShort(value); 600 return value; 601 } 602 603 @property byte playerFlags() 604 { 605 auto ptr = 27 in this.values; 606 if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value; 607 return (byte).init; 608 } 609 610 @property byte playerFlags(byte value) 611 { 612 auto ptr = 27 in this.values; 613 if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value; 614 else this.values[27] = new MetadataByte(value); 615 return value; 616 } 617 618 @property int playerIndex() 619 { 620 auto ptr = 28 in this.values; 621 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 622 return (int).init; 623 } 624 625 @property int playerIndex(int value) 626 { 627 auto ptr = 28 in this.values; 628 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 629 else this.values[28] = new MetadataInt(value); 630 return value; 631 } 632 633 @property Vector!(int, "xyz") bedPosition() 634 { 635 auto ptr = 29 in this.values; 636 if(ptr && cast(MetadataBlockPosition)*ptr) return (cast(MetadataBlockPosition)*ptr).value; 637 return (Vector!(int, "xyz")).init; 638 } 639 640 @property Vector!(int, "xyz") bedPosition(Vector!(int, "xyz") value) 641 { 642 auto ptr = 29 in this.values; 643 if(ptr && cast(MetadataBlockPosition)*ptr) (cast(MetadataBlockPosition)*ptr).value = value; 644 else this.values[29] = new MetadataBlockPosition(value); 645 return value; 646 } 647 648 @property float fireballPowerX() 649 { 650 auto ptr = 30 in this.values; 651 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 652 return (float).init; 653 } 654 655 @property float fireballPowerX(float value) 656 { 657 auto ptr = 30 in this.values; 658 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 659 else this.values[30] = new MetadataFloat(value); 660 return value; 661 } 662 663 @property float fireballPowerY() 664 { 665 auto ptr = 31 in this.values; 666 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 667 return (float).init; 668 } 669 670 @property float fireballPowerY(float value) 671 { 672 auto ptr = 31 in this.values; 673 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 674 else this.values[31] = new MetadataFloat(value); 675 return value; 676 } 677 678 @property float fireballPowerZ() 679 { 680 auto ptr = 32 in this.values; 681 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 682 return (float).init; 683 } 684 685 @property float fireballPowerZ(float value) 686 { 687 auto ptr = 32 in this.values; 688 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 689 else this.values[32] = new MetadataFloat(value); 690 return value; 691 } 692 693 @property short potionAuxValue() 694 { 695 auto ptr = 37 in this.values; 696 if(ptr && cast(MetadataShort)*ptr) return (cast(MetadataShort)*ptr).value; 697 return (short).init; 698 } 699 700 @property short potionAuxValue(short value) 701 { 702 auto ptr = 37 in this.values; 703 if(ptr && cast(MetadataShort)*ptr) (cast(MetadataShort)*ptr).value = value; 704 else this.values[37] = new MetadataShort(value); 705 return value; 706 } 707 708 @property long leadHolder() 709 { 710 auto ptr = 38 in this.values; 711 if(ptr && cast(MetadataLong)*ptr) return (cast(MetadataLong)*ptr).value; 712 return long(-1); 713 } 714 715 @property long leadHolder(long value) 716 { 717 auto ptr = 38 in this.values; 718 if(ptr && cast(MetadataLong)*ptr) (cast(MetadataLong)*ptr).value = value; 719 else this.values[38] = new MetadataLong(value); 720 return value; 721 } 722 723 @property float scale() 724 { 725 auto ptr = 39 in this.values; 726 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 727 return float(1); 728 } 729 730 @property float scale(float value) 731 { 732 auto ptr = 39 in this.values; 733 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 734 else this.values[39] = new MetadataFloat(value); 735 return value; 736 } 737 738 @property string interactiveTag() 739 { 740 auto ptr = 40 in this.values; 741 if(ptr && cast(MetadataString)*ptr) return (cast(MetadataString)*ptr).value; 742 return (string).init; 743 } 744 745 @property string interactiveTag(string value) 746 { 747 auto ptr = 40 in this.values; 748 if(ptr && cast(MetadataString)*ptr) (cast(MetadataString)*ptr).value = value; 749 else this.values[40] = new MetadataString(value); 750 return value; 751 } 752 753 @property string npcId() 754 { 755 auto ptr = 41 in this.values; 756 if(ptr && cast(MetadataString)*ptr) return (cast(MetadataString)*ptr).value; 757 return (string).init; 758 } 759 760 @property string npcId(string value) 761 { 762 auto ptr = 41 in this.values; 763 if(ptr && cast(MetadataString)*ptr) (cast(MetadataString)*ptr).value = value; 764 else this.values[41] = new MetadataString(value); 765 return value; 766 } 767 768 @property string interactiveTagUrl() 769 { 770 auto ptr = 42 in this.values; 771 if(ptr && cast(MetadataString)*ptr) return (cast(MetadataString)*ptr).value; 772 return (string).init; 773 } 774 775 @property string interactiveTagUrl(string value) 776 { 777 auto ptr = 42 in this.values; 778 if(ptr && cast(MetadataString)*ptr) (cast(MetadataString)*ptr).value = value; 779 else this.values[42] = new MetadataString(value); 780 return value; 781 } 782 783 @property short maxAir() 784 { 785 auto ptr = 43 in this.values; 786 if(ptr && cast(MetadataShort)*ptr) return (cast(MetadataShort)*ptr).value; 787 return (short).init; 788 } 789 790 @property short maxAir(short value) 791 { 792 auto ptr = 43 in this.values; 793 if(ptr && cast(MetadataShort)*ptr) (cast(MetadataShort)*ptr).value = value; 794 else this.values[43] = new MetadataShort(value); 795 return value; 796 } 797 798 @property int markVariant() 799 { 800 auto ptr = 44 in this.values; 801 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 802 return (int).init; 803 } 804 805 @property int markVariant(int value) 806 { 807 auto ptr = 44 in this.values; 808 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 809 else this.values[44] = new MetadataInt(value); 810 return value; 811 } 812 813 @property Vector!(int, "xyz") blockTarget() 814 { 815 auto ptr = 48 in this.values; 816 if(ptr && cast(MetadataBlockPosition)*ptr) return (cast(MetadataBlockPosition)*ptr).value; 817 return (Vector!(int, "xyz")).init; 818 } 819 820 @property Vector!(int, "xyz") blockTarget(Vector!(int, "xyz") value) 821 { 822 auto ptr = 48 in this.values; 823 if(ptr && cast(MetadataBlockPosition)*ptr) (cast(MetadataBlockPosition)*ptr).value = value; 824 else this.values[48] = new MetadataBlockPosition(value); 825 return value; 826 } 827 828 @property int invulnerableTime() 829 { 830 auto ptr = 49 in this.values; 831 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 832 return (int).init; 833 } 834 835 @property int invulnerableTime(int value) 836 { 837 auto ptr = 49 in this.values; 838 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 839 else this.values[49] = new MetadataInt(value); 840 return value; 841 } 842 843 @property long centerHeadTarget() 844 { 845 auto ptr = 50 in this.values; 846 if(ptr && cast(MetadataLong)*ptr) return (cast(MetadataLong)*ptr).value; 847 return (long).init; 848 } 849 850 @property long centerHeadTarget(long value) 851 { 852 auto ptr = 50 in this.values; 853 if(ptr && cast(MetadataLong)*ptr) (cast(MetadataLong)*ptr).value = value; 854 else this.values[50] = new MetadataLong(value); 855 return value; 856 } 857 858 @property long leftHeadTarget() 859 { 860 auto ptr = 51 in this.values; 861 if(ptr && cast(MetadataLong)*ptr) return (cast(MetadataLong)*ptr).value; 862 return (long).init; 863 } 864 865 @property long leftHeadTarget(long value) 866 { 867 auto ptr = 51 in this.values; 868 if(ptr && cast(MetadataLong)*ptr) (cast(MetadataLong)*ptr).value = value; 869 else this.values[51] = new MetadataLong(value); 870 return value; 871 } 872 873 @property long rightHeadTarget() 874 { 875 auto ptr = 52 in this.values; 876 if(ptr && cast(MetadataLong)*ptr) return (cast(MetadataLong)*ptr).value; 877 return (long).init; 878 } 879 880 @property long rightHeadTarget(long value) 881 { 882 auto ptr = 52 in this.values; 883 if(ptr && cast(MetadataLong)*ptr) (cast(MetadataLong)*ptr).value = value; 884 else this.values[52] = new MetadataLong(value); 885 return value; 886 } 887 888 @property float boundingBoxWidth() 889 { 890 auto ptr = 54 in this.values; 891 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 892 return (float).init; 893 } 894 895 @property float boundingBoxWidth(float value) 896 { 897 auto ptr = 54 in this.values; 898 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 899 else this.values[54] = new MetadataFloat(value); 900 return value; 901 } 902 903 @property float boundingBoxHeight() 904 { 905 auto ptr = 55 in this.values; 906 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 907 return (float).init; 908 } 909 910 @property float boundingBoxHeight(float value) 911 { 912 auto ptr = 55 in this.values; 913 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 914 else this.values[55] = new MetadataFloat(value); 915 return value; 916 } 917 918 @property int fuseLength() 919 { 920 auto ptr = 56 in this.values; 921 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 922 return (int).init; 923 } 924 925 @property int fuseLength(int value) 926 { 927 auto ptr = 56 in this.values; 928 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 929 else this.values[56] = new MetadataInt(value); 930 return value; 931 } 932 933 @property Vector!(float, "xyz") riderSeatPosition() 934 { 935 auto ptr = 57 in this.values; 936 if(ptr && cast(MetadataEntityPosition)*ptr) return (cast(MetadataEntityPosition)*ptr).value; 937 return (Vector!(float, "xyz")).init; 938 } 939 940 @property Vector!(float, "xyz") riderSeatPosition(Vector!(float, "xyz") value) 941 { 942 auto ptr = 57 in this.values; 943 if(ptr && cast(MetadataEntityPosition)*ptr) (cast(MetadataEntityPosition)*ptr).value = value; 944 else this.values[57] = new MetadataEntityPosition(value); 945 return value; 946 } 947 948 @property byte riderRotationLocked() 949 { 950 auto ptr = 58 in this.values; 951 if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value; 952 return (byte).init; 953 } 954 955 @property byte riderRotationLocked(byte value) 956 { 957 auto ptr = 58 in this.values; 958 if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value; 959 else this.values[58] = new MetadataByte(value); 960 return value; 961 } 962 963 @property float riderMaxRotation() 964 { 965 auto ptr = 59 in this.values; 966 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 967 return (float).init; 968 } 969 970 @property float riderMaxRotation(float value) 971 { 972 auto ptr = 59 in this.values; 973 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 974 else this.values[59] = new MetadataFloat(value); 975 return value; 976 } 977 978 @property float riderMinRotation() 979 { 980 auto ptr = 60 in this.values; 981 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 982 return (float).init; 983 } 984 985 @property float riderMinRotation(float value) 986 { 987 auto ptr = 60 in this.values; 988 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 989 else this.values[60] = new MetadataFloat(value); 990 return value; 991 } 992 993 @property float areaEffectCloudRadius() 994 { 995 auto ptr = 61 in this.values; 996 if(ptr && cast(MetadataFloat)*ptr) return (cast(MetadataFloat)*ptr).value; 997 return float(0.5); 998 } 999 1000 @property float areaEffectCloudRadius(float value) 1001 { 1002 auto ptr = 61 in this.values; 1003 if(ptr && cast(MetadataFloat)*ptr) (cast(MetadataFloat)*ptr).value = value; 1004 else this.values[61] = new MetadataFloat(value); 1005 return value; 1006 } 1007 1008 @property int areaEffectCloudWaiting() 1009 { 1010 auto ptr = 62 in this.values; 1011 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 1012 return (int).init; 1013 } 1014 1015 @property int areaEffectCloudWaiting(int value) 1016 { 1017 auto ptr = 62 in this.values; 1018 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 1019 else this.values[62] = new MetadataInt(value); 1020 return value; 1021 } 1022 1023 @property int areaEffectCloudParticle() 1024 { 1025 auto ptr = 63 in this.values; 1026 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 1027 return (int).init; 1028 } 1029 1030 @property int areaEffectCloudParticle(int value) 1031 { 1032 auto ptr = 63 in this.values; 1033 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 1034 else this.values[63] = new MetadataInt(value); 1035 return value; 1036 } 1037 1038 @property int shulkerPeakHeight() 1039 { 1040 auto ptr = 64 in this.values; 1041 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 1042 return (int).init; 1043 } 1044 1045 @property int shulkerPeakHeight(int value) 1046 { 1047 auto ptr = 64 in this.values; 1048 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 1049 else this.values[64] = new MetadataInt(value); 1050 return value; 1051 } 1052 1053 @property byte shulkerDirection() 1054 { 1055 auto ptr = 65 in this.values; 1056 if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value; 1057 return (byte).init; 1058 } 1059 1060 @property byte shulkerDirection(byte value) 1061 { 1062 auto ptr = 65 in this.values; 1063 if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value; 1064 else this.values[65] = new MetadataByte(value); 1065 return value; 1066 } 1067 1068 @property Vector!(int, "xyz") shulkerAttachment() 1069 { 1070 auto ptr = 67 in this.values; 1071 if(ptr && cast(MetadataBlockPosition)*ptr) return (cast(MetadataBlockPosition)*ptr).value; 1072 return (Vector!(int, "xyz")).init; 1073 } 1074 1075 @property Vector!(int, "xyz") shulkerAttachment(Vector!(int, "xyz") value) 1076 { 1077 auto ptr = 67 in this.values; 1078 if(ptr && cast(MetadataBlockPosition)*ptr) (cast(MetadataBlockPosition)*ptr).value = value; 1079 else this.values[67] = new MetadataBlockPosition(value); 1080 return value; 1081 } 1082 1083 @property long tradingPlayer() 1084 { 1085 auto ptr = 68 in this.values; 1086 if(ptr && cast(MetadataLong)*ptr) return (cast(MetadataLong)*ptr).value; 1087 return (long).init; 1088 } 1089 1090 @property long tradingPlayer(long value) 1091 { 1092 auto ptr = 68 in this.values; 1093 if(ptr && cast(MetadataLong)*ptr) (cast(MetadataLong)*ptr).value = value; 1094 else this.values[68] = new MetadataLong(value); 1095 return value; 1096 } 1097 1098 @property string commandBlockCommand() 1099 { 1100 auto ptr = 71 in this.values; 1101 if(ptr && cast(MetadataString)*ptr) return (cast(MetadataString)*ptr).value; 1102 return (string).init; 1103 } 1104 1105 @property string commandBlockCommand(string value) 1106 { 1107 auto ptr = 71 in this.values; 1108 if(ptr && cast(MetadataString)*ptr) (cast(MetadataString)*ptr).value = value; 1109 else this.values[71] = new MetadataString(value); 1110 return value; 1111 } 1112 1113 @property string commandBlockLastOutput() 1114 { 1115 auto ptr = 72 in this.values; 1116 if(ptr && cast(MetadataString)*ptr) return (cast(MetadataString)*ptr).value; 1117 return (string).init; 1118 } 1119 1120 @property string commandBlockLastOutput(string value) 1121 { 1122 auto ptr = 72 in this.values; 1123 if(ptr && cast(MetadataString)*ptr) (cast(MetadataString)*ptr).value = value; 1124 else this.values[72] = new MetadataString(value); 1125 return value; 1126 } 1127 1128 @property string commandBlockTrackOutput() 1129 { 1130 auto ptr = 73 in this.values; 1131 if(ptr && cast(MetadataString)*ptr) return (cast(MetadataString)*ptr).value; 1132 return (string).init; 1133 } 1134 1135 @property string commandBlockTrackOutput(string value) 1136 { 1137 auto ptr = 73 in this.values; 1138 if(ptr && cast(MetadataString)*ptr) (cast(MetadataString)*ptr).value = value; 1139 else this.values[73] = new MetadataString(value); 1140 return value; 1141 } 1142 1143 @property byte controllingRiderSeatNumber() 1144 { 1145 auto ptr = 74 in this.values; 1146 if(ptr && cast(MetadataByte)*ptr) return (cast(MetadataByte)*ptr).value; 1147 return (byte).init; 1148 } 1149 1150 @property byte controllingRiderSeatNumber(byte value) 1151 { 1152 auto ptr = 74 in this.values; 1153 if(ptr && cast(MetadataByte)*ptr) (cast(MetadataByte)*ptr).value = value; 1154 else this.values[74] = new MetadataByte(value); 1155 return value; 1156 } 1157 1158 @property int strength() 1159 { 1160 auto ptr = 75 in this.values; 1161 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 1162 return (int).init; 1163 } 1164 1165 @property int strength(int value) 1166 { 1167 auto ptr = 75 in this.values; 1168 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 1169 else this.values[75] = new MetadataInt(value); 1170 return value; 1171 } 1172 1173 @property int maxStrength() 1174 { 1175 auto ptr = 76 in this.values; 1176 if(ptr && cast(MetadataInt)*ptr) return (cast(MetadataInt)*ptr).value; 1177 return (int).init; 1178 } 1179 1180 @property int maxStrength(int value) 1181 { 1182 auto ptr = 76 in this.values; 1183 if(ptr && cast(MetadataInt)*ptr) (cast(MetadataInt)*ptr).value = value; 1184 else this.values[76] = new MetadataInt(value); 1185 return value; 1186 } 1187 1188 }