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