1 /*
2 * This file has been automatically generated by Soupply and released under the MIT license.
3 * Generated from bedrock201
4 */
5 module soupply.bedrock201.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.bedrock201.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.bedrock201.types.Slot value;
133
134 this() pure nothrow @safe @nogc
135 {
136 super(5);
137 }
138
139 this(soupply.bedrock201.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 }