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