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