Cuberite
A lightweight, fast and extensible game server for Minecraft
BlockStates.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Globals.h"
4 #include "BlockState.h"
5 #include "Defines.h"
6 
7 namespace Block
8 {
9  namespace AcaciaButton
10  {
11  enum class Face
12  {
13  Floor,
14  Wall,
15  Ceiling
16  };
17  constexpr BlockState AcaciaButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
18  {
19  if (Face == Face::Floor)
21  if (Powered) return 6442;
22  else return 6443;
24  if (Powered) return 6444;
25  else return 6445;
27  if (Powered) return 6446;
28  else return 6447;
29  else
30  if (Powered) return 6448;
31  else return 6449;
32  else if (Face == Face::Wall)
34  if (Powered) return 6450;
35  else return 6451;
37  if (Powered) return 6452;
38  else return 6453;
40  if (Powered) return 6454;
41  else return 6455;
42  else
43  if (Powered) return 6456;
44  else return 6457;
45  else
47  if (Powered) return 6458;
48  else return 6459;
50  if (Powered) return 6460;
51  else return 6461;
53  if (Powered) return 6462;
54  else return 6463;
55  else
56  if (Powered) return 6464;
57  else return 6465;
58  }
60  enum Face Face(BlockState Block);
62  bool Powered(BlockState Block);
63  }
64  namespace AcaciaDoor
65  {
66  enum class Half
67  {
68  Upper,
69  Lower
70  };
71  enum class Hinge
72  {
73  Left,
74  Right
75  };
76  constexpr BlockState AcaciaDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
77  {
79  if (Half == Half::Upper)
80  if (Hinge == Hinge::Left)
81  if (Open)
82  if (Powered) return 8930;
83  else return 8931;
84  else
85  if (Powered) return 8932;
86  else return 8933;
87  else
88  if (Open)
89  if (Powered) return 8934;
90  else return 8935;
91  else
92  if (Powered) return 8936;
93  else return 8937;
94  else
95  if (Hinge == Hinge::Left)
96  if (Open)
97  if (Powered) return 8938;
98  else return 8939;
99  else
100  if (Powered) return 8940;
101  else return 8941;
102  else
103  if (Open)
104  if (Powered) return 8942;
105  else return 8943;
106  else
107  if (Powered) return 8944;
108  else return 8945;
109  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
110  if (Half == Half::Upper)
111  if (Hinge == Hinge::Left)
112  if (Open)
113  if (Powered) return 8946;
114  else return 8947;
115  else
116  if (Powered) return 8948;
117  else return 8949;
118  else
119  if (Open)
120  if (Powered) return 8950;
121  else return 8951;
122  else
123  if (Powered) return 8952;
124  else return 8953;
125  else
126  if (Hinge == Hinge::Left)
127  if (Open)
128  if (Powered) return 8954;
129  else return 8955;
130  else
131  if (Powered) return 8956;
132  else return 8957;
133  else
134  if (Open)
135  if (Powered) return 8958;
136  else return 8959;
137  else
138  if (Powered) return 8960;
139  else return 8961;
140  else if (Facing == eBlockFace::BLOCK_FACE_XM)
141  if (Half == Half::Upper)
142  if (Hinge == Hinge::Left)
143  if (Open)
144  if (Powered) return 8962;
145  else return 8963;
146  else
147  if (Powered) return 8964;
148  else return 8965;
149  else
150  if (Open)
151  if (Powered) return 8966;
152  else return 8967;
153  else
154  if (Powered) return 8968;
155  else return 8969;
156  else
157  if (Hinge == Hinge::Left)
158  if (Open)
159  if (Powered) return 8970;
160  else return 8971;
161  else
162  if (Powered) return 8972;
163  else return 8973;
164  else
165  if (Open)
166  if (Powered) return 8974;
167  else return 8975;
168  else
169  if (Powered) return 8976;
170  else return 8977;
171  else
172  if (Half == Half::Upper)
173  if (Hinge == Hinge::Left)
174  if (Open)
175  if (Powered) return 8978;
176  else return 8979;
177  else
178  if (Powered) return 8980;
179  else return 8981;
180  else
181  if (Open)
182  if (Powered) return 8982;
183  else return 8983;
184  else
185  if (Powered) return 8984;
186  else return 8985;
187  else
188  if (Hinge == Hinge::Left)
189  if (Open)
190  if (Powered) return 8986;
191  else return 8987;
192  else
193  if (Powered) return 8988;
194  else return 8989;
195  else
196  if (Open)
197  if (Powered) return 8990;
198  else return 8991;
199  else
200  if (Powered) return 8992;
201  else return 8993;
202  }
205  enum Half Half(BlockState Block);
206  enum Hinge Hinge(BlockState Block);
207  bool Open(BlockState Block);
208  bool Powered(BlockState Block);
209  }
210  namespace AcaciaFence
211  {
212  constexpr BlockState AcaciaFence(const bool East, const bool North, const bool South, const bool West)
213  {
214  if (East)
215  if (North)
216  if (South)
217  if (West) return 8676;
218  else return 8677;
219  else
220  if (West) return 8680;
221  else return 8681;
222  else
223  if (South)
224  if (West) return 8684;
225  else return 8685;
226  else
227  if (West) return 8688;
228  else return 8689;
229  else
230  if (North)
231  if (South)
232  if (West) return 8692;
233  else return 8693;
234  else
235  if (West) return 8696;
236  else return 8697;
237  else
238  if (South)
239  if (West) return 8700;
240  else return 8701;
241  else
242  if (West) return 8704;
243  else return 8705;
244  }
246  bool East(BlockState Block);
247  bool North(BlockState Block);
248  bool South(BlockState Block);
249  bool West(BlockState Block);
250  }
251  namespace AcaciaFenceGate
252  {
253  constexpr BlockState AcaciaFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
254  {
256  if (InWall)
257  if (Open)
258  if (Powered) return 8514;
259  else return 8515;
260  else
261  if (Powered) return 8516;
262  else return 8517;
263  else
264  if (Open)
265  if (Powered) return 8518;
266  else return 8519;
267  else
268  if (Powered) return 8520;
269  else return 8521;
270  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
271  if (InWall)
272  if (Open)
273  if (Powered) return 8522;
274  else return 8523;
275  else
276  if (Powered) return 8524;
277  else return 8525;
278  else
279  if (Open)
280  if (Powered) return 8526;
281  else return 8527;
282  else
283  if (Powered) return 8528;
284  else return 8529;
285  else if (Facing == eBlockFace::BLOCK_FACE_XM)
286  if (InWall)
287  if (Open)
288  if (Powered) return 8530;
289  else return 8531;
290  else
291  if (Powered) return 8532;
292  else return 8533;
293  else
294  if (Open)
295  if (Powered) return 8534;
296  else return 8535;
297  else
298  if (Powered) return 8536;
299  else return 8537;
300  else
301  if (InWall)
302  if (Open)
303  if (Powered) return 8538;
304  else return 8539;
305  else
306  if (Powered) return 8540;
307  else return 8541;
308  else
309  if (Open)
310  if (Powered) return 8542;
311  else return 8543;
312  else
313  if (Powered) return 8544;
314  else return 8545;
315  }
318  bool InWall(BlockState Block);
319  bool Open(BlockState Block);
320  bool Powered(BlockState Block);
321  }
322  namespace AcaciaLeaves
323  {
324  constexpr BlockState AcaciaLeaves(const unsigned char Distance, const bool Persistent)
325  {
326  if (Distance == 1)
327  if (Persistent) return 201;
328  else return 202;
329  else if (Distance == 2)
330  if (Persistent) return 203;
331  else return 204;
332  else if (Distance == 3)
333  if (Persistent) return 205;
334  else return 206;
335  else if (Distance == 4)
336  if (Persistent) return 207;
337  else return 208;
338  else if (Distance == 5)
339  if (Persistent) return 209;
340  else return 210;
341  else if (Distance == 6)
342  if (Persistent) return 211;
343  else return 212;
344  else
345  if (Persistent) return 213;
346  else return 214;
347  }
349  unsigned char Distance(BlockState Block);
351  }
352  namespace AcaciaLog
353  {
354  enum class Axis
355  {
356  X,
357  Y,
358  Z
359  };
360  constexpr BlockState AcaciaLog(const enum Axis Axis)
361  {
362  if (Axis == Axis::X) return 85;
363  else if (Axis == Axis::Y) return 86;
364  else return 87;
365  }
367  enum Axis Axis(BlockState Block);
368  }
369  namespace AcaciaPlanks
370  {
372  {
373  return 19;
374  }
375  }
376  namespace AcaciaPressurePlate
377  {
378  constexpr BlockState AcaciaPressurePlate(const bool Powered)
379  {
380  if (Powered) return 3881;
381  else return 3882;
382  }
384  bool Powered(BlockState Block);
385  }
386  namespace AcaciaSapling
387  {
388  constexpr BlockState AcaciaSapling(const unsigned char Stage)
389  {
390  if (Stage == 0) return 29;
391  else return 30;
392  }
394  unsigned char Stage(BlockState Block);
395  }
396  namespace AcaciaSign
397  {
398  constexpr BlockState AcaciaSign(const unsigned char Rotation)
399  {
400  if (Rotation == 0) return 3478;
401  else if (Rotation == 1) return 3480;
402  else if (Rotation == 2) return 3482;
403  else if (Rotation == 3) return 3484;
404  else if (Rotation == 4) return 3486;
405  else if (Rotation == 5) return 3488;
406  else if (Rotation == 6) return 3490;
407  else if (Rotation == 7) return 3492;
408  else if (Rotation == 8) return 3494;
409  else if (Rotation == 9) return 3496;
410  else if (Rotation == 10) return 3498;
411  else if (Rotation == 11) return 3500;
412  else if (Rotation == 12) return 3502;
413  else if (Rotation == 13) return 3504;
414  else if (Rotation == 14) return 3506;
415  else return 3508;
416  }
418  unsigned char Rotation(BlockState Block);
419  }
420  namespace AcaciaSlab
421  {
422  enum class Type
423  {
424  Top,
425  Bottom,
426  Double
427  };
428  constexpr BlockState AcaciaSlab(const enum Type Type)
429  {
430  if (Type == Type::Top) return 8325;
431  else if (Type == Type::Bottom) return 8327;
432  else return 8329;
433  }
435  enum Type Type(BlockState Block);
436  }
437  namespace AcaciaStairs
438  {
439  enum class Half
440  {
441  Top,
442  Bottom
443  };
444  enum class Shape
445  {
446  Straight,
447  InnerLeft,
448  InnerRight,
449  OuterLeft,
450  OuterRight
451  };
452  constexpr BlockState AcaciaStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
453  {
455  if (Half == Half::Top)
456  if (Shape == Shape::Straight) return 7376;
457  else if (Shape == Shape::InnerLeft) return 7378;
458  else if (Shape == Shape::InnerRight) return 7380;
459  else if (Shape == Shape::OuterLeft) return 7382;
460  else return 7384;
461  else
462  if (Shape == Shape::Straight) return 7386;
463  else if (Shape == Shape::InnerLeft) return 7388;
464  else if (Shape == Shape::InnerRight) return 7390;
465  else if (Shape == Shape::OuterLeft) return 7392;
466  else return 7394;
467  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
468  if (Half == Half::Top)
469  if (Shape == Shape::Straight) return 7396;
470  else if (Shape == Shape::InnerLeft) return 7398;
471  else if (Shape == Shape::InnerRight) return 7400;
472  else if (Shape == Shape::OuterLeft) return 7402;
473  else return 7404;
474  else
475  if (Shape == Shape::Straight) return 7406;
476  else if (Shape == Shape::InnerLeft) return 7408;
477  else if (Shape == Shape::InnerRight) return 7410;
478  else if (Shape == Shape::OuterLeft) return 7412;
479  else return 7414;
480  else if (Facing == eBlockFace::BLOCK_FACE_XM)
481  if (Half == Half::Top)
482  if (Shape == Shape::Straight) return 7416;
483  else if (Shape == Shape::InnerLeft) return 7418;
484  else if (Shape == Shape::InnerRight) return 7420;
485  else if (Shape == Shape::OuterLeft) return 7422;
486  else return 7424;
487  else
488  if (Shape == Shape::Straight) return 7426;
489  else if (Shape == Shape::InnerLeft) return 7428;
490  else if (Shape == Shape::InnerRight) return 7430;
491  else if (Shape == Shape::OuterLeft) return 7432;
492  else return 7434;
493  else
494  if (Half == Half::Top)
495  if (Shape == Shape::Straight) return 7436;
496  else if (Shape == Shape::InnerLeft) return 7438;
497  else if (Shape == Shape::InnerRight) return 7440;
498  else if (Shape == Shape::OuterLeft) return 7442;
499  else return 7444;
500  else
501  if (Shape == Shape::Straight) return 7446;
502  else if (Shape == Shape::InnerLeft) return 7448;
503  else if (Shape == Shape::InnerRight) return 7450;
504  else if (Shape == Shape::OuterLeft) return 7452;
505  else return 7454;
506  }
509  enum Half Half(BlockState Block);
510  enum Shape Shape(BlockState Block);
511  }
512  namespace AcaciaTrapdoor
513  {
514  enum class Half
515  {
516  Top,
517  Bottom
518  };
519  constexpr BlockState AcaciaTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
520  {
522  if (Half == Half::Top)
523  if (Open)
524  if (Powered) return 4368;
525  else return 4370;
526  else
527  if (Powered) return 4372;
528  else return 4374;
529  else
530  if (Open)
531  if (Powered) return 4376;
532  else return 4378;
533  else
534  if (Powered) return 4380;
535  else return 4382;
536  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
537  if (Half == Half::Top)
538  if (Open)
539  if (Powered) return 4384;
540  else return 4386;
541  else
542  if (Powered) return 4388;
543  else return 4390;
544  else
545  if (Open)
546  if (Powered) return 4392;
547  else return 4394;
548  else
549  if (Powered) return 4396;
550  else return 4398;
551  else if (Facing == eBlockFace::BLOCK_FACE_XM)
552  if (Half == Half::Top)
553  if (Open)
554  if (Powered) return 4400;
555  else return 4402;
556  else
557  if (Powered) return 4404;
558  else return 4406;
559  else
560  if (Open)
561  if (Powered) return 4408;
562  else return 4410;
563  else
564  if (Powered) return 4412;
565  else return 4414;
566  else
567  if (Half == Half::Top)
568  if (Open)
569  if (Powered) return 4416;
570  else return 4418;
571  else
572  if (Powered) return 4420;
573  else return 4422;
574  else
575  if (Open)
576  if (Powered) return 4424;
577  else return 4426;
578  else
579  if (Powered) return 4428;
580  else return 4430;
581  }
584  enum Half Half(BlockState Block);
585  bool Open(BlockState Block);
586  bool Powered(BlockState Block);
587  }
588  namespace AcaciaWallSign
589  {
591  {
592  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3760;
593  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3762;
594  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3764;
595  else return 3766;
596  }
599  }
600  namespace AcaciaWood
601  {
602  enum class Axis
603  {
604  X,
605  Y,
606  Z
607  };
608  constexpr BlockState AcaciaWood(const enum Axis Axis)
609  {
610  if (Axis == Axis::X) return 121;
611  else if (Axis == Axis::Y) return 122;
612  else return 123;
613  }
615  enum Axis Axis(BlockState Block);
616  }
617  namespace ActivatorRail
618  {
619  enum class Shape
620  {
621  NorthSouth,
622  EastWest,
627  };
628  constexpr BlockState ActivatorRail(const bool Powered, const enum Shape Shape)
629  {
630  if (Powered)
631  if (Shape == Shape::NorthSouth) return 6823;
632  else if (Shape == Shape::EastWest) return 6824;
633  else if (Shape == Shape::AscendingEast) return 6825;
634  else if (Shape == Shape::AscendingWest) return 6826;
635  else if (Shape == Shape::AscendingNorth) return 6827;
636  else return 6828;
637  else
638  if (Shape == Shape::NorthSouth) return 6829;
639  else if (Shape == Shape::EastWest) return 6830;
640  else if (Shape == Shape::AscendingEast) return 6831;
641  else if (Shape == Shape::AscendingWest) return 6832;
642  else if (Shape == Shape::AscendingNorth) return 6833;
643  else return 6834;
644  }
646  bool Powered(BlockState Block);
647  enum Shape Shape(BlockState Block);
648  }
649  namespace Air
650  {
651  constexpr BlockState Air()
652  {
653  return -0;
654  }
655  }
656  namespace Allium
657  {
658  constexpr BlockState Allium()
659  {
660  return 1415;
661  }
662  }
663  namespace AncientDebris
664  {
666  {
667  return 15827;
668  }
669  }
670  namespace Andesite
671  {
672  constexpr BlockState Andesite()
673  {
674  return 6;
675  }
676  }
677  namespace AndesiteSlab
678  {
679  enum class Type
680  {
681  Top,
682  Bottom,
683  Double
684  };
685  constexpr BlockState AndesiteSlab(const enum Type Type)
686  {
687  if (Type == Type::Top) return 10844;
688  else if (Type == Type::Bottom) return 10846;
689  else return 10848;
690  }
692  enum Type Type(BlockState Block);
693  }
694  namespace AndesiteStairs
695  {
696  enum class Half
697  {
698  Top,
699  Bottom
700  };
701  enum class Shape
702  {
703  Straight,
704  InnerLeft,
705  InnerRight,
706  OuterLeft,
707  OuterRight
708  };
709  constexpr BlockState AndesiteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
710  {
712  if (Half == Half::Top)
713  if (Shape == Shape::Straight) return 10470;
714  else if (Shape == Shape::InnerLeft) return 10472;
715  else if (Shape == Shape::InnerRight) return 10474;
716  else if (Shape == Shape::OuterLeft) return 10476;
717  else return 10478;
718  else
719  if (Shape == Shape::Straight) return 10480;
720  else if (Shape == Shape::InnerLeft) return 10482;
721  else if (Shape == Shape::InnerRight) return 10484;
722  else if (Shape == Shape::OuterLeft) return 10486;
723  else return 10488;
724  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
725  if (Half == Half::Top)
726  if (Shape == Shape::Straight) return 10490;
727  else if (Shape == Shape::InnerLeft) return 10492;
728  else if (Shape == Shape::InnerRight) return 10494;
729  else if (Shape == Shape::OuterLeft) return 10496;
730  else return 10498;
731  else
732  if (Shape == Shape::Straight) return 10500;
733  else if (Shape == Shape::InnerLeft) return 10502;
734  else if (Shape == Shape::InnerRight) return 10504;
735  else if (Shape == Shape::OuterLeft) return 10506;
736  else return 10508;
737  else if (Facing == eBlockFace::BLOCK_FACE_XM)
738  if (Half == Half::Top)
739  if (Shape == Shape::Straight) return 10510;
740  else if (Shape == Shape::InnerLeft) return 10512;
741  else if (Shape == Shape::InnerRight) return 10514;
742  else if (Shape == Shape::OuterLeft) return 10516;
743  else return 10518;
744  else
745  if (Shape == Shape::Straight) return 10520;
746  else if (Shape == Shape::InnerLeft) return 10522;
747  else if (Shape == Shape::InnerRight) return 10524;
748  else if (Shape == Shape::OuterLeft) return 10526;
749  else return 10528;
750  else
751  if (Half == Half::Top)
752  if (Shape == Shape::Straight) return 10530;
753  else if (Shape == Shape::InnerLeft) return 10532;
754  else if (Shape == Shape::InnerRight) return 10534;
755  else if (Shape == Shape::OuterLeft) return 10536;
756  else return 10538;
757  else
758  if (Shape == Shape::Straight) return 10540;
759  else if (Shape == Shape::InnerLeft) return 10542;
760  else if (Shape == Shape::InnerRight) return 10544;
761  else if (Shape == Shape::OuterLeft) return 10546;
762  else return 10548;
763  }
766  enum Half Half(BlockState Block);
767  enum Shape Shape(BlockState Block);
768  }
769  namespace AndesiteWall
770  {
771  enum class East
772  {
773  None,
774  Low,
775  Tall
776  };
777  enum class North
778  {
779  None,
780  Low,
781  Tall
782  };
783  enum class South
784  {
785  None,
786  Low,
787  Tall
788  };
789  enum class West
790  {
791  None,
792  Low,
793  Tall
794  };
795  constexpr BlockState AndesiteWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
796  {
797  if (East == East::None)
798  if (North == North::None)
799  if (South == South::None)
800  if (Up)
801  if (West == West::None) return 13138;
802  else if (West == West::Low) return 13139;
803  else return 13140;
804  else
805  if (West == West::None) return 13144;
806  else if (West == West::Low) return 13145;
807  else return 13146;
808  else if (South == South::Low)
809  if (Up)
810  if (West == West::None) return 13150;
811  else if (West == West::Low) return 13151;
812  else return 13152;
813  else
814  if (West == West::None) return 13156;
815  else if (West == West::Low) return 13157;
816  else return 13158;
817  else
818  if (Up)
819  if (West == West::None) return 13162;
820  else if (West == West::Low) return 13163;
821  else return 13164;
822  else
823  if (West == West::None) return 13168;
824  else if (West == West::Low) return 13169;
825  else return 13170;
826  else if (North == North::Low)
827  if (South == South::None)
828  if (Up)
829  if (West == West::None) return 13174;
830  else if (West == West::Low) return 13175;
831  else return 13176;
832  else
833  if (West == West::None) return 13180;
834  else if (West == West::Low) return 13181;
835  else return 13182;
836  else if (South == South::Low)
837  if (Up)
838  if (West == West::None) return 13186;
839  else if (West == West::Low) return 13187;
840  else return 13188;
841  else
842  if (West == West::None) return 13192;
843  else if (West == West::Low) return 13193;
844  else return 13194;
845  else
846  if (Up)
847  if (West == West::None) return 13198;
848  else if (West == West::Low) return 13199;
849  else return 13200;
850  else
851  if (West == West::None) return 13204;
852  else if (West == West::Low) return 13205;
853  else return 13206;
854  else
855  if (South == South::None)
856  if (Up)
857  if (West == West::None) return 13210;
858  else if (West == West::Low) return 13211;
859  else return 13212;
860  else
861  if (West == West::None) return 13216;
862  else if (West == West::Low) return 13217;
863  else return 13218;
864  else if (South == South::Low)
865  if (Up)
866  if (West == West::None) return 13222;
867  else if (West == West::Low) return 13223;
868  else return 13224;
869  else
870  if (West == West::None) return 13228;
871  else if (West == West::Low) return 13229;
872  else return 13230;
873  else
874  if (Up)
875  if (West == West::None) return 13234;
876  else if (West == West::Low) return 13235;
877  else return 13236;
878  else
879  if (West == West::None) return 13240;
880  else if (West == West::Low) return 13241;
881  else return 13242;
882  else if (East == East::Low)
883  if (North == North::None)
884  if (South == South::None)
885  if (Up)
886  if (West == West::None) return 13246;
887  else if (West == West::Low) return 13247;
888  else return 13248;
889  else
890  if (West == West::None) return 13252;
891  else if (West == West::Low) return 13253;
892  else return 13254;
893  else if (South == South::Low)
894  if (Up)
895  if (West == West::None) return 13258;
896  else if (West == West::Low) return 13259;
897  else return 13260;
898  else
899  if (West == West::None) return 13264;
900  else if (West == West::Low) return 13265;
901  else return 13266;
902  else
903  if (Up)
904  if (West == West::None) return 13270;
905  else if (West == West::Low) return 13271;
906  else return 13272;
907  else
908  if (West == West::None) return 13276;
909  else if (West == West::Low) return 13277;
910  else return 13278;
911  else if (North == North::Low)
912  if (South == South::None)
913  if (Up)
914  if (West == West::None) return 13282;
915  else if (West == West::Low) return 13283;
916  else return 13284;
917  else
918  if (West == West::None) return 13288;
919  else if (West == West::Low) return 13289;
920  else return 13290;
921  else if (South == South::Low)
922  if (Up)
923  if (West == West::None) return 13294;
924  else if (West == West::Low) return 13295;
925  else return 13296;
926  else
927  if (West == West::None) return 13300;
928  else if (West == West::Low) return 13301;
929  else return 13302;
930  else
931  if (Up)
932  if (West == West::None) return 13306;
933  else if (West == West::Low) return 13307;
934  else return 13308;
935  else
936  if (West == West::None) return 13312;
937  else if (West == West::Low) return 13313;
938  else return 13314;
939  else
940  if (South == South::None)
941  if (Up)
942  if (West == West::None) return 13318;
943  else if (West == West::Low) return 13319;
944  else return 13320;
945  else
946  if (West == West::None) return 13324;
947  else if (West == West::Low) return 13325;
948  else return 13326;
949  else if (South == South::Low)
950  if (Up)
951  if (West == West::None) return 13330;
952  else if (West == West::Low) return 13331;
953  else return 13332;
954  else
955  if (West == West::None) return 13336;
956  else if (West == West::Low) return 13337;
957  else return 13338;
958  else
959  if (Up)
960  if (West == West::None) return 13342;
961  else if (West == West::Low) return 13343;
962  else return 13344;
963  else
964  if (West == West::None) return 13348;
965  else if (West == West::Low) return 13349;
966  else return 13350;
967  else
968  if (North == North::None)
969  if (South == South::None)
970  if (Up)
971  if (West == West::None) return 13354;
972  else if (West == West::Low) return 13355;
973  else return 13356;
974  else
975  if (West == West::None) return 13360;
976  else if (West == West::Low) return 13361;
977  else return 13362;
978  else if (South == South::Low)
979  if (Up)
980  if (West == West::None) return 13366;
981  else if (West == West::Low) return 13367;
982  else return 13368;
983  else
984  if (West == West::None) return 13372;
985  else if (West == West::Low) return 13373;
986  else return 13374;
987  else
988  if (Up)
989  if (West == West::None) return 13378;
990  else if (West == West::Low) return 13379;
991  else return 13380;
992  else
993  if (West == West::None) return 13384;
994  else if (West == West::Low) return 13385;
995  else return 13386;
996  else if (North == North::Low)
997  if (South == South::None)
998  if (Up)
999  if (West == West::None) return 13390;
1000  else if (West == West::Low) return 13391;
1001  else return 13392;
1002  else
1003  if (West == West::None) return 13396;
1004  else if (West == West::Low) return 13397;
1005  else return 13398;
1006  else if (South == South::Low)
1007  if (Up)
1008  if (West == West::None) return 13402;
1009  else if (West == West::Low) return 13403;
1010  else return 13404;
1011  else
1012  if (West == West::None) return 13408;
1013  else if (West == West::Low) return 13409;
1014  else return 13410;
1015  else
1016  if (Up)
1017  if (West == West::None) return 13414;
1018  else if (West == West::Low) return 13415;
1019  else return 13416;
1020  else
1021  if (West == West::None) return 13420;
1022  else if (West == West::Low) return 13421;
1023  else return 13422;
1024  else
1025  if (South == South::None)
1026  if (Up)
1027  if (West == West::None) return 13426;
1028  else if (West == West::Low) return 13427;
1029  else return 13428;
1030  else
1031  if (West == West::None) return 13432;
1032  else if (West == West::Low) return 13433;
1033  else return 13434;
1034  else if (South == South::Low)
1035  if (Up)
1036  if (West == West::None) return 13438;
1037  else if (West == West::Low) return 13439;
1038  else return 13440;
1039  else
1040  if (West == West::None) return 13444;
1041  else if (West == West::Low) return 13445;
1042  else return 13446;
1043  else
1044  if (Up)
1045  if (West == West::None) return 13450;
1046  else if (West == West::Low) return 13451;
1047  else return 13452;
1048  else
1049  if (West == West::None) return 13456;
1050  else if (West == West::Low) return 13457;
1051  else return 13458;
1052  }
1054  enum East East(BlockState Block);
1055  enum North North(BlockState Block);
1056  enum South South(BlockState Block);
1057  bool Up(BlockState Block);
1058  enum West West(BlockState Block);
1059  }
1060  namespace Anvil
1061  {
1063  {
1064  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6610;
1065  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6611;
1066  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6612;
1067  else return 6613;
1068  }
1069  BlockState Anvil();
1071  }
1072  namespace AttachedMelonStem
1073  {
1075  {
1076  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4768;
1077  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4769;
1078  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4770;
1079  else return 4771;
1080  }
1083  }
1084  namespace AttachedPumpkinStem
1085  {
1087  {
1088  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4764;
1089  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4765;
1090  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4766;
1091  else return 4767;
1092  }
1095  }
1096  namespace AzureBluet
1097  {
1099  {
1100  return 1416;
1101  }
1102  }
1103  namespace Bamboo
1104  {
1105  enum class Leaves
1106  {
1107  None,
1108  Small,
1109  Large
1110  };
1111  constexpr BlockState Bamboo(const unsigned char Age, const enum Leaves Leaves, const unsigned char Stage)
1112  {
1113  if (Age == 0)
1114  if (Leaves == Leaves::None)
1115  if (Stage == 0) return 9652;
1116  else return 9653;
1117  else if (Leaves == Leaves::Small)
1118  if (Stage == 0) return 9654;
1119  else return 9655;
1120  else
1121  if (Stage == 0) return 9656;
1122  else return 9657;
1123  else
1124  if (Leaves == Leaves::None)
1125  if (Stage == 0) return 9658;
1126  else return 9659;
1127  else if (Leaves == Leaves::Small)
1128  if (Stage == 0) return 9660;
1129  else return 9661;
1130  else
1131  if (Stage == 0) return 9662;
1132  else return 9663;
1133  }
1134  BlockState Bamboo();
1135  unsigned char Age(BlockState Block);
1136  enum Leaves Leaves(BlockState Block);
1137  unsigned char Stage(BlockState Block);
1138  }
1139  namespace BambooSapling
1140  {
1142  {
1143  return 9651;
1144  }
1145  }
1146  namespace Barrel
1147  {
1148  constexpr BlockState Barrel(const eBlockFace Facing, const bool Open)
1149  {
1151  if (Open) return 14791;
1152  else return 14792;
1153  else if (Facing == eBlockFace::BLOCK_FACE_XP)
1154  if (Open) return 14793;
1155  else return 14794;
1156  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1157  if (Open) return 14795;
1158  else return 14796;
1159  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1160  if (Open) return 14797;
1161  else return 14798;
1162  else if (Facing == eBlockFace::BLOCK_FACE_YP)
1163  if (Open) return 14799;
1164  else return 14800;
1165  else
1166  if (Open) return 14801;
1167  else return 14802;
1168  }
1169  BlockState Barrel();
1171  bool Open(BlockState Block);
1172  }
1173  namespace Barrier
1174  {
1175  constexpr BlockState Barrier()
1176  {
1177  return 7536;
1178  }
1179  }
1180  namespace Basalt
1181  {
1182  enum class Axis
1183  {
1184  X,
1185  Y,
1186  Z
1187  };
1188  constexpr BlockState Basalt(const enum Axis Axis)
1189  {
1190  if (Axis == Axis::X) return 4002;
1191  else if (Axis == Axis::Y) return 4003;
1192  else return 4004;
1193  }
1194  BlockState Basalt();
1195  enum Axis Axis(BlockState Block);
1196  }
1197  namespace Beacon
1198  {
1199  constexpr BlockState Beacon()
1200  {
1201  return 5656;
1202  }
1203  }
1204  namespace Bedrock
1205  {
1206  constexpr BlockState Bedrock()
1207  {
1208  return 33;
1209  }
1210  }
1211  namespace BeeNest
1212  {
1213  constexpr BlockState BeeNest(const eBlockFace Facing, const unsigned char HoneyLevel)
1214  {
1216  if (HoneyLevel == 0) return 15776;
1217  else if (HoneyLevel == 1) return 15777;
1218  else if (HoneyLevel == 2) return 15778;
1219  else if (HoneyLevel == 3) return 15779;
1220  else if (HoneyLevel == 4) return 15780;
1221  else return 15781;
1222  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1223  if (HoneyLevel == 0) return 15782;
1224  else if (HoneyLevel == 1) return 15783;
1225  else if (HoneyLevel == 2) return 15784;
1226  else if (HoneyLevel == 3) return 15785;
1227  else if (HoneyLevel == 4) return 15786;
1228  else return 15787;
1229  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1230  if (HoneyLevel == 0) return 15788;
1231  else if (HoneyLevel == 1) return 15789;
1232  else if (HoneyLevel == 2) return 15790;
1233  else if (HoneyLevel == 3) return 15791;
1234  else if (HoneyLevel == 4) return 15792;
1235  else return 15793;
1236  else
1237  if (HoneyLevel == 0) return 15794;
1238  else if (HoneyLevel == 1) return 15795;
1239  else if (HoneyLevel == 2) return 15796;
1240  else if (HoneyLevel == 3) return 15797;
1241  else if (HoneyLevel == 4) return 15798;
1242  else return 15799;
1243  }
1244  BlockState BeeNest();
1246  unsigned char HoneyLevel(BlockState Block);
1247  }
1248  namespace Beehive
1249  {
1250  constexpr BlockState Beehive(const eBlockFace Facing, const unsigned char HoneyLevel)
1251  {
1253  if (HoneyLevel == 0) return 15800;
1254  else if (HoneyLevel == 1) return 15801;
1255  else if (HoneyLevel == 2) return 15802;
1256  else if (HoneyLevel == 3) return 15803;
1257  else if (HoneyLevel == 4) return 15804;
1258  else return 15805;
1259  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1260  if (HoneyLevel == 0) return 15806;
1261  else if (HoneyLevel == 1) return 15807;
1262  else if (HoneyLevel == 2) return 15808;
1263  else if (HoneyLevel == 3) return 15809;
1264  else if (HoneyLevel == 4) return 15810;
1265  else return 15811;
1266  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1267  if (HoneyLevel == 0) return 15812;
1268  else if (HoneyLevel == 1) return 15813;
1269  else if (HoneyLevel == 2) return 15814;
1270  else if (HoneyLevel == 3) return 15815;
1271  else if (HoneyLevel == 4) return 15816;
1272  else return 15817;
1273  else
1274  if (HoneyLevel == 0) return 15818;
1275  else if (HoneyLevel == 1) return 15819;
1276  else if (HoneyLevel == 2) return 15820;
1277  else if (HoneyLevel == 3) return 15821;
1278  else if (HoneyLevel == 4) return 15822;
1279  else return 15823;
1280  }
1281  BlockState Beehive();
1283  unsigned char HoneyLevel(BlockState Block);
1284  }
1285  namespace Beetroots
1286  {
1287  constexpr BlockState Beetroots(const unsigned char Age)
1288  {
1289  if (Age == 0) return 9219;
1290  else if (Age == 1) return 9220;
1291  else if (Age == 2) return 9221;
1292  else return 9222;
1293  }
1295  unsigned char Age(BlockState Block);
1296  }
1297  namespace Bell
1298  {
1299  enum class Attachment
1300  {
1301  Floor,
1302  Ceiling,
1303  SingleWall,
1304  DoubleWall
1305  };
1306  constexpr BlockState Bell(const enum Attachment Attachment, const eBlockFace Facing, const bool Powered)
1307  {
1310  if (Powered) return 14854;
1311  else return 14855;
1312  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1313  if (Powered) return 14856;
1314  else return 14857;
1315  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1316  if (Powered) return 14858;
1317  else return 14859;
1318  else
1319  if (Powered) return 14860;
1320  else return 14861;
1321  else if (Attachment == Attachment::Ceiling)
1323  if (Powered) return 14862;
1324  else return 14863;
1325  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1326  if (Powered) return 14864;
1327  else return 14865;
1328  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1329  if (Powered) return 14866;
1330  else return 14867;
1331  else
1332  if (Powered) return 14868;
1333  else return 14869;
1334  else if (Attachment == Attachment::SingleWall)
1336  if (Powered) return 14870;
1337  else return 14871;
1338  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1339  if (Powered) return 14872;
1340  else return 14873;
1341  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1342  if (Powered) return 14874;
1343  else return 14875;
1344  else
1345  if (Powered) return 14876;
1346  else return 14877;
1347  else
1349  if (Powered) return 14878;
1350  else return 14879;
1351  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1352  if (Powered) return 14880;
1353  else return 14881;
1354  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1355  if (Powered) return 14882;
1356  else return 14883;
1357  else
1358  if (Powered) return 14884;
1359  else return 14885;
1360  }
1361  BlockState Bell();
1364  bool Powered(BlockState Block);
1365  }
1366  namespace BirchButton
1367  {
1368  enum class Face
1369  {
1370  Floor,
1371  Wall,
1372  Ceiling
1373  };
1374  constexpr BlockState BirchButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
1375  {
1376  if (Face == Face::Floor)
1378  if (Powered) return 6394;
1379  else return 6395;
1380  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1381  if (Powered) return 6396;
1382  else return 6397;
1383  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1384  if (Powered) return 6398;
1385  else return 6399;
1386  else
1387  if (Powered) return 6400;
1388  else return 6401;
1389  else if (Face == Face::Wall)
1391  if (Powered) return 6402;
1392  else return 6403;
1393  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1394  if (Powered) return 6404;
1395  else return 6405;
1396  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1397  if (Powered) return 6406;
1398  else return 6407;
1399  else
1400  if (Powered) return 6408;
1401  else return 6409;
1402  else
1404  if (Powered) return 6410;
1405  else return 6411;
1406  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1407  if (Powered) return 6412;
1408  else return 6413;
1409  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1410  if (Powered) return 6414;
1411  else return 6415;
1412  else
1413  if (Powered) return 6416;
1414  else return 6417;
1415  }
1417  enum Face Face(BlockState Block);
1419  bool Powered(BlockState Block);
1420  }
1421  namespace BirchDoor
1422  {
1423  enum class Half
1424  {
1425  Upper,
1426  Lower
1427  };
1428  enum class Hinge
1429  {
1430  Left,
1431  Right
1432  };
1433  constexpr BlockState BirchDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
1434  {
1436  if (Half == Half::Upper)
1437  if (Hinge == Hinge::Left)
1438  if (Open)
1439  if (Powered) return 8802;
1440  else return 8803;
1441  else
1442  if (Powered) return 8804;
1443  else return 8805;
1444  else
1445  if (Open)
1446  if (Powered) return 8806;
1447  else return 8807;
1448  else
1449  if (Powered) return 8808;
1450  else return 8809;
1451  else
1452  if (Hinge == Hinge::Left)
1453  if (Open)
1454  if (Powered) return 8810;
1455  else return 8811;
1456  else
1457  if (Powered) return 8812;
1458  else return 8813;
1459  else
1460  if (Open)
1461  if (Powered) return 8814;
1462  else return 8815;
1463  else
1464  if (Powered) return 8816;
1465  else return 8817;
1466  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1467  if (Half == Half::Upper)
1468  if (Hinge == Hinge::Left)
1469  if (Open)
1470  if (Powered) return 8818;
1471  else return 8819;
1472  else
1473  if (Powered) return 8820;
1474  else return 8821;
1475  else
1476  if (Open)
1477  if (Powered) return 8822;
1478  else return 8823;
1479  else
1480  if (Powered) return 8824;
1481  else return 8825;
1482  else
1483  if (Hinge == Hinge::Left)
1484  if (Open)
1485  if (Powered) return 8826;
1486  else return 8827;
1487  else
1488  if (Powered) return 8828;
1489  else return 8829;
1490  else
1491  if (Open)
1492  if (Powered) return 8830;
1493  else return 8831;
1494  else
1495  if (Powered) return 8832;
1496  else return 8833;
1497  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1498  if (Half == Half::Upper)
1499  if (Hinge == Hinge::Left)
1500  if (Open)
1501  if (Powered) return 8834;
1502  else return 8835;
1503  else
1504  if (Powered) return 8836;
1505  else return 8837;
1506  else
1507  if (Open)
1508  if (Powered) return 8838;
1509  else return 8839;
1510  else
1511  if (Powered) return 8840;
1512  else return 8841;
1513  else
1514  if (Hinge == Hinge::Left)
1515  if (Open)
1516  if (Powered) return 8842;
1517  else return 8843;
1518  else
1519  if (Powered) return 8844;
1520  else return 8845;
1521  else
1522  if (Open)
1523  if (Powered) return 8846;
1524  else return 8847;
1525  else
1526  if (Powered) return 8848;
1527  else return 8849;
1528  else
1529  if (Half == Half::Upper)
1530  if (Hinge == Hinge::Left)
1531  if (Open)
1532  if (Powered) return 8850;
1533  else return 8851;
1534  else
1535  if (Powered) return 8852;
1536  else return 8853;
1537  else
1538  if (Open)
1539  if (Powered) return 8854;
1540  else return 8855;
1541  else
1542  if (Powered) return 8856;
1543  else return 8857;
1544  else
1545  if (Hinge == Hinge::Left)
1546  if (Open)
1547  if (Powered) return 8858;
1548  else return 8859;
1549  else
1550  if (Powered) return 8860;
1551  else return 8861;
1552  else
1553  if (Open)
1554  if (Powered) return 8862;
1555  else return 8863;
1556  else
1557  if (Powered) return 8864;
1558  else return 8865;
1559  }
1562  enum Half Half(BlockState Block);
1563  enum Hinge Hinge(BlockState Block);
1564  bool Open(BlockState Block);
1565  bool Powered(BlockState Block);
1566  }
1567  namespace BirchFence
1568  {
1569  constexpr BlockState BirchFence(const bool East, const bool North, const bool South, const bool West)
1570  {
1571  if (East)
1572  if (North)
1573  if (South)
1574  if (West) return 8612;
1575  else return 8613;
1576  else
1577  if (West) return 8616;
1578  else return 8617;
1579  else
1580  if (South)
1581  if (West) return 8620;
1582  else return 8621;
1583  else
1584  if (West) return 8624;
1585  else return 8625;
1586  else
1587  if (North)
1588  if (South)
1589  if (West) return 8628;
1590  else return 8629;
1591  else
1592  if (West) return 8632;
1593  else return 8633;
1594  else
1595  if (South)
1596  if (West) return 8636;
1597  else return 8637;
1598  else
1599  if (West) return 8640;
1600  else return 8641;
1601  }
1603  bool East(BlockState Block);
1604  bool North(BlockState Block);
1605  bool South(BlockState Block);
1606  bool West(BlockState Block);
1607  }
1608  namespace BirchFenceGate
1609  {
1610  constexpr BlockState BirchFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
1611  {
1613  if (InWall)
1614  if (Open)
1615  if (Powered) return 8450;
1616  else return 8451;
1617  else
1618  if (Powered) return 8452;
1619  else return 8453;
1620  else
1621  if (Open)
1622  if (Powered) return 8454;
1623  else return 8455;
1624  else
1625  if (Powered) return 8456;
1626  else return 8457;
1627  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1628  if (InWall)
1629  if (Open)
1630  if (Powered) return 8458;
1631  else return 8459;
1632  else
1633  if (Powered) return 8460;
1634  else return 8461;
1635  else
1636  if (Open)
1637  if (Powered) return 8462;
1638  else return 8463;
1639  else
1640  if (Powered) return 8464;
1641  else return 8465;
1642  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1643  if (InWall)
1644  if (Open)
1645  if (Powered) return 8466;
1646  else return 8467;
1647  else
1648  if (Powered) return 8468;
1649  else return 8469;
1650  else
1651  if (Open)
1652  if (Powered) return 8470;
1653  else return 8471;
1654  else
1655  if (Powered) return 8472;
1656  else return 8473;
1657  else
1658  if (InWall)
1659  if (Open)
1660  if (Powered) return 8474;
1661  else return 8475;
1662  else
1663  if (Powered) return 8476;
1664  else return 8477;
1665  else
1666  if (Open)
1667  if (Powered) return 8478;
1668  else return 8479;
1669  else
1670  if (Powered) return 8480;
1671  else return 8481;
1672  }
1675  bool InWall(BlockState Block);
1676  bool Open(BlockState Block);
1677  bool Powered(BlockState Block);
1678  }
1679  namespace BirchLeaves
1680  {
1681  constexpr BlockState BirchLeaves(const unsigned char Distance, const bool Persistent)
1682  {
1683  if (Distance == 1)
1684  if (Persistent) return 173;
1685  else return 174;
1686  else if (Distance == 2)
1687  if (Persistent) return 175;
1688  else return 176;
1689  else if (Distance == 3)
1690  if (Persistent) return 177;
1691  else return 178;
1692  else if (Distance == 4)
1693  if (Persistent) return 179;
1694  else return 180;
1695  else if (Distance == 5)
1696  if (Persistent) return 181;
1697  else return 182;
1698  else if (Distance == 6)
1699  if (Persistent) return 183;
1700  else return 184;
1701  else
1702  if (Persistent) return 185;
1703  else return 186;
1704  }
1706  unsigned char Distance(BlockState Block);
1707  bool Persistent(BlockState Block);
1708  }
1709  namespace BirchLog
1710  {
1711  enum class Axis
1712  {
1713  X,
1714  Y,
1715  Z
1716  };
1717  constexpr BlockState BirchLog(const enum Axis Axis)
1718  {
1719  if (Axis == Axis::X) return 79;
1720  else if (Axis == Axis::Y) return 80;
1721  else return 81;
1722  }
1723  BlockState BirchLog();
1724  enum Axis Axis(BlockState Block);
1725  }
1726  namespace BirchPlanks
1727  {
1729  {
1730  return 17;
1731  }
1732  }
1733  namespace BirchPressurePlate
1734  {
1735  constexpr BlockState BirchPressurePlate(const bool Powered)
1736  {
1737  if (Powered) return 3877;
1738  else return 3878;
1739  }
1741  bool Powered(BlockState Block);
1742  }
1743  namespace BirchSapling
1744  {
1745  constexpr BlockState BirchSapling(const unsigned char Stage)
1746  {
1747  if (Stage == 0) return 25;
1748  else return 26;
1749  }
1751  unsigned char Stage(BlockState Block);
1752  }
1753  namespace BirchSign
1754  {
1755  constexpr BlockState BirchSign(const unsigned char Rotation)
1756  {
1757  if (Rotation == 0) return 3446;
1758  else if (Rotation == 1) return 3448;
1759  else if (Rotation == 2) return 3450;
1760  else if (Rotation == 3) return 3452;
1761  else if (Rotation == 4) return 3454;
1762  else if (Rotation == 5) return 3456;
1763  else if (Rotation == 6) return 3458;
1764  else if (Rotation == 7) return 3460;
1765  else if (Rotation == 8) return 3462;
1766  else if (Rotation == 9) return 3464;
1767  else if (Rotation == 10) return 3466;
1768  else if (Rotation == 11) return 3468;
1769  else if (Rotation == 12) return 3470;
1770  else if (Rotation == 13) return 3472;
1771  else if (Rotation == 14) return 3474;
1772  else return 3476;
1773  }
1775  unsigned char Rotation(BlockState Block);
1776  }
1777  namespace BirchSlab
1778  {
1779  enum class Type
1780  {
1781  Top,
1782  Bottom,
1783  Double
1784  };
1785  constexpr BlockState BirchSlab(const enum Type Type)
1786  {
1787  if (Type == Type::Top) return 8313;
1788  else if (Type == Type::Bottom) return 8315;
1789  else return 8317;
1790  }
1792  enum Type Type(BlockState Block);
1793  }
1794  namespace BirchStairs
1795  {
1796  enum class Half
1797  {
1798  Top,
1799  Bottom
1800  };
1801  enum class Shape
1802  {
1803  Straight,
1804  InnerLeft,
1805  InnerRight,
1806  OuterLeft,
1807  OuterRight
1808  };
1809  constexpr BlockState BirchStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
1810  {
1812  if (Half == Half::Top)
1813  if (Shape == Shape::Straight) return 5485;
1814  else if (Shape == Shape::InnerLeft) return 5487;
1815  else if (Shape == Shape::InnerRight) return 5489;
1816  else if (Shape == Shape::OuterLeft) return 5491;
1817  else return 5493;
1818  else
1819  if (Shape == Shape::Straight) return 5495;
1820  else if (Shape == Shape::InnerLeft) return 5497;
1821  else if (Shape == Shape::InnerRight) return 5499;
1822  else if (Shape == Shape::OuterLeft) return 5501;
1823  else return 5503;
1824  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1825  if (Half == Half::Top)
1826  if (Shape == Shape::Straight) return 5505;
1827  else if (Shape == Shape::InnerLeft) return 5507;
1828  else if (Shape == Shape::InnerRight) return 5509;
1829  else if (Shape == Shape::OuterLeft) return 5511;
1830  else return 5513;
1831  else
1832  if (Shape == Shape::Straight) return 5515;
1833  else if (Shape == Shape::InnerLeft) return 5517;
1834  else if (Shape == Shape::InnerRight) return 5519;
1835  else if (Shape == Shape::OuterLeft) return 5521;
1836  else return 5523;
1837  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1838  if (Half == Half::Top)
1839  if (Shape == Shape::Straight) return 5525;
1840  else if (Shape == Shape::InnerLeft) return 5527;
1841  else if (Shape == Shape::InnerRight) return 5529;
1842  else if (Shape == Shape::OuterLeft) return 5531;
1843  else return 5533;
1844  else
1845  if (Shape == Shape::Straight) return 5535;
1846  else if (Shape == Shape::InnerLeft) return 5537;
1847  else if (Shape == Shape::InnerRight) return 5539;
1848  else if (Shape == Shape::OuterLeft) return 5541;
1849  else return 5543;
1850  else
1851  if (Half == Half::Top)
1852  if (Shape == Shape::Straight) return 5545;
1853  else if (Shape == Shape::InnerLeft) return 5547;
1854  else if (Shape == Shape::InnerRight) return 5549;
1855  else if (Shape == Shape::OuterLeft) return 5551;
1856  else return 5553;
1857  else
1858  if (Shape == Shape::Straight) return 5555;
1859  else if (Shape == Shape::InnerLeft) return 5557;
1860  else if (Shape == Shape::InnerRight) return 5559;
1861  else if (Shape == Shape::OuterLeft) return 5561;
1862  else return 5563;
1863  }
1866  enum Half Half(BlockState Block);
1867  enum Shape Shape(BlockState Block);
1868  }
1869  namespace BirchTrapdoor
1870  {
1871  enum class Half
1872  {
1873  Top,
1874  Bottom
1875  };
1876  constexpr BlockState BirchTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
1877  {
1879  if (Half == Half::Top)
1880  if (Open)
1881  if (Powered) return 4240;
1882  else return 4242;
1883  else
1884  if (Powered) return 4244;
1885  else return 4246;
1886  else
1887  if (Open)
1888  if (Powered) return 4248;
1889  else return 4250;
1890  else
1891  if (Powered) return 4252;
1892  else return 4254;
1893  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
1894  if (Half == Half::Top)
1895  if (Open)
1896  if (Powered) return 4256;
1897  else return 4258;
1898  else
1899  if (Powered) return 4260;
1900  else return 4262;
1901  else
1902  if (Open)
1903  if (Powered) return 4264;
1904  else return 4266;
1905  else
1906  if (Powered) return 4268;
1907  else return 4270;
1908  else if (Facing == eBlockFace::BLOCK_FACE_XM)
1909  if (Half == Half::Top)
1910  if (Open)
1911  if (Powered) return 4272;
1912  else return 4274;
1913  else
1914  if (Powered) return 4276;
1915  else return 4278;
1916  else
1917  if (Open)
1918  if (Powered) return 4280;
1919  else return 4282;
1920  else
1921  if (Powered) return 4284;
1922  else return 4286;
1923  else
1924  if (Half == Half::Top)
1925  if (Open)
1926  if (Powered) return 4288;
1927  else return 4290;
1928  else
1929  if (Powered) return 4292;
1930  else return 4294;
1931  else
1932  if (Open)
1933  if (Powered) return 4296;
1934  else return 4298;
1935  else
1936  if (Powered) return 4300;
1937  else return 4302;
1938  }
1941  enum Half Half(BlockState Block);
1942  bool Open(BlockState Block);
1943  bool Powered(BlockState Block);
1944  }
1945  namespace BirchWallSign
1946  {
1948  {
1949  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3752;
1950  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3754;
1951  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3756;
1952  else return 3758;
1953  }
1956  }
1957  namespace BirchWood
1958  {
1959  enum class Axis
1960  {
1961  X,
1962  Y,
1963  Z
1964  };
1965  constexpr BlockState BirchWood(const enum Axis Axis)
1966  {
1967  if (Axis == Axis::X) return 115;
1968  else if (Axis == Axis::Y) return 116;
1969  else return 117;
1970  }
1972  enum Axis Axis(BlockState Block);
1973  }
1974  namespace BlackBanner
1975  {
1976  constexpr BlockState BlackBanner(const unsigned char Rotation)
1977  {
1978  if (Rotation == 0) return 8137;
1979  else if (Rotation == 1) return 8138;
1980  else if (Rotation == 2) return 8139;
1981  else if (Rotation == 3) return 8140;
1982  else if (Rotation == 4) return 8141;
1983  else if (Rotation == 5) return 8142;
1984  else if (Rotation == 6) return 8143;
1985  else if (Rotation == 7) return 8144;
1986  else if (Rotation == 8) return 8145;
1987  else if (Rotation == 9) return 8146;
1988  else if (Rotation == 10) return 8147;
1989  else if (Rotation == 11) return 8148;
1990  else if (Rotation == 12) return 8149;
1991  else if (Rotation == 13) return 8150;
1992  else if (Rotation == 14) return 8151;
1993  else return 8152;
1994  }
1996  unsigned char Rotation(BlockState Block);
1997  }
1998  namespace BlackBed
1999  {
2000  enum class Part
2001  {
2002  Head,
2003  Foot
2004  };
2005  constexpr BlockState BlackBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
2006  {
2008  if (Occupied)
2009  if (Part == Part::Head) return 1289;
2010  else return 1290;
2011  else
2012  if (Part == Part::Head) return 1291;
2013  else return 1292;
2014  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
2015  if (Occupied)
2016  if (Part == Part::Head) return 1293;
2017  else return 1294;
2018  else
2019  if (Part == Part::Head) return 1295;
2020  else return 1296;
2021  else if (Facing == eBlockFace::BLOCK_FACE_XM)
2022  if (Occupied)
2023  if (Part == Part::Head) return 1297;
2024  else return 1298;
2025  else
2026  if (Part == Part::Head) return 1299;
2027  else return 1300;
2028  else
2029  if (Occupied)
2030  if (Part == Part::Head) return 1301;
2031  else return 1302;
2032  else
2033  if (Part == Part::Head) return 1303;
2034  else return 1304;
2035  }
2036  BlockState BlackBed();
2038  bool Occupied(BlockState Block);
2039  enum Part Part(BlockState Block);
2040  }
2041  namespace BlackCarpet
2042  {
2044  {
2045  return 7881;
2046  }
2047  }
2048  namespace BlackConcrete
2049  {
2051  {
2052  return 9453;
2053  }
2054  }
2055  namespace BlackConcretePowder
2056  {
2058  {
2059  return 9469;
2060  }
2061  }
2062  namespace BlackGlazedTerracotta
2063  {
2065  {
2066  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9434;
2067  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9435;
2068  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9436;
2069  else return 9437;
2070  }
2073  }
2074  namespace BlackShulkerBox
2075  {
2077  {
2078  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9368;
2079  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9369;
2080  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9370;
2081  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9371;
2082  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9372;
2083  else return 9373;
2084  }
2087  }
2088  namespace BlackStainedGlass
2089  {
2091  {
2092  return 4110;
2093  }
2094  }
2095  namespace BlackStainedGlassPane
2096  {
2097  constexpr BlockState BlackStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
2098  {
2099  if (East)
2100  if (North)
2101  if (South)
2102  if (West) return 7345;
2103  else return 7346;
2104  else
2105  if (West) return 7349;
2106  else return 7350;
2107  else
2108  if (South)
2109  if (West) return 7353;
2110  else return 7354;
2111  else
2112  if (West) return 7357;
2113  else return 7358;
2114  else
2115  if (North)
2116  if (South)
2117  if (West) return 7361;
2118  else return 7362;
2119  else
2120  if (West) return 7365;
2121  else return 7366;
2122  else
2123  if (South)
2124  if (West) return 7369;
2125  else return 7370;
2126  else
2127  if (West) return 7373;
2128  else return 7374;
2129  }
2131  bool East(BlockState Block);
2132  bool North(BlockState Block);
2133  bool South(BlockState Block);
2134  bool West(BlockState Block);
2135  }
2136  namespace BlackTerracotta
2137  {
2139  {
2140  return 6862;
2141  }
2142  }
2143  namespace BlackWallBanner
2144  {
2146  {
2147  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8213;
2148  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8214;
2149  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8215;
2150  else return 8216;
2151  }
2154  }
2155  namespace BlackWool
2156  {
2157  constexpr BlockState BlackWool()
2158  {
2159  return 1399;
2160  }
2161  }
2162  namespace Blackstone
2163  {
2165  {
2166  return 15839;
2167  }
2168  }
2169  namespace BlackstoneSlab
2170  {
2171  enum class Type
2172  {
2173  Top,
2174  Bottom,
2175  Double
2176  };
2177  constexpr BlockState BlackstoneSlab(const enum Type Type)
2178  {
2179  if (Type == Type::Top) return 16245;
2180  else if (Type == Type::Bottom) return 16247;
2181  else return 16249;
2182  }
2184  enum Type Type(BlockState Block);
2185  }
2186  namespace BlackstoneStairs
2187  {
2188  enum class Half
2189  {
2190  Top,
2191  Bottom
2192  };
2193  enum class Shape
2194  {
2195  Straight,
2196  InnerLeft,
2197  InnerRight,
2198  OuterLeft,
2199  OuterRight
2200  };
2201  constexpr BlockState BlackstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
2202  {
2204  if (Half == Half::Top)
2205  if (Shape == Shape::Straight) return 15841;
2206  else if (Shape == Shape::InnerLeft) return 15843;
2207  else if (Shape == Shape::InnerRight) return 15845;
2208  else if (Shape == Shape::OuterLeft) return 15847;
2209  else return 15849;
2210  else
2211  if (Shape == Shape::Straight) return 15851;
2212  else if (Shape == Shape::InnerLeft) return 15853;
2213  else if (Shape == Shape::InnerRight) return 15855;
2214  else if (Shape == Shape::OuterLeft) return 15857;
2215  else return 15859;
2216  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
2217  if (Half == Half::Top)
2218  if (Shape == Shape::Straight) return 15861;
2219  else if (Shape == Shape::InnerLeft) return 15863;
2220  else if (Shape == Shape::InnerRight) return 15865;
2221  else if (Shape == Shape::OuterLeft) return 15867;
2222  else return 15869;
2223  else
2224  if (Shape == Shape::Straight) return 15871;
2225  else if (Shape == Shape::InnerLeft) return 15873;
2226  else if (Shape == Shape::InnerRight) return 15875;
2227  else if (Shape == Shape::OuterLeft) return 15877;
2228  else return 15879;
2229  else if (Facing == eBlockFace::BLOCK_FACE_XM)
2230  if (Half == Half::Top)
2231  if (Shape == Shape::Straight) return 15881;
2232  else if (Shape == Shape::InnerLeft) return 15883;
2233  else if (Shape == Shape::InnerRight) return 15885;
2234  else if (Shape == Shape::OuterLeft) return 15887;
2235  else return 15889;
2236  else
2237  if (Shape == Shape::Straight) return 15891;
2238  else if (Shape == Shape::InnerLeft) return 15893;
2239  else if (Shape == Shape::InnerRight) return 15895;
2240  else if (Shape == Shape::OuterLeft) return 15897;
2241  else return 15899;
2242  else
2243  if (Half == Half::Top)
2244  if (Shape == Shape::Straight) return 15901;
2245  else if (Shape == Shape::InnerLeft) return 15903;
2246  else if (Shape == Shape::InnerRight) return 15905;
2247  else if (Shape == Shape::OuterLeft) return 15907;
2248  else return 15909;
2249  else
2250  if (Shape == Shape::Straight) return 15911;
2251  else if (Shape == Shape::InnerLeft) return 15913;
2252  else if (Shape == Shape::InnerRight) return 15915;
2253  else if (Shape == Shape::OuterLeft) return 15917;
2254  else return 15919;
2255  }
2258  enum Half Half(BlockState Block);
2259  enum Shape Shape(BlockState Block);
2260  }
2261  namespace BlackstoneWall
2262  {
2263  enum class East
2264  {
2265  None,
2266  Low,
2267  Tall
2268  };
2269  enum class North
2270  {
2271  None,
2272  Low,
2273  Tall
2274  };
2275  enum class South
2276  {
2277  None,
2278  Low,
2279  Tall
2280  };
2281  enum class West
2282  {
2283  None,
2284  Low,
2285  Tall
2286  };
2287  constexpr BlockState BlackstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
2288  {
2289  if (East == East::None)
2290  if (North == North::None)
2291  if (South == South::None)
2292  if (Up)
2293  if (West == West::None) return 15923;
2294  else if (West == West::Low) return 15924;
2295  else return 15925;
2296  else
2297  if (West == West::None) return 15929;
2298  else if (West == West::Low) return 15930;
2299  else return 15931;
2300  else if (South == South::Low)
2301  if (Up)
2302  if (West == West::None) return 15935;
2303  else if (West == West::Low) return 15936;
2304  else return 15937;
2305  else
2306  if (West == West::None) return 15941;
2307  else if (West == West::Low) return 15942;
2308  else return 15943;
2309  else
2310  if (Up)
2311  if (West == West::None) return 15947;
2312  else if (West == West::Low) return 15948;
2313  else return 15949;
2314  else
2315  if (West == West::None) return 15953;
2316  else if (West == West::Low) return 15954;
2317  else return 15955;
2318  else if (North == North::Low)
2319  if (South == South::None)
2320  if (Up)
2321  if (West == West::None) return 15959;
2322  else if (West == West::Low) return 15960;
2323  else return 15961;
2324  else
2325  if (West == West::None) return 15965;
2326  else if (West == West::Low) return 15966;
2327  else return 15967;
2328  else if (South == South::Low)
2329  if (Up)
2330  if (West == West::None) return 15971;
2331  else if (West == West::Low) return 15972;
2332  else return 15973;
2333  else
2334  if (West == West::None) return 15977;
2335  else if (West == West::Low) return 15978;
2336  else return 15979;
2337  else
2338  if (Up)
2339  if (West == West::None) return 15983;
2340  else if (West == West::Low) return 15984;
2341  else return 15985;
2342  else
2343  if (West == West::None) return 15989;
2344  else if (West == West::Low) return 15990;
2345  else return 15991;
2346  else
2347  if (South == South::None)
2348  if (Up)
2349  if (West == West::None) return 15995;
2350  else if (West == West::Low) return 15996;
2351  else return 15997;
2352  else
2353  if (West == West::None) return 16001;
2354  else if (West == West::Low) return 16002;
2355  else return 16003;
2356  else if (South == South::Low)
2357  if (Up)
2358  if (West == West::None) return 16007;
2359  else if (West == West::Low) return 16008;
2360  else return 16009;
2361  else
2362  if (West == West::None) return 16013;
2363  else if (West == West::Low) return 16014;
2364  else return 16015;
2365  else
2366  if (Up)
2367  if (West == West::None) return 16019;
2368  else if (West == West::Low) return 16020;
2369  else return 16021;
2370  else
2371  if (West == West::None) return 16025;
2372  else if (West == West::Low) return 16026;
2373  else return 16027;
2374  else if (East == East::Low)
2375  if (North == North::None)
2376  if (South == South::None)
2377  if (Up)
2378  if (West == West::None) return 16031;
2379  else if (West == West::Low) return 16032;
2380  else return 16033;
2381  else
2382  if (West == West::None) return 16037;
2383  else if (West == West::Low) return 16038;
2384  else return 16039;
2385  else if (South == South::Low)
2386  if (Up)
2387  if (West == West::None) return 16043;
2388  else if (West == West::Low) return 16044;
2389  else return 16045;
2390  else
2391  if (West == West::None) return 16049;
2392  else if (West == West::Low) return 16050;
2393  else return 16051;
2394  else
2395  if (Up)
2396  if (West == West::None) return 16055;
2397  else if (West == West::Low) return 16056;
2398  else return 16057;
2399  else
2400  if (West == West::None) return 16061;
2401  else if (West == West::Low) return 16062;
2402  else return 16063;
2403  else if (North == North::Low)
2404  if (South == South::None)
2405  if (Up)
2406  if (West == West::None) return 16067;
2407  else if (West == West::Low) return 16068;
2408  else return 16069;
2409  else
2410  if (West == West::None) return 16073;
2411  else if (West == West::Low) return 16074;
2412  else return 16075;
2413  else if (South == South::Low)
2414  if (Up)
2415  if (West == West::None) return 16079;
2416  else if (West == West::Low) return 16080;
2417  else return 16081;
2418  else
2419  if (West == West::None) return 16085;
2420  else if (West == West::Low) return 16086;
2421  else return 16087;
2422  else
2423  if (Up)
2424  if (West == West::None) return 16091;
2425  else if (West == West::Low) return 16092;
2426  else return 16093;
2427  else
2428  if (West == West::None) return 16097;
2429  else if (West == West::Low) return 16098;
2430  else return 16099;
2431  else
2432  if (South == South::None)
2433  if (Up)
2434  if (West == West::None) return 16103;
2435  else if (West == West::Low) return 16104;
2436  else return 16105;
2437  else
2438  if (West == West::None) return 16109;
2439  else if (West == West::Low) return 16110;
2440  else return 16111;
2441  else if (South == South::Low)
2442  if (Up)
2443  if (West == West::None) return 16115;
2444  else if (West == West::Low) return 16116;
2445  else return 16117;
2446  else
2447  if (West == West::None) return 16121;
2448  else if (West == West::Low) return 16122;
2449  else return 16123;
2450  else
2451  if (Up)
2452  if (West == West::None) return 16127;
2453  else if (West == West::Low) return 16128;
2454  else return 16129;
2455  else
2456  if (West == West::None) return 16133;
2457  else if (West == West::Low) return 16134;
2458  else return 16135;
2459  else
2460  if (North == North::None)
2461  if (South == South::None)
2462  if (Up)
2463  if (West == West::None) return 16139;
2464  else if (West == West::Low) return 16140;
2465  else return 16141;
2466  else
2467  if (West == West::None) return 16145;
2468  else if (West == West::Low) return 16146;
2469  else return 16147;
2470  else if (South == South::Low)
2471  if (Up)
2472  if (West == West::None) return 16151;
2473  else if (West == West::Low) return 16152;
2474  else return 16153;
2475  else
2476  if (West == West::None) return 16157;
2477  else if (West == West::Low) return 16158;
2478  else return 16159;
2479  else
2480  if (Up)
2481  if (West == West::None) return 16163;
2482  else if (West == West::Low) return 16164;
2483  else return 16165;
2484  else
2485  if (West == West::None) return 16169;
2486  else if (West == West::Low) return 16170;
2487  else return 16171;
2488  else if (North == North::Low)
2489  if (South == South::None)
2490  if (Up)
2491  if (West == West::None) return 16175;
2492  else if (West == West::Low) return 16176;
2493  else return 16177;
2494  else
2495  if (West == West::None) return 16181;
2496  else if (West == West::Low) return 16182;
2497  else return 16183;
2498  else if (South == South::Low)
2499  if (Up)
2500  if (West == West::None) return 16187;
2501  else if (West == West::Low) return 16188;
2502  else return 16189;
2503  else
2504  if (West == West::None) return 16193;
2505  else if (West == West::Low) return 16194;
2506  else return 16195;
2507  else
2508  if (Up)
2509  if (West == West::None) return 16199;
2510  else if (West == West::Low) return 16200;
2511  else return 16201;
2512  else
2513  if (West == West::None) return 16205;
2514  else if (West == West::Low) return 16206;
2515  else return 16207;
2516  else
2517  if (South == South::None)
2518  if (Up)
2519  if (West == West::None) return 16211;
2520  else if (West == West::Low) return 16212;
2521  else return 16213;
2522  else
2523  if (West == West::None) return 16217;
2524  else if (West == West::Low) return 16218;
2525  else return 16219;
2526  else if (South == South::Low)
2527  if (Up)
2528  if (West == West::None) return 16223;
2529  else if (West == West::Low) return 16224;
2530  else return 16225;
2531  else
2532  if (West == West::None) return 16229;
2533  else if (West == West::Low) return 16230;
2534  else return 16231;
2535  else
2536  if (Up)
2537  if (West == West::None) return 16235;
2538  else if (West == West::Low) return 16236;
2539  else return 16237;
2540  else
2541  if (West == West::None) return 16241;
2542  else if (West == West::Low) return 16242;
2543  else return 16243;
2544  }
2546  enum East East(BlockState Block);
2547  enum North North(BlockState Block);
2548  enum South South(BlockState Block);
2549  bool Up(BlockState Block);
2550  enum West West(BlockState Block);
2551  }
2552  namespace BlastFurnace
2553  {
2554  constexpr BlockState BlastFurnace(const eBlockFace Facing, const bool Lit)
2555  {
2557  if (Lit) return 14811;
2558  else return 14812;
2559  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
2560  if (Lit) return 14813;
2561  else return 14814;
2562  else if (Facing == eBlockFace::BLOCK_FACE_XM)
2563  if (Lit) return 14815;
2564  else return 14816;
2565  else
2566  if (Lit) return 14817;
2567  else return 14818;
2568  }
2571  bool Lit(BlockState Block);
2572  }
2573  namespace BlueBanner
2574  {
2575  constexpr BlockState BlueBanner(const unsigned char Rotation)
2576  {
2577  if (Rotation == 0) return 8073;
2578  else if (Rotation == 1) return 8074;
2579  else if (Rotation == 2) return 8075;
2580  else if (Rotation == 3) return 8076;
2581  else if (Rotation == 4) return 8077;
2582  else if (Rotation == 5) return 8078;
2583  else if (Rotation == 6) return 8079;
2584  else if (Rotation == 7) return 8080;
2585  else if (Rotation == 8) return 8081;
2586  else if (Rotation == 9) return 8082;
2587  else if (Rotation == 10) return 8083;
2588  else if (Rotation == 11) return 8084;
2589  else if (Rotation == 12) return 8085;
2590  else if (Rotation == 13) return 8086;
2591  else if (Rotation == 14) return 8087;
2592  else return 8088;
2593  }
2595  unsigned char Rotation(BlockState Block);
2596  }
2597  namespace BlueBed
2598  {
2599  enum class Part
2600  {
2601  Head,
2602  Foot
2603  };
2604  constexpr BlockState BlueBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
2605  {
2607  if (Occupied)
2608  if (Part == Part::Head) return 1225;
2609  else return 1226;
2610  else
2611  if (Part == Part::Head) return 1227;
2612  else return 1228;
2613  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
2614  if (Occupied)
2615  if (Part == Part::Head) return 1229;
2616  else return 1230;
2617  else
2618  if (Part == Part::Head) return 1231;
2619  else return 1232;
2620  else if (Facing == eBlockFace::BLOCK_FACE_XM)
2621  if (Occupied)
2622  if (Part == Part::Head) return 1233;
2623  else return 1234;
2624  else
2625  if (Part == Part::Head) return 1235;
2626  else return 1236;
2627  else
2628  if (Occupied)
2629  if (Part == Part::Head) return 1237;
2630  else return 1238;
2631  else
2632  if (Part == Part::Head) return 1239;
2633  else return 1240;
2634  }
2635  BlockState BlueBed();
2637  bool Occupied(BlockState Block);
2638  enum Part Part(BlockState Block);
2639  }
2640  namespace BlueCarpet
2641  {
2643  {
2644  return 7877;
2645  }
2646  }
2647  namespace BlueConcrete
2648  {
2650  {
2651  return 9449;
2652  }
2653  }
2654  namespace BlueConcretePowder
2655  {
2657  {
2658  return 9465;
2659  }
2660  }
2661  namespace BlueGlazedTerracotta
2662  {
2664  {
2665  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9418;
2666  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9419;
2667  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9420;
2668  else return 9421;
2669  }
2672  }
2673  namespace BlueIce
2674  {
2675  constexpr BlockState BlueIce()
2676  {
2677  return 9648;
2678  }
2679  }
2680  namespace BlueOrchid
2681  {
2683  {
2684  return 1414;
2685  }
2686  }
2687  namespace BlueShulkerBox
2688  {
2690  {
2691  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9344;
2692  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9345;
2693  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9346;
2694  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9347;
2695  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9348;
2696  else return 9349;
2697  }
2700  }
2701  namespace BlueStainedGlass
2702  {
2704  {
2705  return 4106;
2706  }
2707  }
2708  namespace BlueStainedGlassPane
2709  {
2710  constexpr BlockState BlueStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
2711  {
2712  if (East)
2713  if (North)
2714  if (South)
2715  if (West) return 7217;
2716  else return 7218;
2717  else
2718  if (West) return 7221;
2719  else return 7222;
2720  else
2721  if (South)
2722  if (West) return 7225;
2723  else return 7226;
2724  else
2725  if (West) return 7229;
2726  else return 7230;
2727  else
2728  if (North)
2729  if (South)
2730  if (West) return 7233;
2731  else return 7234;
2732  else
2733  if (West) return 7237;
2734  else return 7238;
2735  else
2736  if (South)
2737  if (West) return 7241;
2738  else return 7242;
2739  else
2740  if (West) return 7245;
2741  else return 7246;
2742  }
2744  bool East(BlockState Block);
2745  bool North(BlockState Block);
2746  bool South(BlockState Block);
2747  bool West(BlockState Block);
2748  }
2749  namespace BlueTerracotta
2750  {
2752  {
2753  return 6858;
2754  }
2755  }
2756  namespace BlueWallBanner
2757  {
2759  {
2760  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8197;
2761  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8198;
2762  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8199;
2763  else return 8200;
2764  }
2767  }
2768  namespace BlueWool
2769  {
2770  constexpr BlockState BlueWool()
2771  {
2772  return 1395;
2773  }
2774  }
2775  namespace BoneBlock
2776  {
2777  enum class Axis
2778  {
2779  X,
2780  Y,
2781  Z
2782  };
2783  constexpr BlockState BoneBlock(const enum Axis Axis)
2784  {
2785  if (Axis == Axis::X) return 9256;
2786  else if (Axis == Axis::Y) return 9257;
2787  else return 9258;
2788  }
2790  enum Axis Axis(BlockState Block);
2791  }
2792  namespace Bookshelf
2793  {
2794  constexpr BlockState Bookshelf()
2795  {
2796  return 1432;
2797  }
2798  }
2799  namespace BrainCoral
2800  {
2802  {
2803  return 9533;
2804  }
2805  }
2806  namespace BrainCoralBlock
2807  {
2809  {
2810  return 9516;
2811  }
2812  }
2813  namespace BrainCoralFan
2814  {
2816  {
2817  return 9553;
2818  }
2819  }
2820  namespace BrainCoralWallFan
2821  {
2823  {
2824  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9609;
2825  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9611;
2826  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9613;
2827  else return 9615;
2828  }
2831  }
2832  namespace BrewingStand
2833  {
2834  constexpr BlockState BrewingStand(const bool HasBottle_0, const bool HasBottle_1, const bool HasBottle_2)
2835  {
2836  if (HasBottle_0)
2837  if (HasBottle_1)
2838  if (HasBottle_2) return 5133;
2839  else return 5134;
2840  else
2841  if (HasBottle_2) return 5135;
2842  else return 5136;
2843  else
2844  if (HasBottle_1)
2845  if (HasBottle_2) return 5137;
2846  else return 5138;
2847  else
2848  if (HasBottle_2) return 5139;
2849  else return 5140;
2850  }
2855  }
2856  namespace BrickSlab
2857  {
2858  enum class Type
2859  {
2860  Top,
2861  Bottom,
2862  Double
2863  };
2864  constexpr BlockState BrickSlab(const enum Type Type)
2865  {
2866  if (Type == Type::Top) return 8373;
2867  else if (Type == Type::Bottom) return 8375;
2868  else return 8377;
2869  }
2871  enum Type Type(BlockState Block);
2872  }
2873  namespace BrickStairs
2874  {
2875  enum class Half
2876  {
2877  Top,
2878  Bottom
2879  };
2880  enum class Shape
2881  {
2882  Straight,
2883  InnerLeft,
2884  InnerRight,
2885  OuterLeft,
2886  OuterRight
2887  };
2888  constexpr BlockState BrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
2889  {
2891  if (Half == Half::Top)
2892  if (Shape == Shape::Straight) return 4853;
2893  else if (Shape == Shape::InnerLeft) return 4855;
2894  else if (Shape == Shape::InnerRight) return 4857;
2895  else if (Shape == Shape::OuterLeft) return 4859;
2896  else return 4861;
2897  else
2898  if (Shape == Shape::Straight) return 4863;
2899  else if (Shape == Shape::InnerLeft) return 4865;
2900  else if (Shape == Shape::InnerRight) return 4867;
2901  else if (Shape == Shape::OuterLeft) return 4869;
2902  else return 4871;
2903  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
2904  if (Half == Half::Top)
2905  if (Shape == Shape::Straight) return 4873;
2906  else if (Shape == Shape::InnerLeft) return 4875;
2907  else if (Shape == Shape::InnerRight) return 4877;
2908  else if (Shape == Shape::OuterLeft) return 4879;
2909  else return 4881;
2910  else
2911  if (Shape == Shape::Straight) return 4883;
2912  else if (Shape == Shape::InnerLeft) return 4885;
2913  else if (Shape == Shape::InnerRight) return 4887;
2914  else if (Shape == Shape::OuterLeft) return 4889;
2915  else return 4891;
2916  else if (Facing == eBlockFace::BLOCK_FACE_XM)
2917  if (Half == Half::Top)
2918  if (Shape == Shape::Straight) return 4893;
2919  else if (Shape == Shape::InnerLeft) return 4895;
2920  else if (Shape == Shape::InnerRight) return 4897;
2921  else if (Shape == Shape::OuterLeft) return 4899;
2922  else return 4901;
2923  else
2924  if (Shape == Shape::Straight) return 4903;
2925  else if (Shape == Shape::InnerLeft) return 4905;
2926  else if (Shape == Shape::InnerRight) return 4907;
2927  else if (Shape == Shape::OuterLeft) return 4909;
2928  else return 4911;
2929  else
2930  if (Half == Half::Top)
2931  if (Shape == Shape::Straight) return 4913;
2932  else if (Shape == Shape::InnerLeft) return 4915;
2933  else if (Shape == Shape::InnerRight) return 4917;
2934  else if (Shape == Shape::OuterLeft) return 4919;
2935  else return 4921;
2936  else
2937  if (Shape == Shape::Straight) return 4923;
2938  else if (Shape == Shape::InnerLeft) return 4925;
2939  else if (Shape == Shape::InnerRight) return 4927;
2940  else if (Shape == Shape::OuterLeft) return 4929;
2941  else return 4931;
2942  }
2945  enum Half Half(BlockState Block);
2946  enum Shape Shape(BlockState Block);
2947  }
2948  namespace BrickWall
2949  {
2950  enum class East
2951  {
2952  None,
2953  Low,
2954  Tall
2955  };
2956  enum class North
2957  {
2958  None,
2959  Low,
2960  Tall
2961  };
2962  enum class South
2963  {
2964  None,
2965  Low,
2966  Tall
2967  };
2968  enum class West
2969  {
2970  None,
2971  Low,
2972  Tall
2973  };
2974  constexpr BlockState BrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
2975  {
2976  if (East == East::None)
2977  if (North == North::None)
2978  if (South == South::None)
2979  if (Up)
2980  if (West == West::None) return 10870;
2981  else if (West == West::Low) return 10871;
2982  else return 10872;
2983  else
2984  if (West == West::None) return 10876;
2985  else if (West == West::Low) return 10877;
2986  else return 10878;
2987  else if (South == South::Low)
2988  if (Up)
2989  if (West == West::None) return 10882;
2990  else if (West == West::Low) return 10883;
2991  else return 10884;
2992  else
2993  if (West == West::None) return 10888;
2994  else if (West == West::Low) return 10889;
2995  else return 10890;
2996  else
2997  if (Up)
2998  if (West == West::None) return 10894;
2999  else if (West == West::Low) return 10895;
3000  else return 10896;
3001  else
3002  if (West == West::None) return 10900;
3003  else if (West == West::Low) return 10901;
3004  else return 10902;
3005  else if (North == North::Low)
3006  if (South == South::None)
3007  if (Up)
3008  if (West == West::None) return 10906;
3009  else if (West == West::Low) return 10907;
3010  else return 10908;
3011  else
3012  if (West == West::None) return 10912;
3013  else if (West == West::Low) return 10913;
3014  else return 10914;
3015  else if (South == South::Low)
3016  if (Up)
3017  if (West == West::None) return 10918;
3018  else if (West == West::Low) return 10919;
3019  else return 10920;
3020  else
3021  if (West == West::None) return 10924;
3022  else if (West == West::Low) return 10925;
3023  else return 10926;
3024  else
3025  if (Up)
3026  if (West == West::None) return 10930;
3027  else if (West == West::Low) return 10931;
3028  else return 10932;
3029  else
3030  if (West == West::None) return 10936;
3031  else if (West == West::Low) return 10937;
3032  else return 10938;
3033  else
3034  if (South == South::None)
3035  if (Up)
3036  if (West == West::None) return 10942;
3037  else if (West == West::Low) return 10943;
3038  else return 10944;
3039  else
3040  if (West == West::None) return 10948;
3041  else if (West == West::Low) return 10949;
3042  else return 10950;
3043  else if (South == South::Low)
3044  if (Up)
3045  if (West == West::None) return 10954;
3046  else if (West == West::Low) return 10955;
3047  else return 10956;
3048  else
3049  if (West == West::None) return 10960;
3050  else if (West == West::Low) return 10961;
3051  else return 10962;
3052  else
3053  if (Up)
3054  if (West == West::None) return 10966;
3055  else if (West == West::Low) return 10967;
3056  else return 10968;
3057  else
3058  if (West == West::None) return 10972;
3059  else if (West == West::Low) return 10973;
3060  else return 10974;
3061  else if (East == East::Low)
3062  if (North == North::None)
3063  if (South == South::None)
3064  if (Up)
3065  if (West == West::None) return 10978;
3066  else if (West == West::Low) return 10979;
3067  else return 10980;
3068  else
3069  if (West == West::None) return 10984;
3070  else if (West == West::Low) return 10985;
3071  else return 10986;
3072  else if (South == South::Low)
3073  if (Up)
3074  if (West == West::None) return 10990;
3075  else if (West == West::Low) return 10991;
3076  else return 10992;
3077  else
3078  if (West == West::None) return 10996;
3079  else if (West == West::Low) return 10997;
3080  else return 10998;
3081  else
3082  if (Up)
3083  if (West == West::None) return 11002;
3084  else if (West == West::Low) return 11003;
3085  else return 11004;
3086  else
3087  if (West == West::None) return 11008;
3088  else if (West == West::Low) return 11009;
3089  else return 11010;
3090  else if (North == North::Low)
3091  if (South == South::None)
3092  if (Up)
3093  if (West == West::None) return 11014;
3094  else if (West == West::Low) return 11015;
3095  else return 11016;
3096  else
3097  if (West == West::None) return 11020;
3098  else if (West == West::Low) return 11021;
3099  else return 11022;
3100  else if (South == South::Low)
3101  if (Up)
3102  if (West == West::None) return 11026;
3103  else if (West == West::Low) return 11027;
3104  else return 11028;
3105  else
3106  if (West == West::None) return 11032;
3107  else if (West == West::Low) return 11033;
3108  else return 11034;
3109  else
3110  if (Up)
3111  if (West == West::None) return 11038;
3112  else if (West == West::Low) return 11039;
3113  else return 11040;
3114  else
3115  if (West == West::None) return 11044;
3116  else if (West == West::Low) return 11045;
3117  else return 11046;
3118  else
3119  if (South == South::None)
3120  if (Up)
3121  if (West == West::None) return 11050;
3122  else if (West == West::Low) return 11051;
3123  else return 11052;
3124  else
3125  if (West == West::None) return 11056;
3126  else if (West == West::Low) return 11057;
3127  else return 11058;
3128  else if (South == South::Low)
3129  if (Up)
3130  if (West == West::None) return 11062;
3131  else if (West == West::Low) return 11063;
3132  else return 11064;
3133  else
3134  if (West == West::None) return 11068;
3135  else if (West == West::Low) return 11069;
3136  else return 11070;
3137  else
3138  if (Up)
3139  if (West == West::None) return 11074;
3140  else if (West == West::Low) return 11075;
3141  else return 11076;
3142  else
3143  if (West == West::None) return 11080;
3144  else if (West == West::Low) return 11081;
3145  else return 11082;
3146  else
3147  if (North == North::None)
3148  if (South == South::None)
3149  if (Up)
3150  if (West == West::None) return 11086;
3151  else if (West == West::Low) return 11087;
3152  else return 11088;
3153  else
3154  if (West == West::None) return 11092;
3155  else if (West == West::Low) return 11093;
3156  else return 11094;
3157  else if (South == South::Low)
3158  if (Up)
3159  if (West == West::None) return 11098;
3160  else if (West == West::Low) return 11099;
3161  else return 11100;
3162  else
3163  if (West == West::None) return 11104;
3164  else if (West == West::Low) return 11105;
3165  else return 11106;
3166  else
3167  if (Up)
3168  if (West == West::None) return 11110;
3169  else if (West == West::Low) return 11111;
3170  else return 11112;
3171  else
3172  if (West == West::None) return 11116;
3173  else if (West == West::Low) return 11117;
3174  else return 11118;
3175  else if (North == North::Low)
3176  if (South == South::None)
3177  if (Up)
3178  if (West == West::None) return 11122;
3179  else if (West == West::Low) return 11123;
3180  else return 11124;
3181  else
3182  if (West == West::None) return 11128;
3183  else if (West == West::Low) return 11129;
3184  else return 11130;
3185  else if (South == South::Low)
3186  if (Up)
3187  if (West == West::None) return 11134;
3188  else if (West == West::Low) return 11135;
3189  else return 11136;
3190  else
3191  if (West == West::None) return 11140;
3192  else if (West == West::Low) return 11141;
3193  else return 11142;
3194  else
3195  if (Up)
3196  if (West == West::None) return 11146;
3197  else if (West == West::Low) return 11147;
3198  else return 11148;
3199  else
3200  if (West == West::None) return 11152;
3201  else if (West == West::Low) return 11153;
3202  else return 11154;
3203  else
3204  if (South == South::None)
3205  if (Up)
3206  if (West == West::None) return 11158;
3207  else if (West == West::Low) return 11159;
3208  else return 11160;
3209  else
3210  if (West == West::None) return 11164;
3211  else if (West == West::Low) return 11165;
3212  else return 11166;
3213  else if (South == South::Low)
3214  if (Up)
3215  if (West == West::None) return 11170;
3216  else if (West == West::Low) return 11171;
3217  else return 11172;
3218  else
3219  if (West == West::None) return 11176;
3220  else if (West == West::Low) return 11177;
3221  else return 11178;
3222  else
3223  if (Up)
3224  if (West == West::None) return 11182;
3225  else if (West == West::Low) return 11183;
3226  else return 11184;
3227  else
3228  if (West == West::None) return 11188;
3229  else if (West == West::Low) return 11189;
3230  else return 11190;
3231  }
3233  enum East East(BlockState Block);
3234  enum North North(BlockState Block);
3235  enum South South(BlockState Block);
3236  bool Up(BlockState Block);
3237  enum West West(BlockState Block);
3238  }
3239  namespace Bricks
3240  {
3241  constexpr BlockState Bricks()
3242  {
3243  return 1429;
3244  }
3245  }
3246  namespace BrownBanner
3247  {
3248  constexpr BlockState BrownBanner(const unsigned char Rotation)
3249  {
3250  if (Rotation == 0) return 8089;
3251  else if (Rotation == 1) return 8090;
3252  else if (Rotation == 2) return 8091;
3253  else if (Rotation == 3) return 8092;
3254  else if (Rotation == 4) return 8093;
3255  else if (Rotation == 5) return 8094;
3256  else if (Rotation == 6) return 8095;
3257  else if (Rotation == 7) return 8096;
3258  else if (Rotation == 8) return 8097;
3259  else if (Rotation == 9) return 8098;
3260  else if (Rotation == 10) return 8099;
3261  else if (Rotation == 11) return 8100;
3262  else if (Rotation == 12) return 8101;
3263  else if (Rotation == 13) return 8102;
3264  else if (Rotation == 14) return 8103;
3265  else return 8104;
3266  }
3268  unsigned char Rotation(BlockState Block);
3269  }
3270  namespace BrownBed
3271  {
3272  enum class Part
3273  {
3274  Head,
3275  Foot
3276  };
3277  constexpr BlockState BrownBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
3278  {
3280  if (Occupied)
3281  if (Part == Part::Head) return 1241;
3282  else return 1242;
3283  else
3284  if (Part == Part::Head) return 1243;
3285  else return 1244;
3286  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
3287  if (Occupied)
3288  if (Part == Part::Head) return 1245;
3289  else return 1246;
3290  else
3291  if (Part == Part::Head) return 1247;
3292  else return 1248;
3293  else if (Facing == eBlockFace::BLOCK_FACE_XM)
3294  if (Occupied)
3295  if (Part == Part::Head) return 1249;
3296  else return 1250;
3297  else
3298  if (Part == Part::Head) return 1251;
3299  else return 1252;
3300  else
3301  if (Occupied)
3302  if (Part == Part::Head) return 1253;
3303  else return 1254;
3304  else
3305  if (Part == Part::Head) return 1255;
3306  else return 1256;
3307  }
3308  BlockState BrownBed();
3310  bool Occupied(BlockState Block);
3311  enum Part Part(BlockState Block);
3312  }
3313  namespace BrownCarpet
3314  {
3316  {
3317  return 7878;
3318  }
3319  }
3320  namespace BrownConcrete
3321  {
3323  {
3324  return 9450;
3325  }
3326  }
3327  namespace BrownConcretePowder
3328  {
3330  {
3331  return 9466;
3332  }
3333  }
3334  namespace BrownGlazedTerracotta
3335  {
3337  {
3338  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9422;
3339  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9423;
3340  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9424;
3341  else return 9425;
3342  }
3345  }
3346  namespace BrownMushroom
3347  {
3349  {
3350  return 1425;
3351  }
3352  }
3353  namespace BrownMushroomBlock
3354  {
3355  constexpr BlockState BrownMushroomBlock(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West)
3356  {
3357  if (Down)
3358  if (East)
3359  if (North)
3360  if (South)
3361  if (Up)
3362  if (West) return 4505;
3363  else return 4506;
3364  else
3365  if (West) return 4507;
3366  else return 4508;
3367  else
3368  if (Up)
3369  if (West) return 4509;
3370  else return 4510;
3371  else
3372  if (West) return 4511;
3373  else return 4512;
3374  else
3375  if (South)
3376  if (Up)
3377  if (West) return 4513;
3378  else return 4514;
3379  else
3380  if (West) return 4515;
3381  else return 4516;
3382  else
3383  if (Up)
3384  if (West) return 4517;
3385  else return 4518;
3386  else
3387  if (West) return 4519;
3388  else return 4520;
3389  else
3390  if (North)
3391  if (South)
3392  if (Up)
3393  if (West) return 4521;
3394  else return 4522;
3395  else
3396  if (West) return 4523;
3397  else return 4524;
3398  else
3399  if (Up)
3400  if (West) return 4525;
3401  else return 4526;
3402  else
3403  if (West) return 4527;
3404  else return 4528;
3405  else
3406  if (South)
3407  if (Up)
3408  if (West) return 4529;
3409  else return 4530;
3410  else
3411  if (West) return 4531;
3412  else return 4532;
3413  else
3414  if (Up)
3415  if (West) return 4533;
3416  else return 4534;
3417  else
3418  if (West) return 4535;
3419  else return 4536;
3420  else
3421  if (East)
3422  if (North)
3423  if (South)
3424  if (Up)
3425  if (West) return 4537;
3426  else return 4538;
3427  else
3428  if (West) return 4539;
3429  else return 4540;
3430  else
3431  if (Up)
3432  if (West) return 4541;
3433  else return 4542;
3434  else
3435  if (West) return 4543;
3436  else return 4544;
3437  else
3438  if (South)
3439  if (Up)
3440  if (West) return 4545;
3441  else return 4546;
3442  else
3443  if (West) return 4547;
3444  else return 4548;
3445  else
3446  if (Up)
3447  if (West) return 4549;
3448  else return 4550;
3449  else
3450  if (West) return 4551;
3451  else return 4552;
3452  else
3453  if (North)
3454  if (South)
3455  if (Up)
3456  if (West) return 4553;
3457  else return 4554;
3458  else
3459  if (West) return 4555;
3460  else return 4556;
3461  else
3462  if (Up)
3463  if (West) return 4557;
3464  else return 4558;
3465  else
3466  if (West) return 4559;
3467  else return 4560;
3468  else
3469  if (South)
3470  if (Up)
3471  if (West) return 4561;
3472  else return 4562;
3473  else
3474  if (West) return 4563;
3475  else return 4564;
3476  else
3477  if (Up)
3478  if (West) return 4565;
3479  else return 4566;
3480  else
3481  if (West) return 4567;
3482  else return 4568;
3483  }
3485  bool Down(BlockState Block);
3486  bool East(BlockState Block);
3487  bool North(BlockState Block);
3488  bool South(BlockState Block);
3489  bool Up(BlockState Block);
3490  bool West(BlockState Block);
3491  }
3492  namespace BrownShulkerBox
3493  {
3495  {
3496  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9350;
3497  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9351;
3498  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9352;
3499  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9353;
3500  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9354;
3501  else return 9355;
3502  }
3505  }
3506  namespace BrownStainedGlass
3507  {
3509  {
3510  return 4107;
3511  }
3512  }
3513  namespace BrownStainedGlassPane
3514  {
3515  constexpr BlockState BrownStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
3516  {
3517  if (East)
3518  if (North)
3519  if (South)
3520  if (West) return 7249;
3521  else return 7250;
3522  else
3523  if (West) return 7253;
3524  else return 7254;
3525  else
3526  if (South)
3527  if (West) return 7257;
3528  else return 7258;
3529  else
3530  if (West) return 7261;
3531  else return 7262;
3532  else
3533  if (North)
3534  if (South)
3535  if (West) return 7265;
3536  else return 7266;
3537  else
3538  if (West) return 7269;
3539  else return 7270;
3540  else
3541  if (South)
3542  if (West) return 7273;
3543  else return 7274;
3544  else
3545  if (West) return 7277;
3546  else return 7278;
3547  }
3549  bool East(BlockState Block);
3550  bool North(BlockState Block);
3551  bool South(BlockState Block);
3552  bool West(BlockState Block);
3553  }
3554  namespace BrownTerracotta
3555  {
3557  {
3558  return 6859;
3559  }
3560  }
3561  namespace BrownWallBanner
3562  {
3564  {
3565  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8201;
3566  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8202;
3567  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8203;
3568  else return 8204;
3569  }
3572  }
3573  namespace BrownWool
3574  {
3575  constexpr BlockState BrownWool()
3576  {
3577  return 1396;
3578  }
3579  }
3580  namespace BubbleColumn
3581  {
3582  constexpr BlockState BubbleColumn(const bool Drag)
3583  {
3584  if (Drag) return 9667;
3585  else return 9668;
3586  }
3588  bool Drag(BlockState Block);
3589  }
3590  namespace BubbleCoral
3591  {
3593  {
3594  return 9535;
3595  }
3596  }
3597  namespace BubbleCoralBlock
3598  {
3600  {
3601  return 9517;
3602  }
3603  }
3604  namespace BubbleCoralFan
3605  {
3607  {
3608  return 9555;
3609  }
3610  }
3611  namespace BubbleCoralWallFan
3612  {
3614  {
3615  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9617;
3616  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9619;
3617  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9621;
3618  else return 9623;
3619  }
3622  }
3623  namespace Cactus
3624  {
3625  constexpr BlockState Cactus(const unsigned char Age)
3626  {
3627  if (Age == 0) return 3931;
3628  else if (Age == 1) return 3932;
3629  else if (Age == 2) return 3933;
3630  else if (Age == 3) return 3934;
3631  else if (Age == 4) return 3935;
3632  else if (Age == 5) return 3936;
3633  else if (Age == 6) return 3937;
3634  else if (Age == 7) return 3938;
3635  else if (Age == 8) return 3939;
3636  else if (Age == 9) return 3940;
3637  else if (Age == 10) return 3941;
3638  else if (Age == 11) return 3942;
3639  else if (Age == 12) return 3943;
3640  else if (Age == 13) return 3944;
3641  else if (Age == 14) return 3945;
3642  else return 3946;
3643  }
3644  BlockState Cactus();
3645  unsigned char Age(BlockState Block);
3646  }
3647  namespace Cake
3648  {
3649  constexpr BlockState Cake(const unsigned char Bites)
3650  {
3651  if (Bites == 0) return 4024;
3652  else if (Bites == 1) return 4025;
3653  else if (Bites == 2) return 4026;
3654  else if (Bites == 3) return 4027;
3655  else if (Bites == 4) return 4028;
3656  else if (Bites == 5) return 4029;
3657  else return 4030;
3658  }
3659  BlockState Cake();
3660  unsigned char Bites(BlockState Block);
3661  }
3662  namespace Campfire
3663  {
3664  constexpr BlockState Campfire(const eBlockFace Facing, const bool Lit, const bool SignalFire)
3665  {
3667  if (Lit)
3668  if (SignalFire) return 14891;
3669  else return 14893;
3670  else
3671  if (SignalFire) return 14895;
3672  else return 14897;
3673  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
3674  if (Lit)
3675  if (SignalFire) return 14899;
3676  else return 14901;
3677  else
3678  if (SignalFire) return 14903;
3679  else return 14905;
3680  else if (Facing == eBlockFace::BLOCK_FACE_XM)
3681  if (Lit)
3682  if (SignalFire) return 14907;
3683  else return 14909;
3684  else
3685  if (SignalFire) return 14911;
3686  else return 14913;
3687  else
3688  if (Lit)
3689  if (SignalFire) return 14915;
3690  else return 14917;
3691  else
3692  if (SignalFire) return 14919;
3693  else return 14921;
3694  }
3695  BlockState Campfire();
3697  bool Lit(BlockState Block);
3698  bool SignalFire(BlockState Block);
3699  }
3700  namespace Carrots
3701  {
3702  constexpr BlockState Carrots(const unsigned char Age)
3703  {
3704  if (Age == 0) return 6330;
3705  else if (Age == 1) return 6331;
3706  else if (Age == 2) return 6332;
3707  else if (Age == 3) return 6333;
3708  else if (Age == 4) return 6334;
3709  else if (Age == 5) return 6335;
3710  else if (Age == 6) return 6336;
3711  else return 6337;
3712  }
3713  BlockState Carrots();
3714  unsigned char Age(BlockState Block);
3715  }
3716  namespace CartographyTable
3717  {
3719  {
3720  return 14819;
3721  }
3722  }
3723  namespace CarvedPumpkin
3724  {
3726  {
3727  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4016;
3728  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4017;
3729  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4018;
3730  else return 4019;
3731  }
3734  }
3735  namespace Cauldron
3736  {
3737  constexpr BlockState Cauldron(const unsigned char Level)
3738  {
3739  if (Level == 0) return 5141;
3740  else if (Level == 1) return 5142;
3741  else if (Level == 2) return 5143;
3742  else return 5144;
3743  }
3744  BlockState Cauldron();
3745  unsigned char Level(BlockState Block);
3746  }
3747  namespace CaveAir
3748  {
3749  constexpr BlockState CaveAir()
3750  {
3751  return 9666;
3752  }
3753  }
3754  namespace Chain
3755  {
3756  constexpr BlockState Chain()
3757  {
3758  return 4730;
3759  }
3760  }
3761  namespace ChainCommandBlock
3762  {
3764  {
3765  if (Conditional)
3766  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9237;
3767  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9238;
3768  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9239;
3769  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9240;
3770  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9241;
3771  else return 9242;
3772  else
3773  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9243;
3774  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9244;
3775  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9245;
3776  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9246;
3777  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9247;
3778  else return 9248;
3779  }
3783  }
3784  namespace Chest
3785  {
3786  enum class Type
3787  {
3788  Single,
3789  Left,
3790  Right
3791  };
3792  constexpr BlockState Chest(const eBlockFace Facing, const enum Type Type)
3793  {
3795  if (Type == Type::Single) return 2035;
3796  else if (Type == Type::Left) return 2037;
3797  else return 2039;
3798  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
3799  if (Type == Type::Single) return 2041;
3800  else if (Type == Type::Left) return 2043;
3801  else return 2045;
3802  else if (Facing == eBlockFace::BLOCK_FACE_XM)
3803  if (Type == Type::Single) return 2047;
3804  else if (Type == Type::Left) return 2049;
3805  else return 2051;
3806  else
3807  if (Type == Type::Single) return 2053;
3808  else if (Type == Type::Left) return 2055;
3809  else return 2057;
3810  }
3811  BlockState Chest();
3813  enum Type Type(BlockState Block);
3814  }
3815  namespace ChippedAnvil
3816  {
3818  {
3819  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6614;
3820  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6615;
3821  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6616;
3822  else return 6617;
3823  }
3826  }
3827  namespace ChiseledNetherBricks
3828  {
3830  {
3831  return 17101;
3832  }
3833  }
3834  namespace ChiseledPolishedBlackstone
3835  {
3837  {
3838  return 16253;
3839  }
3840  }
3841  namespace ChiseledQuartzBlock
3842  {
3844  {
3845  return 6739;
3846  }
3847  }
3848  namespace ChiseledRedSandstone
3849  {
3851  {
3852  return 8218;
3853  }
3854  }
3855  namespace ChiseledSandstone
3856  {
3858  {
3859  return 247;
3860  }
3861  }
3862  namespace ChiseledStoneBricks
3863  {
3865  {
3866  return 4498;
3867  }
3868  }
3869  namespace ChorusFlower
3870  {
3871  constexpr BlockState ChorusFlower(const unsigned char Age)
3872  {
3873  if (Age == 0) return 9128;
3874  else if (Age == 1) return 9129;
3875  else if (Age == 2) return 9130;
3876  else if (Age == 3) return 9131;
3877  else if (Age == 4) return 9132;
3878  else return 9133;
3879  }
3881  unsigned char Age(BlockState Block);
3882  }
3883  namespace ChorusPlant
3884  {
3885  constexpr BlockState ChorusPlant(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West)
3886  {
3887  if (Down)
3888  if (East)
3889  if (North)
3890  if (South)
3891  if (Up)
3892  if (West) return 9064;
3893  else return 9065;
3894  else
3895  if (West) return 9066;
3896  else return 9067;
3897  else
3898  if (Up)
3899  if (West) return 9068;
3900  else return 9069;
3901  else
3902  if (West) return 9070;
3903  else return 9071;
3904  else
3905  if (South)
3906  if (Up)
3907  if (West) return 9072;
3908  else return 9073;
3909  else
3910  if (West) return 9074;
3911  else return 9075;
3912  else
3913  if (Up)
3914  if (West) return 9076;
3915  else return 9077;
3916  else
3917  if (West) return 9078;
3918  else return 9079;
3919  else
3920  if (North)
3921  if (South)
3922  if (Up)
3923  if (West) return 9080;
3924  else return 9081;
3925  else
3926  if (West) return 9082;
3927  else return 9083;
3928  else
3929  if (Up)
3930  if (West) return 9084;
3931  else return 9085;
3932  else
3933  if (West) return 9086;
3934  else return 9087;
3935  else
3936  if (South)
3937  if (Up)
3938  if (West) return 9088;
3939  else return 9089;
3940  else
3941  if (West) return 9090;
3942  else return 9091;
3943  else
3944  if (Up)
3945  if (West) return 9092;
3946  else return 9093;
3947  else
3948  if (West) return 9094;
3949  else return 9095;
3950  else
3951  if (East)
3952  if (North)
3953  if (South)
3954  if (Up)
3955  if (West) return 9096;
3956  else return 9097;
3957  else
3958  if (West) return 9098;
3959  else return 9099;
3960  else
3961  if (Up)
3962  if (West) return 9100;
3963  else return 9101;
3964  else
3965  if (West) return 9102;
3966  else return 9103;
3967  else
3968  if (South)
3969  if (Up)
3970  if (West) return 9104;
3971  else return 9105;
3972  else
3973  if (West) return 9106;
3974  else return 9107;
3975  else
3976  if (Up)
3977  if (West) return 9108;
3978  else return 9109;
3979  else
3980  if (West) return 9110;
3981  else return 9111;
3982  else
3983  if (North)
3984  if (South)
3985  if (Up)
3986  if (West) return 9112;
3987  else return 9113;
3988  else
3989  if (West) return 9114;
3990  else return 9115;
3991  else
3992  if (Up)
3993  if (West) return 9116;
3994  else return 9117;
3995  else
3996  if (West) return 9118;
3997  else return 9119;
3998  else
3999  if (South)
4000  if (Up)
4001  if (West) return 9120;
4002  else return 9121;
4003  else
4004  if (West) return 9122;
4005  else return 9123;
4006  else
4007  if (Up)
4008  if (West) return 9124;
4009  else return 9125;
4010  else
4011  if (West) return 9126;
4012  else return 9127;
4013  }
4015  bool Down(BlockState Block);
4016  bool East(BlockState Block);
4017  bool North(BlockState Block);
4018  bool South(BlockState Block);
4019  bool Up(BlockState Block);
4020  bool West(BlockState Block);
4021  }
4022  namespace Clay
4023  {
4024  constexpr BlockState Clay()
4025  {
4026  return 3947;
4027  }
4028  }
4029  namespace CoalBlock
4030  {
4031  constexpr BlockState CoalBlock()
4032  {
4033  return 7883;
4034  }
4035  }
4036  namespace CoalOre
4037  {
4038  constexpr BlockState CoalOre()
4039  {
4040  return 71;
4041  }
4042  }
4043  namespace CoarseDirt
4044  {
4046  {
4047  return 11;
4048  }
4049  }
4050  namespace Cobblestone
4051  {
4053  {
4054  return 14;
4055  }
4056  }
4057  namespace CobblestoneSlab
4058  {
4059  enum class Type
4060  {
4061  Top,
4062  Bottom,
4063  Double
4064  };
4065  constexpr BlockState CobblestoneSlab(const enum Type Type)
4066  {
4067  if (Type == Type::Top) return 8367;
4068  else if (Type == Type::Bottom) return 8369;
4069  else return 8371;
4070  }
4072  enum Type Type(BlockState Block);
4073  }
4074  namespace CobblestoneStairs
4075  {
4076  enum class Half
4077  {
4078  Top,
4079  Bottom
4080  };
4081  enum class Shape
4082  {
4083  Straight,
4084  InnerLeft,
4085  InnerRight,
4086  OuterLeft,
4087  OuterRight
4088  };
4089  constexpr BlockState CobblestoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
4090  {
4092  if (Half == Half::Top)
4093  if (Shape == Shape::Straight) return 3656;
4094  else if (Shape == Shape::InnerLeft) return 3658;
4095  else if (Shape == Shape::InnerRight) return 3660;
4096  else if (Shape == Shape::OuterLeft) return 3662;
4097  else return 3664;
4098  else
4099  if (Shape == Shape::Straight) return 3666;
4100  else if (Shape == Shape::InnerLeft) return 3668;
4101  else if (Shape == Shape::InnerRight) return 3670;
4102  else if (Shape == Shape::OuterLeft) return 3672;
4103  else return 3674;
4104  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
4105  if (Half == Half::Top)
4106  if (Shape == Shape::Straight) return 3676;
4107  else if (Shape == Shape::InnerLeft) return 3678;
4108  else if (Shape == Shape::InnerRight) return 3680;
4109  else if (Shape == Shape::OuterLeft) return 3682;
4110  else return 3684;
4111  else
4112  if (Shape == Shape::Straight) return 3686;
4113  else if (Shape == Shape::InnerLeft) return 3688;
4114  else if (Shape == Shape::InnerRight) return 3690;
4115  else if (Shape == Shape::OuterLeft) return 3692;
4116  else return 3694;
4117  else if (Facing == eBlockFace::BLOCK_FACE_XM)
4118  if (Half == Half::Top)
4119  if (Shape == Shape::Straight) return 3696;
4120  else if (Shape == Shape::InnerLeft) return 3698;
4121  else if (Shape == Shape::InnerRight) return 3700;
4122  else if (Shape == Shape::OuterLeft) return 3702;
4123  else return 3704;
4124  else
4125  if (Shape == Shape::Straight) return 3706;
4126  else if (Shape == Shape::InnerLeft) return 3708;
4127  else if (Shape == Shape::InnerRight) return 3710;
4128  else if (Shape == Shape::OuterLeft) return 3712;
4129  else return 3714;
4130  else
4131  if (Half == Half::Top)
4132  if (Shape == Shape::Straight) return 3716;
4133  else if (Shape == Shape::InnerLeft) return 3718;
4134  else if (Shape == Shape::InnerRight) return 3720;
4135  else if (Shape == Shape::OuterLeft) return 3722;
4136  else return 3724;
4137  else
4138  if (Shape == Shape::Straight) return 3726;
4139  else if (Shape == Shape::InnerLeft) return 3728;
4140  else if (Shape == Shape::InnerRight) return 3730;
4141  else if (Shape == Shape::OuterLeft) return 3732;
4142  else return 3734;
4143  }
4146  enum Half Half(BlockState Block);
4147  enum Shape Shape(BlockState Block);
4148  }
4149  namespace CobblestoneWall
4150  {
4151  enum class East
4152  {
4153  None,
4154  Low,
4155  Tall
4156  };
4157  enum class North
4158  {
4159  None,
4160  Low,
4161  Tall
4162  };
4163  enum class South
4164  {
4165  None,
4166  Low,
4167  Tall
4168  };
4169  enum class West
4170  {
4171  None,
4172  Low,
4173  Tall
4174  };
4175  constexpr BlockState CobblestoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
4176  {
4177  if (East == East::None)
4178  if (North == North::None)
4179  if (South == South::None)
4180  if (Up)
4181  if (West == West::None) return 5660;
4182  else if (West == West::Low) return 5661;
4183  else return 5662;
4184  else
4185  if (West == West::None) return 5666;
4186  else if (West == West::Low) return 5667;
4187  else return 5668;
4188  else if (South == South::Low)
4189  if (Up)
4190  if (West == West::None) return 5672;
4191  else if (West == West::Low) return 5673;
4192  else return 5674;
4193  else
4194  if (West == West::None) return 5678;
4195  else if (West == West::Low) return 5679;
4196  else return 5680;
4197  else
4198  if (Up)
4199  if (West == West::None) return 5684;
4200  else if (West == West::Low) return 5685;
4201  else return 5686;
4202  else
4203  if (West == West::None) return 5690;
4204  else if (West == West::Low) return 5691;
4205  else return 5692;
4206  else if (North == North::Low)
4207  if (South == South::None)
4208  if (Up)
4209  if (West == West::None) return 5696;
4210  else if (West == West::Low) return 5697;
4211  else return 5698;
4212  else
4213  if (West == West::None) return 5702;
4214  else if (West == West::Low) return 5703;
4215  else return 5704;
4216  else if (South == South::Low)
4217  if (Up)
4218  if (West == West::None) return 5708;
4219  else if (West == West::Low) return 5709;
4220  else return 5710;
4221  else
4222  if (West == West::None) return 5714;
4223  else if (West == West::Low) return 5715;
4224  else return 5716;
4225  else
4226  if (Up)
4227  if (West == West::None) return 5720;
4228  else if (West == West::Low) return 5721;
4229  else return 5722;
4230  else
4231  if (West == West::None) return 5726;
4232  else if (West == West::Low) return 5727;
4233  else return 5728;
4234  else
4235  if (South == South::None)
4236  if (Up)
4237  if (West == West::None) return 5732;
4238  else if (West == West::Low) return 5733;
4239  else return 5734;
4240  else
4241  if (West == West::None) return 5738;
4242  else if (West == West::Low) return 5739;
4243  else return 5740;
4244  else if (South == South::Low)
4245  if (Up)
4246  if (West == West::None) return 5744;
4247  else if (West == West::Low) return 5745;
4248  else return 5746;
4249  else
4250  if (West == West::None) return 5750;
4251  else if (West == West::Low) return 5751;
4252  else return 5752;
4253  else
4254  if (Up)
4255  if (West == West::None) return 5756;
4256  else if (West == West::Low) return 5757;
4257  else return 5758;
4258  else
4259  if (West == West::None) return 5762;
4260  else if (West == West::Low) return 5763;
4261  else return 5764;
4262  else if (East == East::Low)
4263  if (North == North::None)
4264  if (South == South::None)
4265  if (Up)
4266  if (West == West::None) return 5768;
4267  else if (West == West::Low) return 5769;
4268  else return 5770;
4269  else
4270  if (West == West::None) return 5774;
4271  else if (West == West::Low) return 5775;
4272  else return 5776;
4273  else if (South == South::Low)
4274  if (Up)
4275  if (West == West::None) return 5780;
4276  else if (West == West::Low) return 5781;
4277  else return 5782;
4278  else
4279  if (West == West::None) return 5786;
4280  else if (West == West::Low) return 5787;
4281  else return 5788;
4282  else
4283  if (Up)
4284  if (West == West::None) return 5792;
4285  else if (West == West::Low) return 5793;
4286  else return 5794;
4287  else
4288  if (West == West::None) return 5798;
4289  else if (West == West::Low) return 5799;
4290  else return 5800;
4291  else if (North == North::Low)
4292  if (South == South::None)
4293  if (Up)
4294  if (West == West::None) return 5804;
4295  else if (West == West::Low) return 5805;
4296  else return 5806;
4297  else
4298  if (West == West::None) return 5810;
4299  else if (West == West::Low) return 5811;
4300  else return 5812;
4301  else if (South == South::Low)
4302  if (Up)
4303  if (West == West::None) return 5816;
4304  else if (West == West::Low) return 5817;
4305  else return 5818;
4306  else
4307  if (West == West::None) return 5822;
4308  else if (West == West::Low) return 5823;
4309  else return 5824;
4310  else
4311  if (Up)
4312  if (West == West::None) return 5828;
4313  else if (West == West::Low) return 5829;
4314  else return 5830;
4315  else
4316  if (West == West::None) return 5834;
4317  else if (West == West::Low) return 5835;
4318  else return 5836;
4319  else
4320  if (South == South::None)
4321  if (Up)
4322  if (West == West::None) return 5840;
4323  else if (West == West::Low) return 5841;
4324  else return 5842;
4325  else
4326  if (West == West::None) return 5846;
4327  else if (West == West::Low) return 5847;
4328  else return 5848;
4329  else if (South == South::Low)
4330  if (Up)
4331  if (West == West::None) return 5852;
4332  else if (West == West::Low) return 5853;
4333  else return 5854;
4334  else
4335  if (West == West::None) return 5858;
4336  else if (West == West::Low) return 5859;
4337  else return 5860;
4338  else
4339  if (Up)
4340  if (West == West::None) return 5864;
4341  else if (West == West::Low) return 5865;
4342  else return 5866;
4343  else
4344  if (West == West::None) return 5870;
4345  else if (West == West::Low) return 5871;
4346  else return 5872;
4347  else
4348  if (North == North::None)
4349  if (South == South::None)
4350  if (Up)
4351  if (West == West::None) return 5876;
4352  else if (West == West::Low) return 5877;
4353  else return 5878;
4354  else
4355  if (West == West::None) return 5882;
4356  else if (West == West::Low) return 5883;
4357  else return 5884;
4358  else if (South == South::Low)
4359  if (Up)
4360  if (West == West::None) return 5888;
4361  else if (West == West::Low) return 5889;
4362  else return 5890;
4363  else
4364  if (West == West::None) return 5894;
4365  else if (West == West::Low) return 5895;
4366  else return 5896;
4367  else
4368  if (Up)
4369  if (West == West::None) return 5900;
4370  else if (West == West::Low) return 5901;
4371  else return 5902;
4372  else
4373  if (West == West::None) return 5906;
4374  else if (West == West::Low) return 5907;
4375  else return 5908;
4376  else if (North == North::Low)
4377  if (South == South::None)
4378  if (Up)
4379  if (West == West::None) return 5912;
4380  else if (West == West::Low) return 5913;
4381  else return 5914;
4382  else
4383  if (West == West::None) return 5918;
4384  else if (West == West::Low) return 5919;
4385  else return 5920;
4386  else if (South == South::Low)
4387  if (Up)
4388  if (West == West::None) return 5924;
4389  else if (West == West::Low) return 5925;
4390  else return 5926;
4391  else
4392  if (West == West::None) return 5930;
4393  else if (West == West::Low) return 5931;
4394  else return 5932;
4395  else
4396  if (Up)
4397  if (West == West::None) return 5936;
4398  else if (West == West::Low) return 5937;
4399  else return 5938;
4400  else
4401  if (West == West::None) return 5942;
4402  else if (West == West::Low) return 5943;
4403  else return 5944;
4404  else
4405  if (South == South::None)
4406  if (Up)
4407  if (West == West::None) return 5948;
4408  else if (West == West::Low) return 5949;
4409  else return 5950;
4410  else
4411  if (West == West::None) return 5954;
4412  else if (West == West::Low) return 5955;
4413  else return 5956;
4414  else if (South == South::Low)
4415  if (Up)
4416  if (West == West::None) return 5960;
4417  else if (West == West::Low) return 5961;
4418  else return 5962;
4419  else
4420  if (West == West::None) return 5966;
4421  else if (West == West::Low) return 5967;
4422  else return 5968;
4423  else
4424  if (Up)
4425  if (West == West::None) return 5972;
4426  else if (West == West::Low) return 5973;
4427  else return 5974;
4428  else
4429  if (West == West::None) return 5978;
4430  else if (West == West::Low) return 5979;
4431  else return 5980;
4432  }
4434  enum East East(BlockState Block);
4435  enum North North(BlockState Block);
4436  enum South South(BlockState Block);
4437  bool Up(BlockState Block);
4438  enum West West(BlockState Block);
4439  }
4440  namespace Cobweb
4441  {
4442  constexpr BlockState Cobweb()
4443  {
4444  return 1341;
4445  }
4446  }
4447  namespace Cocoa
4448  {
4449  constexpr BlockState Cocoa(const unsigned char Age, const eBlockFace Facing)
4450  {
4451  if (Age == 0)
4452  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5158;
4453  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5159;
4454  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5160;
4455  else return 5161;
4456  else if (Age == 1)
4457  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5162;
4458  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5163;
4459  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5164;
4460  else return 5165;
4461  else
4462  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5166;
4463  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5167;
4464  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5168;
4465  else return 5169;
4466  }
4467  BlockState Cocoa();
4468  unsigned char Age(BlockState Block);
4470  }
4471  namespace CommandBlock
4472  {
4473  constexpr BlockState CommandBlock(const bool Conditional, const eBlockFace Facing)
4474  {
4475  if (Conditional)
4476  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5644;
4477  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 5645;
4478  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5646;
4479  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5647;
4480  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 5648;
4481  else return 5649;
4482  else
4483  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5650;
4484  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 5651;
4485  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5652;
4486  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5653;
4487  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 5654;
4488  else return 5655;
4489  }
4493  }
4494  namespace Comparator
4495  {
4496  enum class Mode
4497  {
4498  Compare,
4499  Subtract
4500  };
4501  constexpr BlockState Comparator(const eBlockFace Facing, const enum Mode Mode, const bool Powered)
4502  {
4504  if (Mode == Mode::Compare)
4505  if (Powered) return 6678;
4506  else return 6679;
4507  else
4508  if (Powered) return 6680;
4509  else return 6681;
4510  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
4511  if (Mode == Mode::Compare)
4512  if (Powered) return 6682;
4513  else return 6683;
4514  else
4515  if (Powered) return 6684;
4516  else return 6685;
4517  else if (Facing == eBlockFace::BLOCK_FACE_XM)
4518  if (Mode == Mode::Compare)
4519  if (Powered) return 6686;
4520  else return 6687;
4521  else
4522  if (Powered) return 6688;
4523  else return 6689;
4524  else
4525  if (Mode == Mode::Compare)
4526  if (Powered) return 6690;
4527  else return 6691;
4528  else
4529  if (Powered) return 6692;
4530  else return 6693;
4531  }
4534  enum Mode Mode(BlockState Block);
4535  bool Powered(BlockState Block);
4536  }
4537  namespace Composter
4538  {
4539  constexpr BlockState Composter(const unsigned char Level)
4540  {
4541  if (Level == 0) return 15751;
4542  else if (Level == 1) return 15752;
4543  else if (Level == 2) return 15753;
4544  else if (Level == 3) return 15754;
4545  else if (Level == 4) return 15755;
4546  else if (Level == 5) return 15756;
4547  else if (Level == 6) return 15757;
4548  else if (Level == 7) return 15758;
4549  else return 15759;
4550  }
4552  unsigned char Level(BlockState Block);
4553  }
4554  namespace Conduit
4555  {
4556  constexpr BlockState Conduit()
4557  {
4558  return 9650;
4559  }
4560  }
4561  namespace Cornflower
4562  {
4564  {
4565  return 1422;
4566  }
4567  }
4568  namespace CrackedNetherBricks
4569  {
4571  {
4572  return 17102;
4573  }
4574  }
4576  {
4578  {
4579  return 16252;
4580  }
4581  }
4582  namespace CrackedStoneBricks
4583  {
4585  {
4586  return 4497;
4587  }
4588  }
4589  namespace CraftingTable
4590  {
4592  {
4593  return 3356;
4594  }
4595  }
4596  namespace CreeperHead
4597  {
4598  constexpr BlockState CreeperHead(const unsigned char Rotation)
4599  {
4600  if (Rotation == 0) return 6570;
4601  else if (Rotation == 1) return 6571;
4602  else if (Rotation == 2) return 6572;
4603  else if (Rotation == 3) return 6573;
4604  else if (Rotation == 4) return 6574;
4605  else if (Rotation == 5) return 6575;
4606  else if (Rotation == 6) return 6576;
4607  else if (Rotation == 7) return 6577;
4608  else if (Rotation == 8) return 6578;
4609  else if (Rotation == 9) return 6579;
4610  else if (Rotation == 10) return 6580;
4611  else if (Rotation == 11) return 6581;
4612  else if (Rotation == 12) return 6582;
4613  else if (Rotation == 13) return 6583;
4614  else if (Rotation == 14) return 6584;
4615  else return 6585;
4616  }
4618  unsigned char Rotation(BlockState Block);
4619  }
4620  namespace CreeperWallHead
4621  {
4623  {
4624  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6586;
4625  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6587;
4626  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6588;
4627  else return 6589;
4628  }
4631  }
4632  namespace CrimsonButton
4633  {
4634  enum class Face
4635  {
4636  Floor,
4637  Wall,
4638  Ceiling
4639  };
4640  constexpr BlockState CrimsonButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
4641  {
4642  if (Face == Face::Floor)
4644  if (Powered) return 15479;
4645  else return 15480;
4646  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
4647  if (Powered) return 15481;
4648  else return 15482;
4649  else if (Facing == eBlockFace::BLOCK_FACE_XM)
4650  if (Powered) return 15483;
4651  else return 15484;
4652  else
4653  if (Powered) return 15485;
4654  else return 15486;
4655  else if (Face == Face::Wall)
4657  if (Powered) return 15487;
4658  else return 15488;
4659  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
4660  if (Powered) return 15489;
4661  else return 15490;
4662  else if (Facing == eBlockFace::BLOCK_FACE_XM)
4663  if (Powered) return 15491;
4664  else return 15492;
4665  else
4666  if (Powered) return 15493;
4667  else return 15494;
4668  else
4670  if (Powered) return 15495;
4671  else return 15496;
4672  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
4673  if (Powered) return 15497;
4674  else return 15498;
4675  else if (Facing == eBlockFace::BLOCK_FACE_XM)
4676  if (Powered) return 15499;
4677  else return 15500;
4678  else
4679  if (Powered) return 15501;
4680  else return 15502;
4681  }
4683  enum Face Face(BlockState Block);
4685  bool Powered(BlockState Block);
4686  }
4687  namespace CrimsonDoor
4688  {
4689  enum class Half
4690  {
4691  Upper,
4692  Lower
4693  };
4694  enum class Hinge
4695  {
4696  Left,
4697  Right
4698  };
4699  constexpr BlockState CrimsonDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
4700  {
4702  if (Half == Half::Upper)
4703  if (Hinge == Hinge::Left)
4704  if (Open)
4705  if (Powered) return 15527;
4706  else return 15528;
4707  else
4708  if (Powered) return 15529;
4709  else return 15530;
4710  else
4711  if (Open)
4712  if (Powered) return 15531;
4713  else return 15532;
4714  else
4715  if (Powered) return 15533;
4716  else return 15534;
4717  else
4718  if (Hinge == Hinge::Left)
4719  if (Open)
4720  if (Powered) return 15535;
4721  else return 15536;
4722  else
4723  if (Powered) return 15537;
4724  else return 15538;
4725  else
4726  if (Open)
4727  if (Powered) return 15539;
4728  else return 15540;
4729  else
4730  if (Powered) return 15541;
4731  else return 15542;
4732  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
4733  if (Half == Half::Upper)
4734  if (Hinge == Hinge::Left)
4735  if (Open)
4736  if (Powered) return 15543;
4737  else return 15544;
4738  else
4739  if (Powered) return 15545;
4740  else return 15546;
4741  else
4742  if (Open)
4743  if (Powered) return 15547;
4744  else return 15548;
4745  else
4746  if (Powered) return 15549;
4747  else return 15550;
4748  else
4749  if (Hinge == Hinge::Left)
4750  if (Open)
4751  if (Powered) return 15551;
4752  else return 15552;
4753  else
4754  if (Powered) return 15553;
4755  else return 15554;
4756  else
4757  if (Open)
4758  if (Powered) return 15555;
4759  else return 15556;
4760  else
4761  if (Powered) return 15557;
4762  else return 15558;
4763  else if (Facing == eBlockFace::BLOCK_FACE_XM)
4764  if (Half == Half::Upper)
4765  if (Hinge == Hinge::Left)
4766  if (Open)
4767  if (Powered) return 15559;
4768  else return 15560;
4769  else
4770  if (Powered) return 15561;
4771  else return 15562;
4772  else
4773  if (Open)
4774  if (Powered) return 15563;
4775  else return 15564;
4776  else
4777  if (Powered) return 15565;
4778  else return 15566;
4779  else
4780  if (Hinge == Hinge::Left)
4781  if (Open)
4782  if (Powered) return 15567;
4783  else return 15568;
4784  else
4785  if (Powered) return 15569;
4786  else return 15570;
4787  else
4788  if (Open)
4789  if (Powered) return 15571;
4790  else return 15572;
4791  else
4792  if (Powered) return 15573;
4793  else return 15574;
4794  else
4795  if (Half == Half::Upper)
4796  if (Hinge == Hinge::Left)
4797  if (Open)
4798  if (Powered) return 15575;
4799  else return 15576;
4800  else
4801  if (Powered) return 15577;
4802  else return 15578;
4803  else
4804  if (Open)
4805  if (Powered) return 15579;
4806  else return 15580;
4807  else
4808  if (Powered) return 15581;
4809  else return 15582;
4810  else
4811  if (Hinge == Hinge::Left)
4812  if (Open)
4813  if (Powered) return 15583;
4814  else return 15584;
4815  else
4816  if (Powered) return 15585;
4817  else return 15586;
4818  else
4819  if (Open)
4820  if (Powered) return 15587;
4821  else return 15588;
4822  else
4823  if (Powered) return 15589;
4824  else return 15590;
4825  }
4828  enum Half Half(BlockState Block);
4829  enum Hinge Hinge(BlockState Block);
4830  bool Open(BlockState Block);
4831  bool Powered(BlockState Block);
4832  }
4833  namespace CrimsonFence
4834  {
4835  constexpr BlockState CrimsonFence(const bool East, const bool North, const bool South, const bool West)
4836  {
4837  if (East)
4838  if (North)
4839  if (South)
4840  if (West) return 15065;
4841  else return 15066;
4842  else
4843  if (West) return 15069;
4844  else return 15070;
4845  else
4846  if (South)
4847  if (West) return 15073;
4848  else return 15074;
4849  else
4850  if (West) return 15077;
4851  else return 15078;
4852  else
4853  if (North)
4854  if (South)
4855  if (West) return 15081;
4856  else return 15082;
4857  else
4858  if (West) return 15085;
4859  else return 15086;
4860  else
4861  if (South)
4862  if (West) return 15089;
4863  else return 15090;
4864  else
4865  if (West) return 15093;
4866  else return 15094;
4867  }
4869  bool East(BlockState Block);
4870  bool North(BlockState Block);
4871  bool South(BlockState Block);
4872  bool West(BlockState Block);
4873  }
4874  namespace CrimsonFenceGate
4875  {
4876  constexpr BlockState CrimsonFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
4877  {
4879  if (InWall)
4880  if (Open)
4881  if (Powered) return 15255;
4882  else return 15256;
4883  else
4884  if (Powered) return 15257;
4885  else return 15258;
4886  else
4887  if (Open)
4888  if (Powered) return 15259;
4889  else return 15260;
4890  else
4891  if (Powered) return 15261;
4892  else return 15262;
4893  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
4894  if (InWall)
4895  if (Open)
4896  if (Powered) return 15263;
4897  else return 15264;
4898  else
4899  if (Powered) return 15265;
4900  else return 15266;
4901  else
4902  if (Open)
4903  if (Powered) return 15267;
4904  else return 15268;
4905  else
4906  if (Powered) return 15269;
4907  else return 15270;
4908  else if (Facing == eBlockFace::BLOCK_FACE_XM)
4909  if (InWall)
4910  if (Open)
4911  if (Powered) return 15271;
4912  else return 15272;
4913  else
4914  if (Powered) return 15273;
4915  else return 15274;
4916  else
4917  if (Open)
4918  if (Powered) return 15275;
4919  else return 15276;
4920  else
4921  if (Powered) return 15277;
4922  else return 15278;
4923  else
4924  if (InWall)
4925  if (Open)
4926  if (Powered) return 15279;
4927  else return 15280;
4928  else
4929  if (Powered) return 15281;
4930  else return 15282;
4931  else
4932  if (Open)
4933  if (Powered) return 15283;
4934  else return 15284;
4935  else
4936  if (Powered) return 15285;
4937  else return 15286;
4938  }
4941  bool InWall(BlockState Block);
4942  bool Open(BlockState Block);
4943  bool Powered(BlockState Block);
4944  }
4945  namespace CrimsonFungus
4946  {
4948  {
4949  return 14988;
4950  }
4951  }
4952  namespace CrimsonHyphae
4953  {
4954  enum class Axis
4955  {
4956  X,
4957  Y,
4958  Z
4959  };
4960  constexpr BlockState CrimsonHyphae(const enum Axis Axis)
4961  {
4962  if (Axis == Axis::X) return 14981;
4963  else if (Axis == Axis::Y) return 14982;
4964  else return 14983;
4965  }
4967  enum Axis Axis(BlockState Block);
4968  }
4969  namespace CrimsonNylium
4970  {
4972  {
4973  return 14987;
4974  }
4975  }
4976  namespace CrimsonPlanks
4977  {
4979  {
4980  return 15045;
4981  }
4982  }
4983  namespace CrimsonPressurePlate
4984  {
4986  {
4987  if (Powered) return 15059;
4988  else return 15060;
4989  }
4991  bool Powered(BlockState Block);
4992  }
4993  namespace CrimsonRoots
4994  {
4996  {
4997  return 15044;
4998  }
4999  }
5000  namespace CrimsonSign
5001  {
5002  constexpr BlockState CrimsonSign(const unsigned char Rotation)
5003  {
5004  if (Rotation == 0) return 15656;
5005  else if (Rotation == 1) return 15658;
5006  else if (Rotation == 2) return 15660;
5007  else if (Rotation == 3) return 15662;
5008  else if (Rotation == 4) return 15664;
5009  else if (Rotation == 5) return 15666;
5010  else if (Rotation == 6) return 15668;
5011  else if (Rotation == 7) return 15670;
5012  else if (Rotation == 8) return 15672;
5013  else if (Rotation == 9) return 15674;
5014  else if (Rotation == 10) return 15676;
5015  else if (Rotation == 11) return 15678;
5016  else if (Rotation == 12) return 15680;
5017  else if (Rotation == 13) return 15682;
5018  else if (Rotation == 14) return 15684;
5019  else return 15686;
5020  }
5022  unsigned char Rotation(BlockState Block);
5023  }
5024  namespace CrimsonSlab
5025  {
5026  enum class Type
5027  {
5028  Top,
5029  Bottom,
5030  Double
5031  };
5032  constexpr BlockState CrimsonSlab(const enum Type Type)
5033  {
5034  if (Type == Type::Top) return 15048;
5035  else if (Type == Type::Bottom) return 15050;
5036  else return 15052;
5037  }
5039  enum Type Type(BlockState Block);
5040  }
5041  namespace CrimsonStairs
5042  {
5043  enum class Half
5044  {
5045  Top,
5046  Bottom
5047  };
5048  enum class Shape
5049  {
5050  Straight,
5051  InnerLeft,
5052  InnerRight,
5053  OuterLeft,
5054  OuterRight
5055  };
5056  constexpr BlockState CrimsonStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
5057  {
5059  if (Half == Half::Top)
5060  if (Shape == Shape::Straight) return 15320;
5061  else if (Shape == Shape::InnerLeft) return 15322;
5062  else if (Shape == Shape::InnerRight) return 15324;
5063  else if (Shape == Shape::OuterLeft) return 15326;
5064  else return 15328;
5065  else
5066  if (Shape == Shape::Straight) return 15330;
5067  else if (Shape == Shape::InnerLeft) return 15332;
5068  else if (Shape == Shape::InnerRight) return 15334;
5069  else if (Shape == Shape::OuterLeft) return 15336;
5070  else return 15338;
5071  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
5072  if (Half == Half::Top)
5073  if (Shape == Shape::Straight) return 15340;
5074  else if (Shape == Shape::InnerLeft) return 15342;
5075  else if (Shape == Shape::InnerRight) return 15344;
5076  else if (Shape == Shape::OuterLeft) return 15346;
5077  else return 15348;
5078  else
5079  if (Shape == Shape::Straight) return 15350;
5080  else if (Shape == Shape::InnerLeft) return 15352;
5081  else if (Shape == Shape::InnerRight) return 15354;
5082  else if (Shape == Shape::OuterLeft) return 15356;
5083  else return 15358;
5084  else if (Facing == eBlockFace::BLOCK_FACE_XM)
5085  if (Half == Half::Top)
5086  if (Shape == Shape::Straight) return 15360;
5087  else if (Shape == Shape::InnerLeft) return 15362;
5088  else if (Shape == Shape::InnerRight) return 15364;
5089  else if (Shape == Shape::OuterLeft) return 15366;
5090  else return 15368;
5091  else
5092  if (Shape == Shape::Straight) return 15370;
5093  else if (Shape == Shape::InnerLeft) return 15372;
5094  else if (Shape == Shape::InnerRight) return 15374;
5095  else if (Shape == Shape::OuterLeft) return 15376;
5096  else return 15378;
5097  else
5098  if (Half == Half::Top)
5099  if (Shape == Shape::Straight) return 15380;
5100  else if (Shape == Shape::InnerLeft) return 15382;
5101  else if (Shape == Shape::InnerRight) return 15384;
5102  else if (Shape == Shape::OuterLeft) return 15386;
5103  else return 15388;
5104  else
5105  if (Shape == Shape::Straight) return 15390;
5106  else if (Shape == Shape::InnerLeft) return 15392;
5107  else if (Shape == Shape::InnerRight) return 15394;
5108  else if (Shape == Shape::OuterLeft) return 15396;
5109  else return 15398;
5110  }
5113  enum Half Half(BlockState Block);
5114  enum Shape Shape(BlockState Block);
5115  }
5116  namespace CrimsonStem
5117  {
5118  enum class Axis
5119  {
5120  X,
5121  Y,
5122  Z
5123  };
5124  constexpr BlockState CrimsonStem(const enum Axis Axis)
5125  {
5126  if (Axis == Axis::X) return 14975;
5127  else if (Axis == Axis::Y) return 14976;
5128  else return 14977;
5129  }
5131  enum Axis Axis(BlockState Block);
5132  }
5133  namespace CrimsonTrapdoor
5134  {
5135  enum class Half
5136  {
5137  Top,
5138  Bottom
5139  };
5140  constexpr BlockState CrimsonTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
5141  {
5143  if (Half == Half::Top)
5144  if (Open)
5145  if (Powered) return 15128;
5146  else return 15130;
5147  else
5148  if (Powered) return 15132;
5149  else return 15134;
5150  else
5151  if (Open)
5152  if (Powered) return 15136;
5153  else return 15138;
5154  else
5155  if (Powered) return 15140;
5156  else return 15142;
5157  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
5158  if (Half == Half::Top)
5159  if (Open)
5160  if (Powered) return 15144;
5161  else return 15146;
5162  else
5163  if (Powered) return 15148;
5164  else return 15150;
5165  else
5166  if (Open)
5167  if (Powered) return 15152;
5168  else return 15154;
5169  else
5170  if (Powered) return 15156;
5171  else return 15158;
5172  else if (Facing == eBlockFace::BLOCK_FACE_XM)
5173  if (Half == Half::Top)
5174  if (Open)
5175  if (Powered) return 15160;
5176  else return 15162;
5177  else
5178  if (Powered) return 15164;
5179  else return 15166;
5180  else
5181  if (Open)
5182  if (Powered) return 15168;
5183  else return 15170;
5184  else
5185  if (Powered) return 15172;
5186  else return 15174;
5187  else
5188  if (Half == Half::Top)
5189  if (Open)
5190  if (Powered) return 15176;
5191  else return 15178;
5192  else
5193  if (Powered) return 15180;
5194  else return 15182;
5195  else
5196  if (Open)
5197  if (Powered) return 15184;
5198  else return 15186;
5199  else
5200  if (Powered) return 15188;
5201  else return 15190;
5202  }
5205  enum Half Half(BlockState Block);
5206  bool Open(BlockState Block);
5207  bool Powered(BlockState Block);
5208  }
5209  namespace CrimsonWallSign
5210  {
5212  {
5213  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 15720;
5214  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 15722;
5215  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 15724;
5216  else return 15726;
5217  }
5220  }
5221  namespace CryingObsidian
5222  {
5224  {
5225  return 15828;
5226  }
5227  }
5228  namespace CutRedSandstone
5229  {
5231  {
5232  return 8219;
5233  }
5234  }
5235  namespace CutRedSandstoneSlab
5236  {
5237  enum class Type
5238  {
5239  Top,
5240  Bottom,
5241  Double
5242  };
5243  constexpr BlockState CutRedSandstoneSlab(const enum Type Type)
5244  {
5245  if (Type == Type::Top) return 8403;
5246  else if (Type == Type::Bottom) return 8405;
5247  else return 8407;
5248  }
5250  enum Type Type(BlockState Block);
5251  }
5252  namespace CutSandstone
5253  {
5255  {
5256  return 248;
5257  }
5258  }
5259  namespace CutSandstoneSlab
5260  {
5261  enum class Type
5262  {
5263  Top,
5264  Bottom,
5265  Double
5266  };
5267  constexpr BlockState CutSandstoneSlab(const enum Type Type)
5268  {
5269  if (Type == Type::Top) return 8355;
5270  else if (Type == Type::Bottom) return 8357;
5271  else return 8359;
5272  }
5274  enum Type Type(BlockState Block);
5275  }
5276  namespace CyanBanner
5277  {
5278  constexpr BlockState CyanBanner(const unsigned char Rotation)
5279  {
5280  if (Rotation == 0) return 8041;
5281  else if (Rotation == 1) return 8042;
5282  else if (Rotation == 2) return 8043;
5283  else if (Rotation == 3) return 8044;
5284  else if (Rotation == 4) return 8045;
5285  else if (Rotation == 5) return 8046;
5286  else if (Rotation == 6) return 8047;
5287  else if (Rotation == 7) return 8048;
5288  else if (Rotation == 8) return 8049;
5289  else if (Rotation == 9) return 8050;
5290  else if (Rotation == 10) return 8051;
5291  else if (Rotation == 11) return 8052;
5292  else if (Rotation == 12) return 8053;
5293  else if (Rotation == 13) return 8054;
5294  else if (Rotation == 14) return 8055;
5295  else return 8056;
5296  }
5298  unsigned char Rotation(BlockState Block);
5299  }
5300  namespace CyanBed
5301  {
5302  enum class Part
5303  {
5304  Head,
5305  Foot
5306  };
5307  constexpr BlockState CyanBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
5308  {
5310  if (Occupied)
5311  if (Part == Part::Head) return 1193;
5312  else return 1194;
5313  else
5314  if (Part == Part::Head) return 1195;
5315  else return 1196;
5316  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
5317  if (Occupied)
5318  if (Part == Part::Head) return 1197;
5319  else return 1198;
5320  else
5321  if (Part == Part::Head) return 1199;
5322  else return 1200;
5323  else if (Facing == eBlockFace::BLOCK_FACE_XM)
5324  if (Occupied)
5325  if (Part == Part::Head) return 1201;
5326  else return 1202;
5327  else
5328  if (Part == Part::Head) return 1203;
5329  else return 1204;
5330  else
5331  if (Occupied)
5332  if (Part == Part::Head) return 1205;
5333  else return 1206;
5334  else
5335  if (Part == Part::Head) return 1207;
5336  else return 1208;
5337  }
5338  BlockState CyanBed();
5340  bool Occupied(BlockState Block);
5341  enum Part Part(BlockState Block);
5342  }
5343  namespace CyanCarpet
5344  {
5346  {
5347  return 7875;
5348  }
5349  }
5350  namespace CyanConcrete
5351  {
5353  {
5354  return 9447;
5355  }
5356  }
5357  namespace CyanConcretePowder
5358  {
5360  {
5361  return 9463;
5362  }
5363  }
5364  namespace CyanGlazedTerracotta
5365  {
5367  {
5368  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9410;
5369  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9411;
5370  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9412;
5371  else return 9413;
5372  }
5375  }
5376  namespace CyanShulkerBox
5377  {
5379  {
5380  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9332;
5381  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9333;
5382  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9334;
5383  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9335;
5384  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9336;
5385  else return 9337;
5386  }
5389  }
5390  namespace CyanStainedGlass
5391  {
5393  {
5394  return 4104;
5395  }
5396  }
5397  namespace CyanStainedGlassPane
5398  {
5399  constexpr BlockState CyanStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
5400  {
5401  if (East)
5402  if (North)
5403  if (South)
5404  if (West) return 7153;
5405  else return 7154;
5406  else
5407  if (West) return 7157;
5408  else return 7158;
5409  else
5410  if (South)
5411  if (West) return 7161;
5412  else return 7162;
5413  else
5414  if (West) return 7165;
5415  else return 7166;
5416  else
5417  if (North)
5418  if (South)
5419  if (West) return 7169;
5420  else return 7170;
5421  else
5422  if (West) return 7173;
5423  else return 7174;
5424  else
5425  if (South)
5426  if (West) return 7177;
5427  else return 7178;
5428  else
5429  if (West) return 7181;
5430  else return 7182;
5431  }
5433  bool East(BlockState Block);
5434  bool North(BlockState Block);
5435  bool South(BlockState Block);
5436  bool West(BlockState Block);
5437  }
5438  namespace CyanTerracotta
5439  {
5441  {
5442  return 6856;
5443  }
5444  }
5445  namespace CyanWallBanner
5446  {
5448  {
5449  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8189;
5450  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8190;
5451  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8191;
5452  else return 8192;
5453  }
5456  }
5457  namespace CyanWool
5458  {
5459  constexpr BlockState CyanWool()
5460  {
5461  return 1393;
5462  }
5463  }
5464  namespace DamagedAnvil
5465  {
5467  {
5468  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6618;
5469  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6619;
5470  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6620;
5471  else return 6621;
5472  }
5475  }
5476  namespace Dandelion
5477  {
5478  constexpr BlockState Dandelion()
5479  {
5480  return 1412;
5481  }
5482  }
5483  namespace DarkOakButton
5484  {
5485  enum class Face
5486  {
5487  Floor,
5488  Wall,
5489  Ceiling
5490  };
5491  constexpr BlockState DarkOakButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
5492  {
5493  if (Face == Face::Floor)
5495  if (Powered) return 6466;
5496  else return 6467;
5497  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
5498  if (Powered) return 6468;
5499  else return 6469;
5500  else if (Facing == eBlockFace::BLOCK_FACE_XM)
5501  if (Powered) return 6470;
5502  else return 6471;
5503  else
5504  if (Powered) return 6472;
5505  else return 6473;
5506  else if (Face == Face::Wall)
5508  if (Powered) return 6474;
5509  else return 6475;
5510  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
5511  if (Powered) return 6476;
5512  else return 6477;
5513  else if (Facing == eBlockFace::BLOCK_FACE_XM)
5514  if (Powered) return 6478;
5515  else return 6479;
5516  else
5517  if (Powered) return 6480;
5518  else return 6481;
5519  else
5521  if (Powered) return 6482;
5522  else return 6483;
5523  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
5524  if (Powered) return 6484;
5525  else return 6485;
5526  else if (Facing == eBlockFace::BLOCK_FACE_XM)
5527  if (Powered) return 6486;
5528  else return 6487;
5529  else
5530  if (Powered) return 6488;
5531  else return 6489;
5532  }
5534  enum Face Face(BlockState Block);
5536  bool Powered(BlockState Block);
5537  }
5538  namespace DarkOakDoor
5539  {
5540  enum class Half
5541  {
5542  Upper,
5543  Lower
5544  };
5545  enum class Hinge
5546  {
5547  Left,
5548  Right
5549  };
5550  constexpr BlockState DarkOakDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
5551  {
5553  if (Half == Half::Upper)
5554  if (Hinge == Hinge::Left)
5555  if (Open)
5556  if (Powered) return 8994;
5557  else return 8995;
5558  else
5559  if (Powered) return 8996;
5560  else return 8997;
5561  else
5562  if (Open)
5563  if (Powered) return 8998;
5564  else return 8999;
5565  else
5566  if (Powered) return 9000;
5567  else return 9001;
5568  else
5569  if (Hinge == Hinge::Left)
5570  if (Open)
5571  if (Powered) return 9002;
5572  else return 9003;
5573  else
5574  if (Powered) return 9004;
5575  else return 9005;
5576  else
5577  if (Open)
5578  if (Powered) return 9006;
5579  else return 9007;
5580  else
5581  if (Powered) return 9008;
5582  else return 9009;
5583  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
5584  if (Half == Half::Upper)
5585  if (Hinge == Hinge::Left)
5586  if (Open)
5587  if (Powered) return 9010;
5588  else return 9011;
5589  else
5590  if (Powered) return 9012;
5591  else return 9013;
5592  else
5593  if (Open)
5594  if (Powered) return 9014;
5595  else return 9015;
5596  else
5597  if (Powered) return 9016;
5598  else return 9017;
5599  else
5600  if (Hinge == Hinge::Left)
5601  if (Open)
5602  if (Powered) return 9018;
5603  else return 9019;
5604  else
5605  if (Powered) return 9020;
5606  else return 9021;
5607  else
5608  if (Open)
5609  if (Powered) return 9022;
5610  else return 9023;
5611  else
5612  if (Powered) return 9024;
5613  else return 9025;
5614  else if (Facing == eBlockFace::BLOCK_FACE_XM)
5615  if (Half == Half::Upper)
5616  if (Hinge == Hinge::Left)
5617  if (Open)
5618  if (Powered) return 9026;
5619  else return 9027;
5620  else
5621  if (Powered) return 9028;
5622  else return 9029;
5623  else
5624  if (Open)
5625  if (Powered) return 9030;
5626  else return 9031;
5627  else
5628  if (Powered) return 9032;
5629  else return 9033;
5630  else
5631  if (Hinge == Hinge::Left)
5632  if (Open)
5633  if (Powered) return 9034;
5634  else return 9035;
5635  else
5636  if (Powered) return 9036;
5637  else return 9037;
5638  else
5639  if (Open)
5640  if (Powered) return 9038;
5641  else return 9039;
5642  else
5643  if (Powered) return 9040;
5644  else return 9041;
5645  else
5646  if (Half == Half::Upper)
5647  if (Hinge == Hinge::Left)
5648  if (Open)
5649  if (Powered) return 9042;
5650  else return 9043;
5651  else
5652  if (Powered) return 9044;
5653  else return 9045;
5654  else
5655  if (Open)
5656  if (Powered) return 9046;
5657  else return 9047;
5658  else
5659  if (Powered) return 9048;
5660  else return 9049;
5661  else
5662  if (Hinge == Hinge::Left)
5663  if (Open)
5664  if (Powered) return 9050;
5665  else return 9051;
5666  else
5667  if (Powered) return 9052;
5668  else return 9053;
5669  else
5670  if (Open)
5671  if (Powered) return 9054;
5672  else return 9055;
5673  else
5674  if (Powered) return 9056;
5675  else return 9057;
5676  }
5679  enum Half Half(BlockState Block);
5680  enum Hinge Hinge(BlockState Block);
5681  bool Open(BlockState Block);
5682  bool Powered(BlockState Block);
5683  }
5684  namespace DarkOakFence
5685  {
5686  constexpr BlockState DarkOakFence(const bool East, const bool North, const bool South, const bool West)
5687  {
5688  if (East)
5689  if (North)
5690  if (South)
5691  if (West) return 8708;
5692  else return 8709;
5693  else
5694  if (West) return 8712;
5695  else return 8713;
5696  else
5697  if (South)
5698  if (West) return 8716;
5699  else return 8717;
5700  else
5701  if (West) return 8720;
5702  else return 8721;
5703  else
5704  if (North)
5705  if (South)
5706  if (West) return 8724;
5707  else return 8725;
5708  else
5709  if (West) return 8728;
5710  else return 8729;
5711  else
5712  if (South)
5713  if (West) return 8732;
5714  else return 8733;
5715  else
5716  if (West) return 8736;
5717  else return 8737;
5718  }
5720  bool East(BlockState Block);
5721  bool North(BlockState Block);
5722  bool South(BlockState Block);
5723  bool West(BlockState Block);
5724  }
5725  namespace DarkOakFenceGate
5726  {
5727  constexpr BlockState DarkOakFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
5728  {
5730  if (InWall)
5731  if (Open)
5732  if (Powered) return 8546;
5733  else return 8547;
5734  else
5735  if (Powered) return 8548;
5736  else return 8549;
5737  else
5738  if (Open)
5739  if (Powered) return 8550;
5740  else return 8551;
5741  else
5742  if (Powered) return 8552;
5743  else return 8553;
5744  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
5745  if (InWall)
5746  if (Open)
5747  if (Powered) return 8554;
5748  else return 8555;
5749  else
5750  if (Powered) return 8556;
5751  else return 8557;
5752  else
5753  if (Open)
5754  if (Powered) return 8558;
5755  else return 8559;
5756  else
5757  if (Powered) return 8560;
5758  else return 8561;
5759  else if (Facing == eBlockFace::BLOCK_FACE_XM)
5760  if (InWall)
5761  if (Open)
5762  if (Powered) return 8562;
5763  else return 8563;
5764  else
5765  if (Powered) return 8564;
5766  else return 8565;
5767  else
5768  if (Open)
5769  if (Powered) return 8566;
5770  else return 8567;
5771  else
5772  if (Powered) return 8568;
5773  else return 8569;
5774  else
5775  if (InWall)
5776  if (Open)
5777  if (Powered) return 8570;
5778  else return 8571;
5779  else
5780  if (Powered) return 8572;
5781  else return 8573;
5782  else
5783  if (Open)
5784  if (Powered) return 8574;
5785  else return 8575;
5786  else
5787  if (Powered) return 8576;
5788  else return 8577;
5789  }
5792  bool InWall(BlockState Block);
5793  bool Open(BlockState Block);
5794  bool Powered(BlockState Block);
5795  }
5796  namespace DarkOakLeaves
5797  {
5798  constexpr BlockState DarkOakLeaves(const unsigned char Distance, const bool Persistent)
5799  {
5800  if (Distance == 1)
5801  if (Persistent) return 215;
5802  else return 216;
5803  else if (Distance == 2)
5804  if (Persistent) return 217;
5805  else return 218;
5806  else if (Distance == 3)
5807  if (Persistent) return 219;
5808  else return 220;
5809  else if (Distance == 4)
5810  if (Persistent) return 221;
5811  else return 222;
5812  else if (Distance == 5)
5813  if (Persistent) return 223;
5814  else return 224;
5815  else if (Distance == 6)
5816  if (Persistent) return 225;
5817  else return 226;
5818  else
5819  if (Persistent) return 227;
5820  else return 228;
5821  }
5823  unsigned char Distance(BlockState Block);
5824  bool Persistent(BlockState Block);
5825  }
5826  namespace DarkOakLog
5827  {
5828  enum class Axis
5829  {
5830  X,
5831  Y,
5832  Z
5833  };
5834  constexpr BlockState DarkOakLog(const enum Axis Axis)
5835  {
5836  if (Axis == Axis::X) return 88;
5837  else if (Axis == Axis::Y) return 89;
5838  else return 90;
5839  }
5841  enum Axis Axis(BlockState Block);
5842  }
5843  namespace DarkOakPlanks
5844  {
5846  {
5847  return 20;
5848  }
5849  }
5850  namespace DarkOakPressurePlate
5851  {
5853  {
5854  if (Powered) return 3883;
5855  else return 3884;
5856  }
5858  bool Powered(BlockState Block);
5859  }
5860  namespace DarkOakSapling
5861  {
5862  constexpr BlockState DarkOakSapling(const unsigned char Stage)
5863  {
5864  if (Stage == 0) return 31;
5865  else return 32;
5866  }
5868  unsigned char Stage(BlockState Block);
5869  }
5870  namespace DarkOakSign
5871  {
5872  constexpr BlockState DarkOakSign(const unsigned char Rotation)
5873  {
5874  if (Rotation == 0) return 3542;
5875  else if (Rotation == 1) return 3544;
5876  else if (Rotation == 2) return 3546;
5877  else if (Rotation == 3) return 3548;
5878  else if (Rotation == 4) return 3550;
5879  else if (Rotation == 5) return 3552;
5880  else if (Rotation == 6) return 3554;
5881  else if (Rotation == 7) return 3556;
5882  else if (Rotation == 8) return 3558;
5883  else if (Rotation == 9) return 3560;
5884  else if (Rotation == 10) return 3562;
5885  else if (Rotation == 11) return 3564;
5886  else if (Rotation == 12) return 3566;
5887  else if (Rotation == 13) return 3568;
5888  else if (Rotation == 14) return 3570;
5889  else return 3572;
5890  }
5892  unsigned char Rotation(BlockState Block);
5893  }
5894  namespace DarkOakSlab
5895  {
5896  enum class Type
5897  {
5898  Top,
5899  Bottom,
5900  Double
5901  };
5902  constexpr BlockState DarkOakSlab(const enum Type Type)
5903  {
5904  if (Type == Type::Top) return 8331;
5905  else if (Type == Type::Bottom) return 8333;
5906  else return 8335;
5907  }
5909  enum Type Type(BlockState Block);
5910  }
5911  namespace DarkOakStairs
5912  {
5913  enum class Half
5914  {
5915  Top,
5916  Bottom
5917  };
5918  enum class Shape
5919  {
5920  Straight,
5921  InnerLeft,
5922  InnerRight,
5923  OuterLeft,
5924  OuterRight
5925  };
5926  constexpr BlockState DarkOakStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
5927  {
5929  if (Half == Half::Top)
5930  if (Shape == Shape::Straight) return 7456;
5931  else if (Shape == Shape::InnerLeft) return 7458;
5932  else if (Shape == Shape::InnerRight) return 7460;
5933  else if (Shape == Shape::OuterLeft) return 7462;
5934  else return 7464;
5935  else
5936  if (Shape == Shape::Straight) return 7466;
5937  else if (Shape == Shape::InnerLeft) return 7468;
5938  else if (Shape == Shape::InnerRight) return 7470;
5939  else if (Shape == Shape::OuterLeft) return 7472;
5940  else return 7474;
5941  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
5942  if (Half == Half::Top)
5943  if (Shape == Shape::Straight) return 7476;
5944  else if (Shape == Shape::InnerLeft) return 7478;
5945  else if (Shape == Shape::InnerRight) return 7480;
5946  else if (Shape == Shape::OuterLeft) return 7482;
5947  else return 7484;
5948  else
5949  if (Shape == Shape::Straight) return 7486;
5950  else if (Shape == Shape::InnerLeft) return 7488;
5951  else if (Shape == Shape::InnerRight) return 7490;
5952  else if (Shape == Shape::OuterLeft) return 7492;
5953  else return 7494;
5954  else if (Facing == eBlockFace::BLOCK_FACE_XM)
5955  if (Half == Half::Top)
5956  if (Shape == Shape::Straight) return 7496;
5957  else if (Shape == Shape::InnerLeft) return 7498;
5958  else if (Shape == Shape::InnerRight) return 7500;
5959  else if (Shape == Shape::OuterLeft) return 7502;
5960  else return 7504;
5961  else
5962  if (Shape == Shape::Straight) return 7506;
5963  else if (Shape == Shape::InnerLeft) return 7508;
5964  else if (Shape == Shape::InnerRight) return 7510;
5965  else if (Shape == Shape::OuterLeft) return 7512;
5966  else return 7514;
5967  else
5968  if (Half == Half::Top)
5969  if (Shape == Shape::Straight) return 7516;
5970  else if (Shape == Shape::InnerLeft) return 7518;
5971  else if (Shape == Shape::InnerRight) return 7520;
5972  else if (Shape == Shape::OuterLeft) return 7522;
5973  else return 7524;
5974  else
5975  if (Shape == Shape::Straight) return 7526;
5976  else if (Shape == Shape::InnerLeft) return 7528;
5977  else if (Shape == Shape::InnerRight) return 7530;
5978  else if (Shape == Shape::OuterLeft) return 7532;
5979  else return 7534;
5980  }
5983  enum Half Half(BlockState Block);
5984  enum Shape Shape(BlockState Block);
5985  }
5986  namespace DarkOakTrapdoor
5987  {
5988  enum class Half
5989  {
5990  Top,
5991  Bottom
5992  };
5993  constexpr BlockState DarkOakTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
5994  {
5996  if (Half == Half::Top)
5997  if (Open)
5998  if (Powered) return 4432;
5999  else return 4434;
6000  else
6001  if (Powered) return 4436;
6002  else return 4438;
6003  else
6004  if (Open)
6005  if (Powered) return 4440;
6006  else return 4442;
6007  else
6008  if (Powered) return 4444;
6009  else return 4446;
6010  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
6011  if (Half == Half::Top)
6012  if (Open)
6013  if (Powered) return 4448;
6014  else return 4450;
6015  else
6016  if (Powered) return 4452;
6017  else return 4454;
6018  else
6019  if (Open)
6020  if (Powered) return 4456;
6021  else return 4458;
6022  else
6023  if (Powered) return 4460;
6024  else return 4462;
6025  else if (Facing == eBlockFace::BLOCK_FACE_XM)
6026  if (Half == Half::Top)
6027  if (Open)
6028  if (Powered) return 4464;
6029  else return 4466;
6030  else
6031  if (Powered) return 4468;
6032  else return 4470;
6033  else
6034  if (Open)
6035  if (Powered) return 4472;
6036  else return 4474;
6037  else
6038  if (Powered) return 4476;
6039  else return 4478;
6040  else
6041  if (Half == Half::Top)
6042  if (Open)
6043  if (Powered) return 4480;
6044  else return 4482;
6045  else
6046  if (Powered) return 4484;
6047  else return 4486;
6048  else
6049  if (Open)
6050  if (Powered) return 4488;
6051  else return 4490;
6052  else
6053  if (Powered) return 4492;
6054  else return 4494;
6055  }
6058  enum Half Half(BlockState Block);
6059  bool Open(BlockState Block);
6060  bool Powered(BlockState Block);
6061  }
6062  namespace DarkOakWallSign
6063  {
6065  {
6066  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3776;
6067  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3778;
6068  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3780;
6069  else return 3782;
6070  }
6073  }
6074  namespace DarkOakWood
6075  {
6076  enum class Axis
6077  {
6078  X,
6079  Y,
6080  Z
6081  };
6082  constexpr BlockState DarkOakWood(const enum Axis Axis)
6083  {
6084  if (Axis == Axis::X) return 124;
6085  else if (Axis == Axis::Y) return 125;
6086  else return 126;
6087  }
6089  enum Axis Axis(BlockState Block);
6090  }
6091  namespace DarkPrismarine
6092  {
6094  {
6095  return 7603;
6096  }
6097  }
6098  namespace DarkPrismarineSlab
6099  {
6100  enum class Type
6101  {
6102  Top,
6103  Bottom,
6104  Double
6105  };
6106  constexpr BlockState DarkPrismarineSlab(const enum Type Type)
6107  {
6108  if (Type == Type::Top) return 7857;
6109  else if (Type == Type::Bottom) return 7859;
6110  else return 7861;
6111  }
6113  enum Type Type(BlockState Block);
6114  }
6115  namespace DarkPrismarineStairs
6116  {
6117  enum class Half
6118  {
6119  Top,
6120  Bottom
6121  };
6122  enum class Shape
6123  {
6124  Straight,
6125  InnerLeft,
6126  InnerRight,
6127  OuterLeft,
6128  OuterRight
6129  };
6130  constexpr BlockState DarkPrismarineStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
6131  {
6133  if (Half == Half::Top)
6134  if (Shape == Shape::Straight) return 7765;
6135  else if (Shape == Shape::InnerLeft) return 7767;
6136  else if (Shape == Shape::InnerRight) return 7769;
6137  else if (Shape == Shape::OuterLeft) return 7771;
6138  else return 7773;
6139  else
6140  if (Shape == Shape::Straight) return 7775;
6141  else if (Shape == Shape::InnerLeft) return 7777;
6142  else if (Shape == Shape::InnerRight) return 7779;
6143  else if (Shape == Shape::OuterLeft) return 7781;
6144  else return 7783;
6145  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
6146  if (Half == Half::Top)
6147  if (Shape == Shape::Straight) return 7785;
6148  else if (Shape == Shape::InnerLeft) return 7787;
6149  else if (Shape == Shape::InnerRight) return 7789;
6150  else if (Shape == Shape::OuterLeft) return 7791;
6151  else return 7793;
6152  else
6153  if (Shape == Shape::Straight) return 7795;
6154  else if (Shape == Shape::InnerLeft) return 7797;
6155  else if (Shape == Shape::InnerRight) return 7799;
6156  else if (Shape == Shape::OuterLeft) return 7801;
6157  else return 7803;
6158  else if (Facing == eBlockFace::BLOCK_FACE_XM)
6159  if (Half == Half::Top)
6160  if (Shape == Shape::Straight) return 7805;
6161  else if (Shape == Shape::InnerLeft) return 7807;
6162  else if (Shape == Shape::InnerRight) return 7809;
6163  else if (Shape == Shape::OuterLeft) return 7811;
6164  else return 7813;
6165  else
6166  if (Shape == Shape::Straight) return 7815;
6167  else if (Shape == Shape::InnerLeft) return 7817;
6168  else if (Shape == Shape::InnerRight) return 7819;
6169  else if (Shape == Shape::OuterLeft) return 7821;
6170  else return 7823;
6171  else
6172  if (Half == Half::Top)
6173  if (Shape == Shape::Straight) return 7825;
6174  else if (Shape == Shape::InnerLeft) return 7827;
6175  else if (Shape == Shape::InnerRight) return 7829;
6176  else if (Shape == Shape::OuterLeft) return 7831;
6177  else return 7833;
6178  else
6179  if (Shape == Shape::Straight) return 7835;
6180  else if (Shape == Shape::InnerLeft) return 7837;
6181  else if (Shape == Shape::InnerRight) return 7839;
6182  else if (Shape == Shape::OuterLeft) return 7841;
6183  else return 7843;
6184  }
6187  enum Half Half(BlockState Block);
6188  enum Shape Shape(BlockState Block);
6189  }
6190  namespace DaylightDetector
6191  {
6192  constexpr BlockState DaylightDetector(const bool Inverted, const unsigned char Power)
6193  {
6194  if (Inverted)
6195  if (Power == 0) return 6694;
6196  else if (Power == 1) return 6695;
6197  else if (Power == 2) return 6696;
6198  else if (Power == 3) return 6697;
6199  else if (Power == 4) return 6698;
6200  else if (Power == 5) return 6699;
6201  else if (Power == 6) return 6700;
6202  else if (Power == 7) return 6701;
6203  else if (Power == 8) return 6702;
6204  else if (Power == 9) return 6703;
6205  else if (Power == 10) return 6704;
6206  else if (Power == 11) return 6705;
6207  else if (Power == 12) return 6706;
6208  else if (Power == 13) return 6707;
6209  else if (Power == 14) return 6708;
6210  else return 6709;
6211  else
6212  if (Power == 0) return 6710;
6213  else if (Power == 1) return 6711;
6214  else if (Power == 2) return 6712;
6215  else if (Power == 3) return 6713;
6216  else if (Power == 4) return 6714;
6217  else if (Power == 5) return 6715;
6218  else if (Power == 6) return 6716;
6219  else if (Power == 7) return 6717;
6220  else if (Power == 8) return 6718;
6221  else if (Power == 9) return 6719;
6222  else if (Power == 10) return 6720;
6223  else if (Power == 11) return 6721;
6224  else if (Power == 12) return 6722;
6225  else if (Power == 13) return 6723;
6226  else if (Power == 14) return 6724;
6227  else return 6725;
6228  }
6230  bool Inverted(BlockState Block);
6231  unsigned char Power(BlockState Block);
6232  }
6233  namespace DeadBrainCoral
6234  {
6236  {
6237  return 9523;
6238  }
6239  }
6240  namespace DeadBrainCoralBlock
6241  {
6243  {
6244  return 9511;
6245  }
6246  }
6247  namespace DeadBrainCoralFan
6248  {
6250  {
6251  return 9543;
6252  }
6253  }
6254  namespace DeadBrainCoralWallFan
6255  {
6257  {
6258  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9569;
6259  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9571;
6260  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9573;
6261  else return 9575;
6262  }
6265  }
6266  namespace DeadBubbleCoral
6267  {
6269  {
6270  return 9525;
6271  }
6272  }
6273  namespace DeadBubbleCoralBlock
6274  {
6276  {
6277  return 9512;
6278  }
6279  }
6280  namespace DeadBubbleCoralFan
6281  {
6283  {
6284  return 9545;
6285  }
6286  }
6287  namespace DeadBubbleCoralWallFan
6288  {
6290  {
6291  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9577;
6292  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9579;
6293  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9581;
6294  else return 9583;
6295  }
6298  }
6299  namespace DeadBush
6300  {
6301  constexpr BlockState DeadBush()
6302  {
6303  return 1344;
6304  }
6305  }
6306  namespace DeadFireCoral
6307  {
6309  {
6310  return 9527;
6311  }
6312  }
6313  namespace DeadFireCoralBlock
6314  {
6316  {
6317  return 9513;
6318  }
6319  }
6320  namespace DeadFireCoralFan
6321  {
6323  {
6324  return 9547;
6325  }
6326  }
6327  namespace DeadFireCoralWallFan
6328  {
6330  {
6331  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9585;
6332  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9587;
6333  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9589;
6334  else return 9591;
6335  }
6338  }
6339  namespace DeadHornCoral
6340  {
6342  {
6343  return 9529;
6344  }
6345  }
6346  namespace DeadHornCoralBlock
6347  {
6349  {
6350  return 9514;
6351  }
6352  }
6353  namespace DeadHornCoralFan
6354  {
6356  {
6357  return 9549;
6358  }
6359  }
6360  namespace DeadHornCoralWallFan
6361  {
6363  {
6364  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9593;
6365  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9595;
6366  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9597;
6367  else return 9599;
6368  }
6371  }
6372  namespace DeadTubeCoral
6373  {
6375  {
6376  return 9521;
6377  }
6378  }
6379  namespace DeadTubeCoralBlock
6380  {
6382  {
6383  return 9510;
6384  }
6385  }
6386  namespace DeadTubeCoralFan
6387  {
6389  {
6390  return 9541;
6391  }
6392  }
6393  namespace DeadTubeCoralWallFan
6394  {
6396  {
6397  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9561;
6398  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9563;
6399  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9565;
6400  else return 9567;
6401  }
6404  }
6405  namespace DetectorRail
6406  {
6407  enum class Shape
6408  {
6409  NorthSouth,
6410  EastWest,
6411  AscendingEast,
6412  AscendingWest,
6415  };
6416  constexpr BlockState DetectorRail(const bool Powered, const enum Shape Shape)
6417  {
6418  if (Powered)
6419  if (Shape == Shape::NorthSouth) return 1317;
6420  else if (Shape == Shape::EastWest) return 1318;
6421  else if (Shape == Shape::AscendingEast) return 1319;
6422  else if (Shape == Shape::AscendingWest) return 1320;
6423  else if (Shape == Shape::AscendingNorth) return 1321;
6424  else return 1322;
6425  else
6426  if (Shape == Shape::NorthSouth) return 1323;
6427  else if (Shape == Shape::EastWest) return 1324;
6428  else if (Shape == Shape::AscendingEast) return 1325;
6429  else if (Shape == Shape::AscendingWest) return 1326;
6430  else if (Shape == Shape::AscendingNorth) return 1327;
6431  else return 1328;
6432  }
6434  bool Powered(BlockState Block);
6435  enum Shape Shape(BlockState Block);
6436  }
6437  namespace DiamondBlock
6438  {
6440  {
6441  return 3355;
6442  }
6443  }
6444  namespace DiamondOre
6445  {
6447  {
6448  return 3354;
6449  }
6450  }
6451  namespace Diorite
6452  {
6453  constexpr BlockState Diorite()
6454  {
6455  return 4;
6456  }
6457  }
6458  namespace DioriteSlab
6459  {
6460  enum class Type
6461  {
6462  Top,
6463  Bottom,
6464  Double
6465  };
6466  constexpr BlockState DioriteSlab(const enum Type Type)
6467  {
6468  if (Type == Type::Top) return 10862;
6469  else if (Type == Type::Bottom) return 10864;
6470  else return 10866;
6471  }
6473  enum Type Type(BlockState Block);
6474  }
6475  namespace DioriteStairs
6476  {
6477  enum class Half
6478  {
6479  Top,
6480  Bottom
6481  };
6482  enum class Shape
6483  {
6484  Straight,
6485  InnerLeft,
6486  InnerRight,
6487  OuterLeft,
6488  OuterRight
6489  };
6490  constexpr BlockState DioriteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
6491  {
6493  if (Half == Half::Top)
6494  if (Shape == Shape::Straight) return 10710;
6495  else if (Shape == Shape::InnerLeft) return 10712;
6496  else if (Shape == Shape::InnerRight) return 10714;
6497  else if (Shape == Shape::OuterLeft) return 10716;
6498  else return 10718;
6499  else
6500  if (Shape == Shape::Straight) return 10720;
6501  else if (Shape == Shape::InnerLeft) return 10722;
6502  else if (Shape == Shape::InnerRight) return 10724;
6503  else if (Shape == Shape::OuterLeft) return 10726;
6504  else return 10728;
6505  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
6506  if (Half == Half::Top)
6507  if (Shape == Shape::Straight) return 10730;
6508  else if (Shape == Shape::InnerLeft) return 10732;
6509  else if (Shape == Shape::InnerRight) return 10734;
6510  else if (Shape == Shape::OuterLeft) return 10736;
6511  else return 10738;
6512  else
6513  if (Shape == Shape::Straight) return 10740;
6514  else if (Shape == Shape::InnerLeft) return 10742;
6515  else if (Shape == Shape::InnerRight) return 10744;
6516  else if (Shape == Shape::OuterLeft) return 10746;
6517  else return 10748;
6518  else if (Facing == eBlockFace::BLOCK_FACE_XM)
6519  if (Half == Half::Top)
6520  if (Shape == Shape::Straight) return 10750;
6521  else if (Shape == Shape::InnerLeft) return 10752;
6522  else if (Shape == Shape::InnerRight) return 10754;
6523  else if (Shape == Shape::OuterLeft) return 10756;
6524  else return 10758;
6525  else
6526  if (Shape == Shape::Straight) return 10760;
6527  else if (Shape == Shape::InnerLeft) return 10762;
6528  else if (Shape == Shape::InnerRight) return 10764;
6529  else if (Shape == Shape::OuterLeft) return 10766;
6530  else return 10768;
6531  else
6532  if (Half == Half::Top)
6533  if (Shape == Shape::Straight) return 10770;
6534  else if (Shape == Shape::InnerLeft) return 10772;
6535  else if (Shape == Shape::InnerRight) return 10774;
6536  else if (Shape == Shape::OuterLeft) return 10776;
6537  else return 10778;
6538  else
6539  if (Shape == Shape::Straight) return 10780;
6540  else if (Shape == Shape::InnerLeft) return 10782;
6541  else if (Shape == Shape::InnerRight) return 10784;
6542  else if (Shape == Shape::OuterLeft) return 10786;
6543  else return 10788;
6544  }
6547  enum Half Half(BlockState Block);
6548  enum Shape Shape(BlockState Block);
6549  }
6550  namespace DioriteWall
6551  {
6552  enum class East
6553  {
6554  None,
6555  Low,
6556  Tall
6557  };
6558  enum class North
6559  {
6560  None,
6561  Low,
6562  Tall
6563  };
6564  enum class South
6565  {
6566  None,
6567  Low,
6568  Tall
6569  };
6570  enum class West
6571  {
6572  None,
6573  Low,
6574  Tall
6575  };
6576  constexpr BlockState DioriteWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
6577  {
6578  if (East == East::None)
6579  if (North == North::None)
6580  if (South == South::None)
6581  if (Up)
6582  if (West == West::None) return 14434;
6583  else if (West == West::Low) return 14435;
6584  else return 14436;
6585  else
6586  if (West == West::None) return 14440;
6587  else if (West == West::Low) return 14441;
6588  else return 14442;
6589  else if (South == South::Low)
6590  if (Up)
6591  if (West == West::None) return 14446;
6592  else if (West == West::Low) return 14447;
6593  else return 14448;
6594  else
6595  if (West == West::None) return 14452;
6596  else if (West == West::Low) return 14453;
6597  else return 14454;
6598  else
6599  if (Up)
6600  if (West == West::None) return 14458;
6601  else if (West == West::Low) return 14459;
6602  else return 14460;
6603  else
6604  if (West == West::None) return 14464;
6605  else if (West == West::Low) return 14465;
6606  else return 14466;
6607  else if (North == North::Low)
6608  if (South == South::None)
6609  if (Up)
6610  if (West == West::None) return 14470;
6611  else if (West == West::Low) return 14471;
6612  else return 14472;
6613  else
6614  if (West == West::None) return 14476;
6615  else if (West == West::Low) return 14477;
6616  else return 14478;
6617  else if (South == South::Low)
6618  if (Up)
6619  if (West == West::None) return 14482;
6620  else if (West == West::Low) return 14483;
6621  else return 14484;
6622  else
6623  if (West == West::None) return 14488;
6624  else if (West == West::Low) return 14489;
6625  else return 14490;
6626  else
6627  if (Up)
6628  if (West == West::None) return 14494;
6629  else if (West == West::Low) return 14495;
6630  else return 14496;
6631  else
6632  if (West == West::None) return 14500;
6633  else if (West == West::Low) return 14501;
6634  else return 14502;
6635  else
6636  if (South == South::None)
6637  if (Up)
6638  if (West == West::None) return 14506;
6639  else if (West == West::Low) return 14507;
6640  else return 14508;
6641  else
6642  if (West == West::None) return 14512;
6643  else if (West == West::Low) return 14513;
6644  else return 14514;
6645  else if (South == South::Low)
6646  if (Up)
6647  if (West == West::None) return 14518;
6648  else if (West == West::Low) return 14519;
6649  else return 14520;
6650  else
6651  if (West == West::None) return 14524;
6652  else if (West == West::Low) return 14525;
6653  else return 14526;
6654  else
6655  if (Up)
6656  if (West == West::None) return 14530;
6657  else if (West == West::Low) return 14531;
6658  else return 14532;
6659  else
6660  if (West == West::None) return 14536;
6661  else if (West == West::Low) return 14537;
6662  else return 14538;
6663  else if (East == East::Low)
6664  if (North == North::None)
6665  if (South == South::None)
6666  if (Up)
6667  if (West == West::None) return 14542;
6668  else if (West == West::Low) return 14543;
6669  else return 14544;
6670  else
6671  if (West == West::None) return 14548;
6672  else if (West == West::Low) return 14549;
6673  else return 14550;
6674  else if (South == South::Low)
6675  if (Up)
6676  if (West == West::None) return 14554;
6677  else if (West == West::Low) return 14555;
6678  else return 14556;
6679  else
6680  if (West == West::None) return 14560;
6681  else if (West == West::Low) return 14561;
6682  else return 14562;
6683  else
6684  if (Up)
6685  if (West == West::None) return 14566;
6686  else if (West == West::Low) return 14567;
6687  else return 14568;
6688  else
6689  if (West == West::None) return 14572;
6690  else if (West == West::Low) return 14573;
6691  else return 14574;
6692  else if (North == North::Low)
6693  if (South == South::None)
6694  if (Up)
6695  if (West == West::None) return 14578;
6696  else if (West == West::Low) return 14579;
6697  else return 14580;
6698  else
6699  if (West == West::None) return 14584;
6700  else if (West == West::Low) return 14585;
6701  else return 14586;
6702  else if (South == South::Low)
6703  if (Up)
6704  if (West == West::None) return 14590;
6705  else if (West == West::Low) return 14591;
6706  else return 14592;
6707  else
6708  if (West == West::None) return 14596;
6709  else if (West == West::Low) return 14597;
6710  else return 14598;
6711  else
6712  if (Up)
6713  if (West == West::None) return 14602;
6714  else if (West == West::Low) return 14603;
6715  else return 14604;
6716  else
6717  if (West == West::None) return 14608;
6718  else if (West == West::Low) return 14609;
6719  else return 14610;
6720  else
6721  if (South == South::None)
6722  if (Up)
6723  if (West == West::None) return 14614;
6724  else if (West == West::Low) return 14615;
6725  else return 14616;
6726  else
6727  if (West == West::None) return 14620;
6728  else if (West == West::Low) return 14621;
6729  else return 14622;
6730  else if (South == South::Low)
6731  if (Up)
6732  if (West == West::None) return 14626;
6733  else if (West == West::Low) return 14627;
6734  else return 14628;
6735  else
6736  if (West == West::None) return 14632;
6737  else if (West == West::Low) return 14633;
6738  else return 14634;
6739  else
6740  if (Up)
6741  if (West == West::None) return 14638;
6742  else if (West == West::Low) return 14639;
6743  else return 14640;
6744  else
6745  if (West == West::None) return 14644;
6746  else if (West == West::Low) return 14645;
6747  else return 14646;
6748  else
6749  if (North == North::None)
6750  if (South == South::None)
6751  if (Up)
6752  if (West == West::None) return 14650;
6753  else if (West == West::Low) return 14651;
6754  else return 14652;
6755  else
6756  if (West == West::None) return 14656;
6757  else if (West == West::Low) return 14657;
6758  else return 14658;
6759  else if (South == South::Low)
6760  if (Up)
6761  if (West == West::None) return 14662;
6762  else if (West == West::Low) return 14663;
6763  else return 14664;
6764  else
6765  if (West == West::None) return 14668;
6766  else if (West == West::Low) return 14669;
6767  else return 14670;
6768  else
6769  if (Up)
6770  if (West == West::None) return 14674;
6771  else if (West == West::Low) return 14675;
6772  else return 14676;
6773  else
6774  if (West == West::None) return 14680;
6775  else if (West == West::Low) return 14681;
6776  else return 14682;
6777  else if (North == North::Low)
6778  if (South == South::None)
6779  if (Up)
6780  if (West == West::None) return 14686;
6781  else if (West == West::Low) return 14687;
6782  else return 14688;
6783  else
6784  if (West == West::None) return 14692;
6785  else if (West == West::Low) return 14693;
6786  else return 14694;
6787  else if (South == South::Low)
6788  if (Up)
6789  if (West == West::None) return 14698;
6790  else if (West == West::Low) return 14699;
6791  else return 14700;
6792  else
6793  if (West == West::None) return 14704;
6794  else if (West == West::Low) return 14705;
6795  else return 14706;
6796  else
6797  if (Up)
6798  if (West == West::None) return 14710;
6799  else if (West == West::Low) return 14711;
6800  else return 14712;
6801  else
6802  if (West == West::None) return 14716;
6803  else if (West == West::Low) return 14717;
6804  else return 14718;
6805  else
6806  if (South == South::None)
6807  if (Up)
6808  if (West == West::None) return 14722;
6809  else if (West == West::Low) return 14723;
6810  else return 14724;
6811  else
6812  if (West == West::None) return 14728;
6813  else if (West == West::Low) return 14729;
6814  else return 14730;
6815  else if (South == South::Low)
6816  if (Up)
6817  if (West == West::None) return 14734;
6818  else if (West == West::Low) return 14735;
6819  else return 14736;
6820  else
6821  if (West == West::None) return 14740;
6822  else if (West == West::Low) return 14741;
6823  else return 14742;
6824  else
6825  if (Up)
6826  if (West == West::None) return 14746;
6827  else if (West == West::Low) return 14747;
6828  else return 14748;
6829  else
6830  if (West == West::None) return 14752;
6831  else if (West == West::Low) return 14753;
6832  else return 14754;
6833  }
6835  enum East East(BlockState Block);
6836  enum North North(BlockState Block);
6837  enum South South(BlockState Block);
6838  bool Up(BlockState Block);
6839  enum West West(BlockState Block);
6840  }
6841  namespace Dirt
6842  {
6843  constexpr BlockState Dirt()
6844  {
6845  return 10;
6846  }
6847  }
6848  namespace Dispenser
6849  {
6850  constexpr BlockState Dispenser(const eBlockFace Facing, const bool Triggered)
6851  {
6853  if (Triggered) return 234;
6854  else return 235;
6855  else if (Facing == eBlockFace::BLOCK_FACE_XP)
6856  if (Triggered) return 236;
6857  else return 237;
6858  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
6859  if (Triggered) return 238;
6860  else return 239;
6861  else if (Facing == eBlockFace::BLOCK_FACE_XM)
6862  if (Triggered) return 240;
6863  else return 241;
6864  else if (Facing == eBlockFace::BLOCK_FACE_YP)
6865  if (Triggered) return 242;
6866  else return 243;
6867  else
6868  if (Triggered) return 244;
6869  else return 245;
6870  }
6873  bool Triggered(BlockState Block);
6874  }
6875  namespace DragonEgg
6876  {
6877  constexpr BlockState DragonEgg()
6878  {
6879  return 5155;
6880  }
6881  }
6882  namespace DragonHead
6883  {
6884  constexpr BlockState DragonHead(const unsigned char Rotation)
6885  {
6886  if (Rotation == 0) return 6590;
6887  else if (Rotation == 1) return 6591;
6888  else if (Rotation == 2) return 6592;
6889  else if (Rotation == 3) return 6593;
6890  else if (Rotation == 4) return 6594;
6891  else if (Rotation == 5) return 6595;
6892  else if (Rotation == 6) return 6596;
6893  else if (Rotation == 7) return 6597;
6894  else if (Rotation == 8) return 6598;
6895  else if (Rotation == 9) return 6599;
6896  else if (Rotation == 10) return 6600;
6897  else if (Rotation == 11) return 6601;
6898  else if (Rotation == 12) return 6602;
6899  else if (Rotation == 13) return 6603;
6900  else if (Rotation == 14) return 6604;
6901  else return 6605;
6902  }
6904  unsigned char Rotation(BlockState Block);
6905  }
6906  namespace DragonWallHead
6907  {
6909  {
6910  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6606;
6911  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6607;
6912  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6608;
6913  else return 6609;
6914  }
6917  }
6918  namespace DriedKelpBlock
6919  {
6921  {
6922  return 9497;
6923  }
6924  }
6925  namespace Dropper
6926  {
6927  constexpr BlockState Dropper(const eBlockFace Facing, const bool Triggered)
6928  {
6930  if (Triggered) return 6835;
6931  else return 6836;
6932  else if (Facing == eBlockFace::BLOCK_FACE_XP)
6933  if (Triggered) return 6837;
6934  else return 6838;
6935  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
6936  if (Triggered) return 6839;
6937  else return 6840;
6938  else if (Facing == eBlockFace::BLOCK_FACE_XM)
6939  if (Triggered) return 6841;
6940  else return 6842;
6941  else if (Facing == eBlockFace::BLOCK_FACE_YP)
6942  if (Triggered) return 6843;
6943  else return 6844;
6944  else
6945  if (Triggered) return 6845;
6946  else return 6846;
6947  }
6948  BlockState Dropper();
6950  bool Triggered(BlockState Block);
6951  }
6952  namespace EmeraldBlock
6953  {
6955  {
6956  return 5403;
6957  }
6958  }
6959  namespace EmeraldOre
6960  {
6962  {
6963  return 5250;
6964  }
6965  }
6966  namespace EnchantingTable
6967  {
6969  {
6970  return 5132;
6971  }
6972  }
6973  namespace EndGateway
6974  {
6976  {
6977  return 9224;
6978  }
6979  }
6980  namespace EndPortal
6981  {
6982  constexpr BlockState EndPortal()
6983  {
6984  return 5145;
6985  }
6986  }
6987  namespace EndPortalFrame
6988  {
6989  constexpr BlockState EndPortalFrame(const bool Eye, const eBlockFace Facing)
6990  {
6991  if (Eye)
6992  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5146;
6993  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5147;
6994  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5148;
6995  else return 5149;
6996  else
6997  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5150;
6998  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5151;
6999  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5152;
7000  else return 5153;
7001  }
7003  bool Eye(BlockState Block);
7005  }
7006  namespace EndRod
7007  {
7009  {
7010  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9058;
7011  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9059;
7012  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9060;
7013  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9061;
7014  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9062;
7015  else return 9063;
7016  }
7017  BlockState EndRod();
7019  }
7020  namespace EndStone
7021  {
7022  constexpr BlockState EndStone()
7023  {
7024  return 5154;
7025  }
7026  }
7027  namespace EndStoneBrickSlab
7028  {
7029  enum class Type
7030  {
7031  Top,
7032  Bottom,
7033  Double
7034  };
7035  constexpr BlockState EndStoneBrickSlab(const enum Type Type)
7036  {
7037  if (Type == Type::Top) return 10820;
7038  else if (Type == Type::Bottom) return 10822;
7039  else return 10824;
7040  }
7042  enum Type Type(BlockState Block);
7043  }
7044  namespace EndStoneBrickStairs
7045  {
7046  enum class Half
7047  {
7048  Top,
7049  Bottom
7050  };
7051  enum class Shape
7052  {
7053  Straight,
7054  InnerLeft,
7055  InnerRight,
7056  OuterLeft,
7057  OuterRight
7058  };
7059  constexpr BlockState EndStoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
7060  {
7062  if (Half == Half::Top)
7063  if (Shape == Shape::Straight) return 10070;
7064  else if (Shape == Shape::InnerLeft) return 10072;
7065  else if (Shape == Shape::InnerRight) return 10074;
7066  else if (Shape == Shape::OuterLeft) return 10076;
7067  else return 10078;
7068  else
7069  if (Shape == Shape::Straight) return 10080;
7070  else if (Shape == Shape::InnerLeft) return 10082;
7071  else if (Shape == Shape::InnerRight) return 10084;
7072  else if (Shape == Shape::OuterLeft) return 10086;
7073  else return 10088;
7074  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
7075  if (Half == Half::Top)
7076  if (Shape == Shape::Straight) return 10090;
7077  else if (Shape == Shape::InnerLeft) return 10092;
7078  else if (Shape == Shape::InnerRight) return 10094;
7079  else if (Shape == Shape::OuterLeft) return 10096;
7080  else return 10098;
7081  else
7082  if (Shape == Shape::Straight) return 10100;
7083  else if (Shape == Shape::InnerLeft) return 10102;
7084  else if (Shape == Shape::InnerRight) return 10104;
7085  else if (Shape == Shape::OuterLeft) return 10106;
7086  else return 10108;
7087  else if (Facing == eBlockFace::BLOCK_FACE_XM)
7088  if (Half == Half::Top)
7089  if (Shape == Shape::Straight) return 10110;
7090  else if (Shape == Shape::InnerLeft) return 10112;
7091  else if (Shape == Shape::InnerRight) return 10114;
7092  else if (Shape == Shape::OuterLeft) return 10116;
7093  else return 10118;
7094  else
7095  if (Shape == Shape::Straight) return 10120;
7096  else if (Shape == Shape::InnerLeft) return 10122;
7097  else if (Shape == Shape::InnerRight) return 10124;
7098  else if (Shape == Shape::OuterLeft) return 10126;
7099  else return 10128;
7100  else
7101  if (Half == Half::Top)
7102  if (Shape == Shape::Straight) return 10130;
7103  else if (Shape == Shape::InnerLeft) return 10132;
7104  else if (Shape == Shape::InnerRight) return 10134;
7105  else if (Shape == Shape::OuterLeft) return 10136;
7106  else return 10138;
7107  else
7108  if (Shape == Shape::Straight) return 10140;
7109  else if (Shape == Shape::InnerLeft) return 10142;
7110  else if (Shape == Shape::InnerRight) return 10144;
7111  else if (Shape == Shape::OuterLeft) return 10146;
7112  else return 10148;
7113  }
7116  enum Half Half(BlockState Block);
7117  enum Shape Shape(BlockState Block);
7118  }
7119  namespace EndStoneBrickWall
7120  {
7121  enum class East
7122  {
7123  None,
7124  Low,
7125  Tall
7126  };
7127  enum class North
7128  {
7129  None,
7130  Low,
7131  Tall
7132  };
7133  enum class South
7134  {
7135  None,
7136  Low,
7137  Tall
7138  };
7139  enum class West
7140  {
7141  None,
7142  Low,
7143  Tall
7144  };
7145  constexpr BlockState EndStoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
7146  {
7147  if (East == East::None)
7148  if (North == North::None)
7149  if (South == South::None)
7150  if (Up)
7151  if (West == West::None) return 14110;
7152  else if (West == West::Low) return 14111;
7153  else return 14112;
7154  else
7155  if (West == West::None) return 14116;
7156  else if (West == West::Low) return 14117;
7157  else return 14118;
7158  else if (South == South::Low)
7159  if (Up)
7160  if (West == West::None) return 14122;
7161  else if (West == West::Low) return 14123;
7162  else return 14124;
7163  else
7164  if (West == West::None) return 14128;
7165  else if (West == West::Low) return 14129;
7166  else return 14130;
7167  else
7168  if (Up)
7169  if (West == West::None) return 14134;
7170  else if (West == West::Low) return 14135;
7171  else return 14136;
7172  else
7173  if (West == West::None) return 14140;
7174  else if (West == West::Low) return 14141;
7175  else return 14142;
7176  else if (North == North::Low)
7177  if (South == South::None)
7178  if (Up)
7179  if (West == West::None) return 14146;
7180  else if (West == West::Low) return 14147;
7181  else return 14148;
7182  else
7183  if (West == West::None) return 14152;
7184  else if (West == West::Low) return 14153;
7185  else return 14154;
7186  else if (South == South::Low)
7187  if (Up)
7188  if (West == West::None) return 14158;
7189  else if (West == West::Low) return 14159;
7190  else return 14160;
7191  else
7192  if (West == West::None) return 14164;
7193  else if (West == West::Low) return 14165;
7194  else return 14166;
7195  else
7196  if (Up)
7197  if (West == West::None) return 14170;
7198  else if (West == West::Low) return 14171;
7199  else return 14172;
7200  else
7201  if (West == West::None) return 14176;
7202  else if (West == West::Low) return 14177;
7203  else return 14178;
7204  else
7205  if (South == South::None)
7206  if (Up)
7207  if (West == West::None) return 14182;
7208  else if (West == West::Low) return 14183;
7209  else return 14184;
7210  else
7211  if (West == West::None) return 14188;
7212  else if (West == West::Low) return 14189;
7213  else return 14190;
7214  else if (South == South::Low)
7215  if (Up)
7216  if (West == West::None) return 14194;
7217  else if (West == West::Low) return 14195;
7218  else return 14196;
7219  else
7220  if (West == West::None) return 14200;
7221  else if (West == West::Low) return 14201;
7222  else return 14202;
7223  else
7224  if (Up)
7225  if (West == West::None) return 14206;
7226  else if (West == West::Low) return 14207;
7227  else return 14208;
7228  else
7229  if (West == West::None) return 14212;
7230  else if (West == West::Low) return 14213;
7231  else return 14214;
7232  else if (East == East::Low)
7233  if (North == North::None)
7234  if (South == South::None)
7235  if (Up)
7236  if (West == West::None) return 14218;
7237  else if (West == West::Low) return 14219;
7238  else return 14220;
7239  else
7240  if (West == West::None) return 14224;
7241  else if (West == West::Low) return 14225;
7242  else return 14226;
7243  else if (South == South::Low)
7244  if (Up)
7245  if (West == West::None) return 14230;
7246  else if (West == West::Low) return 14231;
7247  else return 14232;
7248  else
7249  if (West == West::None) return 14236;
7250  else if (West == West::Low) return 14237;
7251  else return 14238;
7252  else
7253  if (Up)
7254  if (West == West::None) return 14242;
7255  else if (West == West::Low) return 14243;
7256  else return 14244;
7257  else
7258  if (West == West::None) return 14248;
7259  else if (West == West::Low) return 14249;
7260  else return 14250;
7261  else if (North == North::Low)
7262  if (South == South::None)
7263  if (Up)
7264  if (West == West::None) return 14254;
7265  else if (West == West::Low) return 14255;
7266  else return 14256;
7267  else
7268  if (West == West::None) return 14260;
7269  else if (West == West::Low) return 14261;
7270  else return 14262;
7271  else if (South == South::Low)
7272  if (Up)
7273  if (West == West::None) return 14266;
7274  else if (West == West::Low) return 14267;
7275  else return 14268;
7276  else
7277  if (West == West::None) return 14272;
7278  else if (West == West::Low) return 14273;
7279  else return 14274;
7280  else
7281  if (Up)
7282  if (West == West::None) return 14278;
7283  else if (West == West::Low) return 14279;
7284  else return 14280;
7285  else
7286  if (West == West::None) return 14284;
7287  else if (West == West::Low) return 14285;
7288  else return 14286;
7289  else
7290  if (South == South::None)
7291  if (Up)
7292  if (West == West::None) return 14290;
7293  else if (West == West::Low) return 14291;
7294  else return 14292;
7295  else
7296  if (West == West::None) return 14296;
7297  else if (West == West::Low) return 14297;
7298  else return 14298;
7299  else if (South == South::Low)
7300  if (Up)
7301  if (West == West::None) return 14302;
7302  else if (West == West::Low) return 14303;
7303  else return 14304;
7304  else
7305  if (West == West::None) return 14308;
7306  else if (West == West::Low) return 14309;
7307  else return 14310;
7308  else
7309  if (Up)
7310  if (West == West::None) return 14314;
7311  else if (West == West::Low) return 14315;
7312  else return 14316;
7313  else
7314  if (West == West::None) return 14320;
7315  else if (West == West::Low) return 14321;
7316  else return 14322;
7317  else
7318  if (North == North::None)
7319  if (South == South::None)
7320  if (Up)
7321  if (West == West::None) return 14326;
7322  else if (West == West::Low) return 14327;
7323  else return 14328;
7324  else
7325  if (West == West::None) return 14332;
7326  else if (West == West::Low) return 14333;
7327  else return 14334;
7328  else if (South == South::Low)
7329  if (Up)
7330  if (West == West::None) return 14338;
7331  else if (West == West::Low) return 14339;
7332  else return 14340;
7333  else
7334  if (West == West::None) return 14344;
7335  else if (West == West::Low) return 14345;
7336  else return 14346;
7337  else
7338  if (Up)
7339  if (West == West::None) return 14350;
7340  else if (West == West::Low) return 14351;
7341  else return 14352;
7342  else
7343  if (West == West::None) return 14356;
7344  else if (West == West::Low) return 14357;
7345  else return 14358;
7346  else if (North == North::Low)
7347  if (South == South::None)
7348  if (Up)
7349  if (West == West::None) return 14362;
7350  else if (West == West::Low) return 14363;
7351  else return 14364;
7352  else
7353  if (West == West::None) return 14368;
7354  else if (West == West::Low) return 14369;
7355  else return 14370;
7356  else if (South == South::Low)
7357  if (Up)
7358  if (West == West::None) return 14374;
7359  else if (West == West::Low) return 14375;
7360  else return 14376;
7361  else
7362  if (West == West::None) return 14380;
7363  else if (West == West::Low) return 14381;
7364  else return 14382;
7365  else
7366  if (Up)
7367  if (West == West::None) return 14386;
7368  else if (West == West::Low) return 14387;
7369  else return 14388;
7370  else
7371  if (West == West::None) return 14392;
7372  else if (West == West::Low) return 14393;
7373  else return 14394;
7374  else
7375  if (South == South::None)
7376  if (Up)
7377  if (West == West::None) return 14398;
7378  else if (West == West::Low) return 14399;
7379  else return 14400;
7380  else
7381  if (West == West::None) return 14404;
7382  else if (West == West::Low) return 14405;
7383  else return 14406;
7384  else if (South == South::Low)
7385  if (Up)
7386  if (West == West::None) return 14410;
7387  else if (West == West::Low) return 14411;
7388  else return 14412;
7389  else
7390  if (West == West::None) return 14416;
7391  else if (West == West::Low) return 14417;
7392  else return 14418;
7393  else
7394  if (Up)
7395  if (West == West::None) return 14422;
7396  else if (West == West::Low) return 14423;
7397  else return 14424;
7398  else
7399  if (West == West::None) return 14428;
7400  else if (West == West::Low) return 14429;
7401  else return 14430;
7402  }
7404  enum East East(BlockState Block);
7405  enum North North(BlockState Block);
7406  enum South South(BlockState Block);
7407  bool Up(BlockState Block);
7408  enum West West(BlockState Block);
7409  }
7410  namespace EndStoneBricks
7411  {
7413  {
7414  return 9218;
7415  }
7416  }
7417  namespace EnderChest
7418  {
7420  {
7421  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5252;
7422  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5254;
7423  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5256;
7424  else return 5258;
7425  }
7428  }
7429  namespace Farmland
7430  {
7431  constexpr BlockState Farmland(const unsigned char Moisture)
7432  {
7433  if (Moisture == 0) return 3365;
7434  else if (Moisture == 1) return 3366;
7435  else if (Moisture == 2) return 3367;
7436  else if (Moisture == 3) return 3368;
7437  else if (Moisture == 4) return 3369;
7438  else if (Moisture == 5) return 3370;
7439  else if (Moisture == 6) return 3371;
7440  else return 3372;
7441  }
7442  BlockState Farmland();
7443  unsigned char Moisture(BlockState Block);
7444  }
7445  namespace Fern
7446  {
7447  constexpr BlockState Fern()
7448  {
7449  return 1343;
7450  }
7451  }
7452  namespace Fire
7453  {
7454  constexpr BlockState Fire(const unsigned char Age, const bool East, const bool North, const bool South, const bool Up, const bool West)
7455  {
7456  if (Age == 0)
7457  if (East)
7458  if (North)
7459  if (South)
7460  if (Up)
7461  if (West) return 1440;
7462  else return 1441;
7463  else
7464  if (West) return 1442;
7465  else return 1443;
7466  else
7467  if (Up)
7468  if (West) return 1444;
7469  else return 1445;
7470  else
7471  if (West) return 1446;
7472  else return 1447;
7473  else
7474  if (South)
7475  if (Up)
7476  if (West) return 1448;
7477  else return 1449;
7478  else
7479  if (West) return 1450;
7480  else return 1451;
7481  else
7482  if (Up)
7483  if (West) return 1452;
7484  else return 1453;
7485  else
7486  if (West) return 1454;
7487  else return 1455;
7488  else
7489  if (North)
7490  if (South)
7491  if (Up)
7492  if (West) return 1456;
7493  else return 1457;
7494  else
7495  if (West) return 1458;
7496  else return 1459;
7497  else
7498  if (Up)
7499  if (West) return 1460;
7500  else return 1461;
7501  else
7502  if (West) return 1462;
7503  else return 1463;
7504  else
7505  if (South)
7506  if (Up)
7507  if (West) return 1464;
7508  else return 1465;
7509  else
7510  if (West) return 1466;
7511  else return 1467;
7512  else
7513  if (Up)
7514  if (West) return 1468;
7515  else return 1469;
7516  else
7517  if (West) return 1470;
7518  else return 1471;
7519  else if (Age == 1)
7520  if (East)
7521  if (North)
7522  if (South)
7523  if (Up)
7524  if (West) return 1472;
7525  else return 1473;
7526  else
7527  if (West) return 1474;
7528  else return 1475;
7529  else
7530  if (Up)
7531  if (West) return 1476;
7532  else return 1477;
7533  else
7534  if (West) return 1478;
7535  else return 1479;
7536  else
7537  if (South)
7538  if (Up)
7539  if (West) return 1480;
7540  else return 1481;
7541  else
7542  if (West) return 1482;
7543  else return 1483;
7544  else
7545  if (Up)
7546  if (West) return 1484;
7547  else return 1485;
7548  else
7549  if (West) return 1486;
7550  else return 1487;
7551  else
7552  if (North)
7553  if (South)
7554  if (Up)
7555  if (West) return 1488;
7556  else return 1489;
7557  else
7558  if (West) return 1490;
7559  else return 1491;
7560  else
7561  if (Up)
7562  if (West) return 1492;
7563  else return 1493;
7564  else
7565  if (West) return 1494;
7566  else return 1495;
7567  else
7568  if (South)
7569  if (Up)
7570  if (West) return 1496;
7571  else return 1497;
7572  else
7573  if (West) return 1498;
7574  else return 1499;
7575  else
7576  if (Up)
7577  if (West) return 1500;
7578  else return 1501;
7579  else
7580  if (West) return 1502;
7581  else return 1503;
7582  else if (Age == 2)
7583  if (East)
7584  if (North)
7585  if (South)
7586  if (Up)
7587  if (West) return 1504;
7588  else return 1505;
7589  else
7590  if (West) return 1506;
7591  else return 1507;
7592  else
7593  if (Up)
7594  if (West) return 1508;
7595  else return 1509;
7596  else
7597  if (West) return 1510;
7598  else return 1511;
7599  else
7600  if (South)
7601  if (Up)
7602  if (West) return 1512;
7603  else return 1513;
7604  else
7605  if (West) return 1514;
7606  else return 1515;
7607  else
7608  if (Up)
7609  if (West) return 1516;
7610  else return 1517;
7611  else
7612  if (West) return 1518;
7613  else return 1519;
7614  else
7615  if (North)
7616  if (South)
7617  if (Up)
7618  if (West) return 1520;
7619  else return 1521;
7620  else
7621  if (West) return 1522;
7622  else return 1523;
7623  else
7624  if (Up)
7625  if (West) return 1524;
7626  else return 1525;
7627  else
7628  if (West) return 1526;
7629  else return 1527;
7630  else
7631  if (South)
7632  if (Up)
7633  if (West) return 1528;
7634  else return 1529;
7635  else
7636  if (West) return 1530;
7637  else return 1531;
7638  else
7639  if (Up)
7640  if (West) return 1532;
7641  else return 1533;
7642  else
7643  if (West) return 1534;
7644  else return 1535;
7645  else if (Age == 3)
7646  if (East)
7647  if (North)
7648  if (South)
7649  if (Up)
7650  if (West) return 1536;
7651  else return 1537;
7652  else
7653  if (West) return 1538;
7654  else return 1539;
7655  else
7656  if (Up)
7657  if (West) return 1540;
7658  else return 1541;
7659  else
7660  if (West) return 1542;
7661  else return 1543;
7662  else
7663  if (South)
7664  if (Up)
7665  if (West) return 1544;
7666  else return 1545;
7667  else
7668  if (West) return 1546;
7669  else return 1547;
7670  else
7671  if (Up)
7672  if (West) return 1548;
7673  else return 1549;
7674  else
7675  if (West) return 1550;
7676  else return 1551;
7677  else
7678  if (North)
7679  if (South)
7680  if (Up)
7681  if (West) return 1552;
7682  else return 1553;
7683  else
7684  if (West) return 1554;
7685  else return 1555;
7686  else
7687  if (Up)
7688  if (West) return 1556;
7689  else return 1557;
7690  else
7691  if (West) return 1558;
7692  else return 1559;
7693  else
7694  if (South)
7695  if (Up)
7696  if (West) return 1560;
7697  else return 1561;
7698  else
7699  if (West) return 1562;
7700  else return 1563;
7701  else
7702  if (Up)
7703  if (West) return 1564;
7704  else return 1565;
7705  else
7706  if (West) return 1566;
7707  else return 1567;
7708  else if (Age == 4)
7709  if (East)
7710  if (North)
7711  if (South)
7712  if (Up)
7713  if (West) return 1568;
7714  else return 1569;
7715  else
7716  if (West) return 1570;
7717  else return 1571;
7718  else
7719  if (Up)
7720  if (West) return 1572;
7721  else return 1573;
7722  else
7723  if (West) return 1574;
7724  else return 1575;
7725  else
7726  if (South)
7727  if (Up)
7728  if (West) return 1576;
7729  else return 1577;
7730  else
7731  if (West) return 1578;
7732  else return 1579;
7733  else
7734  if (Up)
7735  if (West) return 1580;
7736  else return 1581;
7737  else
7738  if (West) return 1582;
7739  else return 1583;
7740  else
7741  if (North)
7742  if (South)
7743  if (Up)
7744  if (West) return 1584;
7745  else return 1585;
7746  else
7747  if (West) return 1586;
7748  else return 1587;
7749  else
7750  if (Up)
7751  if (West) return 1588;
7752  else return 1589;
7753  else
7754  if (West) return 1590;
7755  else return 1591;
7756  else
7757  if (South)
7758  if (Up)
7759  if (West) return 1592;
7760  else return 1593;
7761  else
7762  if (West) return 1594;
7763  else return 1595;
7764  else
7765  if (Up)
7766  if (West) return 1596;
7767  else return 1597;
7768  else
7769  if (West) return 1598;
7770  else return 1599;
7771  else if (Age == 5)
7772  if (East)
7773  if (North)
7774  if (South)
7775  if (Up)
7776  if (West) return 1600;
7777  else return 1601;
7778  else
7779  if (West) return 1602;
7780  else return 1603;
7781  else
7782  if (Up)
7783  if (West) return 1604;
7784  else return 1605;
7785  else
7786  if (West) return 1606;
7787  else return 1607;
7788  else
7789  if (South)
7790  if (Up)
7791  if (West) return 1608;
7792  else return 1609;
7793  else
7794  if (West) return 1610;
7795  else return 1611;
7796  else
7797  if (Up)
7798  if (West) return 1612;
7799  else return 1613;
7800  else
7801  if (West) return 1614;
7802  else return 1615;
7803  else
7804  if (North)
7805  if (South)
7806  if (Up)
7807  if (West) return 1616;
7808  else return 1617;
7809  else
7810  if (West) return 1618;
7811  else return 1619;
7812  else
7813  if (Up)
7814  if (West) return 1620;
7815  else return 1621;
7816  else
7817  if (West) return 1622;
7818  else return 1623;
7819  else
7820  if (South)
7821  if (Up)
7822  if (West) return 1624;
7823  else return 1625;
7824  else
7825  if (West) return 1626;
7826  else return 1627;
7827  else
7828  if (Up)
7829  if (West) return 1628;
7830  else return 1629;
7831  else
7832  if (West) return 1630;
7833  else return 1631;
7834  else if (Age == 6)
7835  if (East)
7836  if (North)
7837  if (South)
7838  if (Up)
7839  if (West) return 1632;
7840  else return 1633;
7841  else
7842  if (West) return 1634;
7843  else return 1635;
7844  else
7845  if (Up)
7846  if (West) return 1636;
7847  else return 1637;
7848  else
7849  if (West) return 1638;
7850  else return 1639;
7851  else
7852  if (South)
7853  if (Up)
7854  if (West) return 1640;
7855  else return 1641;
7856  else
7857  if (West) return 1642;
7858  else return 1643;
7859  else
7860  if (Up)
7861  if (West) return 1644;
7862  else return 1645;
7863  else
7864  if (West) return 1646;
7865  else return 1647;
7866  else
7867  if (North)
7868  if (South)
7869  if (Up)
7870  if (West) return 1648;
7871  else return 1649;
7872  else
7873  if (West) return 1650;
7874  else return 1651;
7875  else
7876  if (Up)
7877  if (West) return 1652;
7878  else return 1653;
7879  else
7880  if (West) return 1654;
7881  else return 1655;
7882  else
7883  if (South)
7884  if (Up)
7885  if (West) return 1656;
7886  else return 1657;
7887  else
7888  if (West) return 1658;
7889  else return 1659;
7890  else
7891  if (Up)
7892  if (West) return 1660;
7893  else return 1661;
7894  else
7895  if (West) return 1662;
7896  else return 1663;
7897  else if (Age == 7)
7898  if (East)
7899  if (North)
7900  if (South)
7901  if (Up)
7902  if (West) return 1664;
7903  else return 1665;
7904  else
7905  if (West) return 1666;
7906  else return 1667;
7907  else
7908  if (Up)
7909  if (West) return 1668;
7910  else return 1669;
7911  else
7912  if (West) return 1670;
7913  else return 1671;
7914  else
7915  if (South)
7916  if (Up)
7917  if (West) return 1672;
7918  else return 1673;
7919  else
7920  if (West) return 1674;
7921  else return 1675;
7922  else
7923  if (Up)
7924  if (West) return 1676;
7925  else return 1677;
7926  else
7927  if (West) return 1678;
7928  else return 1679;
7929  else
7930  if (North)
7931  if (South)
7932  if (Up)
7933  if (West) return 1680;
7934  else return 1681;
7935  else
7936  if (West) return 1682;
7937  else return 1683;
7938  else
7939  if (Up)
7940  if (West) return 1684;
7941  else return 1685;
7942  else
7943  if (West) return 1686;
7944  else return 1687;
7945  else
7946  if (South)
7947  if (Up)
7948  if (West) return 1688;
7949  else return 1689;
7950  else
7951  if (West) return 1690;
7952  else return 1691;
7953  else
7954  if (Up)
7955  if (West) return 1692;
7956  else return 1693;
7957  else
7958  if (West) return 1694;
7959  else return 1695;
7960  else if (Age == 8)
7961  if (East)
7962  if (North)
7963  if (South)
7964  if (Up)
7965  if (West) return 1696;
7966  else return 1697;
7967  else
7968  if (West) return 1698;
7969  else return 1699;
7970  else
7971  if (Up)
7972  if (West) return 1700;
7973  else return 1701;
7974  else
7975  if (West) return 1702;
7976  else return 1703;
7977  else
7978  if (South)
7979  if (Up)
7980  if (West) return 1704;
7981  else return 1705;
7982  else
7983  if (West) return 1706;
7984  else return 1707;
7985  else
7986  if (Up)
7987  if (West) return 1708;
7988  else return 1709;
7989  else
7990  if (West) return 1710;
7991  else return 1711;
7992  else
7993  if (North)
7994  if (South)
7995  if (Up)
7996  if (West) return 1712;
7997  else return 1713;
7998  else
7999  if (West) return 1714;
8000  else return 1715;
8001  else
8002  if (Up)
8003  if (West) return 1716;
8004  else return 1717;
8005  else
8006  if (West) return 1718;
8007  else return 1719;
8008  else
8009  if (South)
8010  if (Up)
8011  if (West) return 1720;
8012  else return 1721;
8013  else
8014  if (West) return 1722;
8015  else return 1723;
8016  else
8017  if (Up)
8018  if (West) return 1724;
8019  else return 1725;
8020  else
8021  if (West) return 1726;
8022  else return 1727;
8023  else if (Age == 9)
8024  if (East)
8025  if (North)
8026  if (South)
8027  if (Up)
8028  if (West) return 1728;
8029  else return 1729;
8030  else
8031  if (West) return 1730;
8032  else return 1731;
8033  else
8034  if (Up)
8035  if (West) return 1732;
8036  else return 1733;
8037  else
8038  if (West) return 1734;
8039  else return 1735;
8040  else
8041  if (South)
8042  if (Up)
8043  if (West) return 1736;
8044  else return 1737;
8045  else
8046  if (West) return 1738;
8047  else return 1739;
8048  else
8049  if (Up)
8050  if (West) return 1740;
8051  else return 1741;
8052  else
8053  if (West) return 1742;
8054  else return 1743;
8055  else
8056  if (North)
8057  if (South)
8058  if (Up)
8059  if (West) return 1744;
8060  else return 1745;
8061  else
8062  if (West) return 1746;
8063  else return 1747;
8064  else
8065  if (Up)
8066  if (West) return 1748;
8067  else return 1749;
8068  else
8069  if (West) return 1750;
8070  else return 1751;
8071  else
8072  if (South)
8073  if (Up)
8074  if (West) return 1752;
8075  else return 1753;
8076  else
8077  if (West) return 1754;
8078  else return 1755;
8079  else
8080  if (Up)
8081  if (West) return 1756;
8082  else return 1757;
8083  else
8084  if (West) return 1758;
8085  else return 1759;
8086  else if (Age == 10)
8087  if (East)
8088  if (North)
8089  if (South)
8090  if (Up)
8091  if (West) return 1760;
8092  else return 1761;
8093  else
8094  if (West) return 1762;
8095  else return 1763;
8096  else
8097  if (Up)
8098  if (West) return 1764;
8099  else return 1765;
8100  else
8101  if (West) return 1766;
8102  else return 1767;
8103  else
8104  if (South)
8105  if (Up)
8106  if (West) return 1768;
8107  else return 1769;
8108  else
8109  if (West) return 1770;
8110  else return 1771;
8111  else
8112  if (Up)
8113  if (West) return 1772;
8114  else return 1773;
8115  else
8116  if (West) return 1774;
8117  else return 1775;
8118  else
8119  if (North)
8120  if (South)
8121  if (Up)
8122  if (West) return 1776;
8123  else return 1777;
8124  else
8125  if (West) return 1778;
8126  else return 1779;
8127  else
8128  if (Up)
8129  if (West) return 1780;
8130  else return 1781;
8131  else
8132  if (West) return 1782;
8133  else return 1783;
8134  else
8135  if (South)
8136  if (Up)
8137  if (West) return 1784;
8138  else return 1785;
8139  else
8140  if (West) return 1786;
8141  else return 1787;
8142  else
8143  if (Up)
8144  if (West) return 1788;
8145  else return 1789;
8146  else
8147  if (West) return 1790;
8148  else return 1791;
8149  else if (Age == 11)
8150  if (East)
8151  if (North)
8152  if (South)
8153  if (Up)
8154  if (West) return 1792;
8155  else return 1793;
8156  else
8157  if (West) return 1794;
8158  else return 1795;
8159  else
8160  if (Up)
8161  if (West) return 1796;
8162  else return 1797;
8163  else
8164  if (West) return 1798;
8165  else return 1799;
8166  else
8167  if (South)
8168  if (Up)
8169  if (West) return 1800;
8170  else return 1801;
8171  else
8172  if (West) return 1802;
8173  else return 1803;
8174  else
8175  if (Up)
8176  if (West) return 1804;
8177  else return 1805;
8178  else
8179  if (West) return 1806;
8180  else return 1807;
8181  else
8182  if (North)
8183  if (South)
8184  if (Up)
8185  if (West) return 1808;
8186  else return 1809;
8187  else
8188  if (West) return 1810;
8189  else return 1811;
8190  else
8191  if (Up)
8192  if (West) return 1812;
8193  else return 1813;
8194  else
8195  if (West) return 1814;
8196  else return 1815;
8197  else
8198  if (South)
8199  if (Up)
8200  if (West) return 1816;
8201  else return 1817;
8202  else
8203  if (West) return 1818;
8204  else return 1819;
8205  else
8206  if (Up)
8207  if (West) return 1820;
8208  else return 1821;
8209  else
8210  if (West) return 1822;
8211  else return 1823;
8212  else if (Age == 12)
8213  if (East)
8214  if (North)
8215  if (South)
8216  if (Up)
8217  if (West) return 1824;
8218  else return 1825;
8219  else
8220  if (West) return 1826;
8221  else return 1827;
8222  else
8223  if (Up)
8224  if (West) return 1828;
8225  else return 1829;
8226  else
8227  if (West) return 1830;
8228  else return 1831;
8229  else
8230  if (South)
8231  if (Up)
8232  if (West) return 1832;
8233  else return 1833;
8234  else
8235  if (West) return 1834;
8236  else return 1835;
8237  else
8238  if (Up)
8239  if (West) return 1836;
8240  else return 1837;
8241  else
8242  if (West) return 1838;
8243  else return 1839;
8244  else
8245  if (North)
8246  if (South)
8247  if (Up)
8248  if (West) return 1840;
8249  else return 1841;
8250  else
8251  if (West) return 1842;
8252  else return 1843;
8253  else
8254  if (Up)
8255  if (West) return 1844;
8256  else return 1845;
8257  else
8258  if (West) return 1846;
8259  else return 1847;
8260  else
8261  if (South)
8262  if (Up)
8263  if (West) return 1848;
8264  else return 1849;
8265  else
8266  if (West) return 1850;
8267  else return 1851;
8268  else
8269  if (Up)
8270  if (West) return 1852;
8271  else return 1853;
8272  else
8273  if (West) return 1854;
8274  else return 1855;
8275  else if (Age == 13)
8276  if (East)
8277  if (North)
8278  if (South)
8279  if (Up)
8280  if (West) return 1856;
8281  else return 1857;
8282  else
8283  if (West) return 1858;
8284  else return 1859;
8285  else
8286  if (Up)
8287  if (West) return 1860;
8288  else return 1861;
8289  else
8290  if (West) return 1862;
8291  else return 1863;
8292  else
8293  if (South)
8294  if (Up)
8295  if (West) return 1864;
8296  else return 1865;
8297  else
8298  if (West) return 1866;
8299  else return 1867;
8300  else
8301  if (Up)
8302  if (West) return 1868;
8303  else return 1869;
8304  else
8305  if (West) return 1870;
8306  else return 1871;
8307  else
8308  if (North)
8309  if (South)
8310  if (Up)
8311  if (West) return 1872;
8312  else return 1873;
8313  else
8314  if (West) return 1874;
8315  else return 1875;
8316  else
8317  if (Up)
8318  if (West) return 1876;
8319  else return 1877;
8320  else
8321  if (West) return 1878;
8322  else return 1879;
8323  else
8324  if (South)
8325  if (Up)
8326  if (West) return 1880;
8327  else return 1881;
8328  else
8329  if (West) return 1882;
8330  else return 1883;
8331  else
8332  if (Up)
8333  if (West) return 1884;
8334  else return 1885;
8335  else
8336  if (West) return 1886;
8337  else return 1887;
8338  else if (Age == 14)
8339  if (East)
8340  if (North)
8341  if (South)
8342  if (Up)
8343  if (West) return 1888;
8344  else return 1889;
8345  else
8346  if (West) return 1890;
8347  else return 1891;
8348  else
8349  if (Up)
8350  if (West) return 1892;
8351  else return 1893;
8352  else
8353  if (West) return 1894;
8354  else return 1895;
8355  else
8356  if (South)
8357  if (Up)
8358  if (West) return 1896;
8359  else return 1897;
8360  else
8361  if (West) return 1898;
8362  else return 1899;
8363  else
8364  if (Up)
8365  if (West) return 1900;
8366  else return 1901;
8367  else
8368  if (West) return 1902;
8369  else return 1903;
8370  else
8371  if (North)
8372  if (South)
8373  if (Up)
8374  if (West) return 1904;
8375  else return 1905;
8376  else
8377  if (West) return 1906;
8378  else return 1907;
8379  else
8380  if (Up)
8381  if (West) return 1908;
8382  else return 1909;
8383  else
8384  if (West) return 1910;
8385  else return 1911;
8386  else
8387  if (South)
8388  if (Up)
8389  if (West) return 1912;
8390  else return 1913;
8391  else
8392  if (West) return 1914;
8393  else return 1915;
8394  else
8395  if (Up)
8396  if (West) return 1916;
8397  else return 1917;
8398  else
8399  if (West) return 1918;
8400  else return 1919;
8401  else
8402  if (East)
8403  if (North)
8404  if (South)
8405  if (Up)
8406  if (West) return 1920;
8407  else return 1921;
8408  else
8409  if (West) return 1922;
8410  else return 1923;
8411  else
8412  if (Up)
8413  if (West) return 1924;
8414  else return 1925;
8415  else
8416  if (West) return 1926;
8417  else return 1927;
8418  else
8419  if (South)
8420  if (Up)
8421  if (West) return 1928;
8422  else return 1929;
8423  else
8424  if (West) return 1930;
8425  else return 1931;
8426  else
8427  if (Up)
8428  if (West) return 1932;
8429  else return 1933;
8430  else
8431  if (West) return 1934;
8432  else return 1935;
8433  else
8434  if (North)
8435  if (South)
8436  if (Up)
8437  if (West) return 1936;
8438  else return 1937;
8439  else
8440  if (West) return 1938;
8441  else return 1939;
8442  else
8443  if (Up)
8444  if (West) return 1940;
8445  else return 1941;
8446  else
8447  if (West) return 1942;
8448  else return 1943;
8449  else
8450  if (South)
8451  if (Up)
8452  if (West) return 1944;
8453  else return 1945;
8454  else
8455  if (West) return 1946;
8456  else return 1947;
8457  else
8458  if (Up)
8459  if (West) return 1948;
8460  else return 1949;
8461  else
8462  if (West) return 1950;
8463  else return 1951;
8464  }
8465  BlockState Fire();
8466  unsigned char Age(BlockState Block);
8467  bool East(BlockState Block);
8468  bool North(BlockState Block);
8469  bool South(BlockState Block);
8470  bool Up(BlockState Block);
8471  bool West(BlockState Block);
8472  }
8473  namespace FireCoral
8474  {
8475  constexpr BlockState FireCoral()
8476  {
8477  return 9537;
8478  }
8479  }
8480  namespace FireCoralBlock
8481  {
8483  {
8484  return 9518;
8485  }
8486  }
8487  namespace FireCoralFan
8488  {
8490  {
8491  return 9557;
8492  }
8493  }
8494  namespace FireCoralWallFan
8495  {
8497  {
8498  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9625;
8499  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9627;
8500  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9629;
8501  else return 9631;
8502  }
8505  }
8506  namespace FletchingTable
8507  {
8509  {
8510  return 14820;
8511  }
8512  }
8513  namespace FlowerPot
8514  {
8515  constexpr BlockState FlowerPot()
8516  {
8517  return 6305;
8518  }
8519  }
8520  namespace FrostedIce
8521  {
8522  constexpr BlockState FrostedIce(const unsigned char Age)
8523  {
8524  if (Age == 0) return 9249;
8525  else if (Age == 1) return 9250;
8526  else if (Age == 2) return 9251;
8527  else return 9252;
8528  }
8530  unsigned char Age(BlockState Block);
8531  }
8532  namespace Furnace
8533  {
8534  constexpr BlockState Furnace(const eBlockFace Facing, const bool Lit)
8535  {
8537  if (Lit) return 3373;
8538  else return 3374;
8539  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
8540  if (Lit) return 3375;
8541  else return 3376;
8542  else if (Facing == eBlockFace::BLOCK_FACE_XM)
8543  if (Lit) return 3377;
8544  else return 3378;
8545  else
8546  if (Lit) return 3379;
8547  else return 3380;
8548  }
8549  BlockState Furnace();
8551  bool Lit(BlockState Block);
8552  }
8553  namespace GildedBlackstone
8554  {
8556  {
8557  return 16664;
8558  }
8559  }
8560  namespace Glass
8561  {
8562  constexpr BlockState Glass()
8563  {
8564  return 231;
8565  }
8566  }
8567  namespace GlassPane
8568  {
8569  constexpr BlockState GlassPane(const bool East, const bool North, const bool South, const bool West)
8570  {
8571  if (East)
8572  if (North)
8573  if (South)
8574  if (West) return 4733;
8575  else return 4734;
8576  else
8577  if (West) return 4737;
8578  else return 4738;
8579  else
8580  if (South)
8581  if (West) return 4741;
8582  else return 4742;
8583  else
8584  if (West) return 4745;
8585  else return 4746;
8586  else
8587  if (North)
8588  if (South)
8589  if (West) return 4749;
8590  else return 4750;
8591  else
8592  if (West) return 4753;
8593  else return 4754;
8594  else
8595  if (South)
8596  if (West) return 4757;
8597  else return 4758;
8598  else
8599  if (West) return 4761;
8600  else return 4762;
8601  }
8603  bool East(BlockState Block);
8604  bool North(BlockState Block);
8605  bool South(BlockState Block);
8606  bool West(BlockState Block);
8607  }
8608  namespace Glowstone
8609  {
8610  constexpr BlockState Glowstone()
8611  {
8612  return 4013;
8613  }
8614  }
8615  namespace GoldBlock
8616  {
8617  constexpr BlockState GoldBlock()
8618  {
8619  return 1427;
8620  }
8621  }
8622  namespace GoldOre
8623  {
8624  constexpr BlockState GoldOre()
8625  {
8626  return 69;
8627  }
8628  }
8629  namespace Granite
8630  {
8631  constexpr BlockState Granite()
8632  {
8633  return 2;
8634  }
8635  }
8636  namespace GraniteSlab
8637  {
8638  enum class Type
8639  {
8640  Top,
8641  Bottom,
8642  Double
8643  };
8644  constexpr BlockState GraniteSlab(const enum Type Type)
8645  {
8646  if (Type == Type::Top) return 10838;
8647  else if (Type == Type::Bottom) return 10840;
8648  else return 10842;
8649  }
8651  enum Type Type(BlockState Block);
8652  }
8653  namespace GraniteStairs
8654  {
8655  enum class Half
8656  {
8657  Top,
8658  Bottom
8659  };
8660  enum class Shape
8661  {
8662  Straight,
8663  InnerLeft,
8664  InnerRight,
8665  OuterLeft,
8666  OuterRight
8667  };
8668  constexpr BlockState GraniteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
8669  {
8671  if (Half == Half::Top)
8672  if (Shape == Shape::Straight) return 10390;
8673  else if (Shape == Shape::InnerLeft) return 10392;
8674  else if (Shape == Shape::InnerRight) return 10394;
8675  else if (Shape == Shape::OuterLeft) return 10396;
8676  else return 10398;
8677  else
8678  if (Shape == Shape::Straight) return 10400;
8679  else if (Shape == Shape::InnerLeft) return 10402;
8680  else if (Shape == Shape::InnerRight) return 10404;
8681  else if (Shape == Shape::OuterLeft) return 10406;
8682  else return 10408;
8683  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
8684  if (Half == Half::Top)
8685  if (Shape == Shape::Straight) return 10410;
8686  else if (Shape == Shape::InnerLeft) return 10412;
8687  else if (Shape == Shape::InnerRight) return 10414;
8688  else if (Shape == Shape::OuterLeft) return 10416;
8689  else return 10418;
8690  else
8691  if (Shape == Shape::Straight) return 10420;
8692  else if (Shape == Shape::InnerLeft) return 10422;
8693  else if (Shape == Shape::InnerRight) return 10424;
8694  else if (Shape == Shape::OuterLeft) return 10426;
8695  else return 10428;
8696  else if (Facing == eBlockFace::BLOCK_FACE_XM)
8697  if (Half == Half::Top)
8698  if (Shape == Shape::Straight) return 10430;
8699  else if (Shape == Shape::InnerLeft) return 10432;
8700  else if (Shape == Shape::InnerRight) return 10434;
8701  else if (Shape == Shape::OuterLeft) return 10436;
8702  else return 10438;
8703  else
8704  if (Shape == Shape::Straight) return 10440;
8705  else if (Shape == Shape::InnerLeft) return 10442;
8706  else if (Shape == Shape::InnerRight) return 10444;
8707  else if (Shape == Shape::OuterLeft) return 10446;
8708  else return 10448;
8709  else
8710  if (Half == Half::Top)
8711  if (Shape == Shape::Straight) return 10450;
8712  else if (Shape == Shape::InnerLeft) return 10452;
8713  else if (Shape == Shape::InnerRight) return 10454;
8714  else if (Shape == Shape::OuterLeft) return 10456;
8715  else return 10458;
8716  else
8717  if (Shape == Shape::Straight) return 10460;
8718  else if (Shape == Shape::InnerLeft) return 10462;
8719  else if (Shape == Shape::InnerRight) return 10464;
8720  else if (Shape == Shape::OuterLeft) return 10466;
8721  else return 10468;
8722  }
8725  enum Half Half(BlockState Block);
8726  enum Shape Shape(BlockState Block);
8727  }
8728  namespace GraniteWall
8729  {
8730  enum class East
8731  {
8732  None,
8733  Low,
8734  Tall
8735  };
8736  enum class North
8737  {
8738  None,
8739  Low,
8740  Tall
8741  };
8742  enum class South
8743  {
8744  None,
8745  Low,
8746  Tall
8747  };
8748  enum class West
8749  {
8750  None,
8751  Low,
8752  Tall
8753  };
8754  constexpr BlockState GraniteWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
8755  {
8756  if (East == East::None)
8757  if (North == North::None)
8758  if (South == South::None)
8759  if (Up)
8760  if (West == West::None) return 12166;
8761  else if (West == West::Low) return 12167;
8762  else return 12168;
8763  else
8764  if (West == West::None) return 12172;
8765  else if (West == West::Low) return 12173;
8766  else return 12174;
8767  else if (South == South::Low)
8768  if (Up)
8769  if (West == West::None) return 12178;
8770  else if (West == West::Low) return 12179;
8771  else return 12180;
8772  else
8773  if (West == West::None) return 12184;
8774  else if (West == West::Low) return 12185;
8775  else return 12186;
8776  else
8777  if (Up)
8778  if (West == West::None) return 12190;
8779  else if (West == West::Low) return 12191;
8780  else return 12192;
8781  else
8782  if (West == West::None) return 12196;
8783  else if (West == West::Low) return 12197;
8784  else return 12198;
8785  else if (North == North::Low)
8786  if (South == South::None)
8787  if (Up)
8788  if (West == West::None) return 12202;
8789  else if (West == West::Low) return 12203;
8790  else return 12204;
8791  else
8792  if (West == West::None) return 12208;
8793  else if (West == West::Low) return 12209;
8794  else return 12210;
8795  else if (South == South::Low)
8796  if (Up)
8797  if (West == West::None) return 12214;
8798  else if (West == West::Low) return 12215;
8799  else return 12216;
8800  else
8801  if (West == West::None) return 12220;
8802  else if (West == West::Low) return 12221;
8803  else return 12222;
8804  else
8805  if (Up)
8806  if (West == West::None) return 12226;
8807  else if (West == West::Low) return 12227;
8808  else return 12228;
8809  else
8810  if (West == West::None) return 12232;
8811  else if (West == West::Low) return 12233;
8812  else return 12234;
8813  else
8814  if (South == South::None)
8815  if (Up)
8816  if (West == West::None) return 12238;
8817  else if (West == West::Low) return 12239;
8818  else return 12240;
8819  else
8820  if (West == West::None) return 12244;
8821  else if (West == West::Low) return 12245;
8822  else return 12246;
8823  else if (South == South::Low)
8824  if (Up)
8825  if (West == West::None) return 12250;
8826  else if (West == West::Low) return 12251;
8827  else return 12252;
8828  else
8829  if (West == West::None) return 12256;
8830  else if (West == West::Low) return 12257;
8831  else return 12258;
8832  else
8833  if (Up)
8834  if (West == West::None) return 12262;
8835  else if (West == West::Low) return 12263;
8836  else return 12264;
8837  else
8838  if (West == West::None) return 12268;
8839  else if (West == West::Low) return 12269;
8840  else return 12270;
8841  else if (East == East::Low)
8842  if (North == North::None)
8843  if (South == South::None)
8844  if (Up)
8845  if (West == West::None) return 12274;
8846  else if (West == West::Low) return 12275;
8847  else return 12276;
8848  else
8849  if (West == West::None) return 12280;
8850  else if (West == West::Low) return 12281;
8851  else return 12282;
8852  else if (South == South::Low)
8853  if (Up)
8854  if (West == West::None) return 12286;
8855  else if (West == West::Low) return 12287;
8856  else return 12288;
8857  else
8858  if (West == West::None) return 12292;
8859  else if (West == West::Low) return 12293;
8860  else return 12294;
8861  else
8862  if (Up)
8863  if (West == West::None) return 12298;
8864  else if (West == West::Low) return 12299;
8865  else return 12300;
8866  else
8867  if (West == West::None) return 12304;
8868  else if (West == West::Low) return 12305;
8869  else return 12306;
8870  else if (North == North::Low)
8871  if (South == South::None)
8872  if (Up)
8873  if (West == West::None) return 12310;
8874  else if (West == West::Low) return 12311;
8875  else return 12312;
8876  else
8877  if (West == West::None) return 12316;
8878  else if (West == West::Low) return 12317;
8879  else return 12318;
8880  else if (South == South::Low)
8881  if (Up)
8882  if (West == West::None) return 12322;
8883  else if (West == West::Low) return 12323;
8884  else return 12324;
8885  else
8886  if (West == West::None) return 12328;
8887  else if (West == West::Low) return 12329;
8888  else return 12330;
8889  else
8890  if (Up)
8891  if (West == West::None) return 12334;
8892  else if (West == West::Low) return 12335;
8893  else return 12336;
8894  else
8895  if (West == West::None) return 12340;
8896  else if (West == West::Low) return 12341;
8897  else return 12342;
8898  else
8899  if (South == South::None)
8900  if (Up)
8901  if (West == West::None) return 12346;
8902  else if (West == West::Low) return 12347;
8903  else return 12348;
8904  else
8905  if (West == West::None) return 12352;
8906  else if (West == West::Low) return 12353;
8907  else return 12354;
8908  else if (South == South::Low)
8909  if (Up)
8910  if (West == West::None) return 12358;
8911  else if (West == West::Low) return 12359;
8912  else return 12360;
8913  else
8914  if (West == West::None) return 12364;
8915  else if (West == West::Low) return 12365;
8916  else return 12366;
8917  else
8918  if (Up)
8919  if (West == West::None) return 12370;
8920  else if (West == West::Low) return 12371;
8921  else return 12372;
8922  else
8923  if (West == West::None) return 12376;
8924  else if (West == West::Low) return 12377;
8925  else return 12378;
8926  else
8927  if (North == North::None)
8928  if (South == South::None)
8929  if (Up)
8930  if (West == West::None) return 12382;
8931  else if (West == West::Low) return 12383;
8932  else return 12384;
8933  else
8934  if (West == West::None) return 12388;
8935  else if (West == West::Low) return 12389;
8936  else return 12390;
8937  else if (South == South::Low)
8938  if (Up)
8939  if (West == West::None) return 12394;
8940  else if (West == West::Low) return 12395;
8941  else return 12396;
8942  else
8943  if (West == West::None) return 12400;
8944  else if (West == West::Low) return 12401;
8945  else return 12402;
8946  else
8947  if (Up)
8948  if (West == West::None) return 12406;
8949  else if (West == West::Low) return 12407;
8950  else return 12408;
8951  else
8952  if (West == West::None) return 12412;
8953  else if (West == West::Low) return 12413;
8954  else return 12414;
8955  else if (North == North::Low)
8956  if (South == South::None)
8957  if (Up)
8958  if (West == West::None) return 12418;
8959  else if (West == West::Low) return 12419;
8960  else return 12420;
8961  else
8962  if (West == West::None) return 12424;
8963  else if (West == West::Low) return 12425;
8964  else return 12426;
8965  else if (South == South::Low)
8966  if (Up)
8967  if (West == West::None) return 12430;
8968  else if (West == West::Low) return 12431;
8969  else return 12432;
8970  else
8971  if (West == West::None) return 12436;
8972  else if (West == West::Low) return 12437;
8973  else return 12438;
8974  else
8975  if (Up)
8976  if (West == West::None) return 12442;
8977  else if (West == West::Low) return 12443;
8978  else return 12444;
8979  else
8980  if (West == West::None) return 12448;
8981  else if (West == West::Low) return 12449;
8982  else return 12450;
8983  else
8984  if (South == South::None)
8985  if (Up)
8986  if (West == West::None) return 12454;
8987  else if (West == West::Low) return 12455;
8988  else return 12456;
8989  else
8990  if (West == West::None) return 12460;
8991  else if (West == West::Low) return 12461;
8992  else return 12462;
8993  else if (South == South::Low)
8994  if (Up)
8995  if (West == West::None) return 12466;
8996  else if (West == West::Low) return 12467;
8997  else return 12468;
8998  else
8999  if (West == West::None) return 12472;
9000  else if (West == West::Low) return 12473;
9001  else return 12474;
9002  else
9003  if (Up)
9004  if (West == West::None) return 12478;
9005  else if (West == West::Low) return 12479;
9006  else return 12480;
9007  else
9008  if (West == West::None) return 12484;
9009  else if (West == West::Low) return 12485;
9010  else return 12486;
9011  }
9013  enum East East(BlockState Block);
9014  enum North North(BlockState Block);
9015  enum South South(BlockState Block);
9016  bool Up(BlockState Block);
9017  enum West West(BlockState Block);
9018  }
9019  namespace Grass
9020  {
9021  constexpr BlockState Grass()
9022  {
9023  return 1342;
9024  }
9025  }
9026  namespace GrassBlock
9027  {
9028  constexpr BlockState GrassBlock(const bool Snowy)
9029  {
9030  if (Snowy) return 8;
9031  else return 9;
9032  }
9034  bool Snowy(BlockState Block);
9035  }
9036  namespace GrassPath
9037  {
9038  constexpr BlockState GrassPath()
9039  {
9040  return 9223;
9041  }
9042  }
9043  namespace Gravel
9044  {
9045  constexpr BlockState Gravel()
9046  {
9047  return 68;
9048  }
9049  }
9050  namespace GrayBanner
9051  {
9052  constexpr BlockState GrayBanner(const unsigned char Rotation)
9053  {
9054  if (Rotation == 0) return 8009;
9055  else if (Rotation == 1) return 8010;
9056  else if (Rotation == 2) return 8011;
9057  else if (Rotation == 3) return 8012;
9058  else if (Rotation == 4) return 8013;
9059  else if (Rotation == 5) return 8014;
9060  else if (Rotation == 6) return 8015;
9061  else if (Rotation == 7) return 8016;
9062  else if (Rotation == 8) return 8017;
9063  else if (Rotation == 9) return 8018;
9064  else if (Rotation == 10) return 8019;
9065  else if (Rotation == 11) return 8020;
9066  else if (Rotation == 12) return 8021;
9067  else if (Rotation == 13) return 8022;
9068  else if (Rotation == 14) return 8023;
9069  else return 8024;
9070  }
9072  unsigned char Rotation(BlockState Block);
9073  }
9074  namespace GrayBed
9075  {
9076  enum class Part
9077  {
9078  Head,
9079  Foot
9080  };
9081  constexpr BlockState GrayBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
9082  {
9084  if (Occupied)
9085  if (Part == Part::Head) return 1161;
9086  else return 1162;
9087  else
9088  if (Part == Part::Head) return 1163;
9089  else return 1164;
9090  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
9091  if (Occupied)
9092  if (Part == Part::Head) return 1165;
9093  else return 1166;
9094  else
9095  if (Part == Part::Head) return 1167;
9096  else return 1168;
9097  else if (Facing == eBlockFace::BLOCK_FACE_XM)
9098  if (Occupied)
9099  if (Part == Part::Head) return 1169;
9100  else return 1170;
9101  else
9102  if (Part == Part::Head) return 1171;
9103  else return 1172;
9104  else
9105  if (Occupied)
9106  if (Part == Part::Head) return 1173;
9107  else return 1174;
9108  else
9109  if (Part == Part::Head) return 1175;
9110  else return 1176;
9111  }
9112  BlockState GrayBed();
9114  bool Occupied(BlockState Block);
9115  enum Part Part(BlockState Block);
9116  }
9117  namespace GrayCarpet
9118  {
9120  {
9121  return 7873;
9122  }
9123  }
9124  namespace GrayConcrete
9125  {
9127  {
9128  return 9445;
9129  }
9130  }
9131  namespace GrayConcretePowder
9132  {
9134  {
9135  return 9461;
9136  }
9137  }
9138  namespace GrayGlazedTerracotta
9139  {
9141  {
9142  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9402;
9143  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9403;
9144  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9404;
9145  else return 9405;
9146  }
9149  }
9150  namespace GrayShulkerBox
9151  {
9153  {
9154  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9320;
9155  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9321;
9156  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9322;
9157  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9323;
9158  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9324;
9159  else return 9325;
9160  }
9163  }
9164  namespace GrayStainedGlass
9165  {
9167  {
9168  return 4102;
9169  }
9170  }
9171  namespace GrayStainedGlassPane
9172  {
9173  constexpr BlockState GrayStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
9174  {
9175  if (East)
9176  if (North)
9177  if (South)
9178  if (West) return 7089;
9179  else return 7090;
9180  else
9181  if (West) return 7093;
9182  else return 7094;
9183  else
9184  if (South)
9185  if (West) return 7097;
9186  else return 7098;
9187  else
9188  if (West) return 7101;
9189  else return 7102;
9190  else
9191  if (North)
9192  if (South)
9193  if (West) return 7105;
9194  else return 7106;
9195  else
9196  if (West) return 7109;
9197  else return 7110;
9198  else
9199  if (South)
9200  if (West) return 7113;
9201  else return 7114;
9202  else
9203  if (West) return 7117;
9204  else return 7118;
9205  }
9207  bool East(BlockState Block);
9208  bool North(BlockState Block);
9209  bool South(BlockState Block);
9210  bool West(BlockState Block);
9211  }
9212  namespace GrayTerracotta
9213  {
9215  {
9216  return 6854;
9217  }
9218  }
9219  namespace GrayWallBanner
9220  {
9222  {
9223  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8181;
9224  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8182;
9225  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8183;
9226  else return 8184;
9227  }
9230  }
9231  namespace GrayWool
9232  {
9233  constexpr BlockState GrayWool()
9234  {
9235  return 1391;
9236  }
9237  }
9238  namespace GreenBanner
9239  {
9240  constexpr BlockState GreenBanner(const unsigned char Rotation)
9241  {
9242  if (Rotation == 0) return 8105;
9243  else if (Rotation == 1) return 8106;
9244  else if (Rotation == 2) return 8107;
9245  else if (Rotation == 3) return 8108;
9246  else if (Rotation == 4) return 8109;
9247  else if (Rotation == 5) return 8110;
9248  else if (Rotation == 6) return 8111;
9249  else if (Rotation == 7) return 8112;
9250  else if (Rotation == 8) return 8113;
9251  else if (Rotation == 9) return 8114;
9252  else if (Rotation == 10) return 8115;
9253  else if (Rotation == 11) return 8116;
9254  else if (Rotation == 12) return 8117;
9255  else if (Rotation == 13) return 8118;
9256  else if (Rotation == 14) return 8119;
9257  else return 8120;
9258  }
9260  unsigned char Rotation(BlockState Block);
9261  }
9262  namespace GreenBed
9263  {
9264  enum class Part
9265  {
9266  Head,
9267  Foot
9268  };
9269  constexpr BlockState GreenBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
9270  {
9272  if (Occupied)
9273  if (Part == Part::Head) return 1257;
9274  else return 1258;
9275  else
9276  if (Part == Part::Head) return 1259;
9277  else return 1260;
9278  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
9279  if (Occupied)
9280  if (Part == Part::Head) return 1261;
9281  else return 1262;
9282  else
9283  if (Part == Part::Head) return 1263;
9284  else return 1264;
9285  else if (Facing == eBlockFace::BLOCK_FACE_XM)
9286  if (Occupied)
9287  if (Part == Part::Head) return 1265;
9288  else return 1266;
9289  else
9290  if (Part == Part::Head) return 1267;
9291  else return 1268;
9292  else
9293  if (Occupied)
9294  if (Part == Part::Head) return 1269;
9295  else return 1270;
9296  else
9297  if (Part == Part::Head) return 1271;
9298  else return 1272;
9299  }
9300  BlockState GreenBed();
9302  bool Occupied(BlockState Block);
9303  enum Part Part(BlockState Block);
9304  }
9305  namespace GreenCarpet
9306  {
9308  {
9309  return 7879;
9310  }
9311  }
9312  namespace GreenConcrete
9313  {
9315  {
9316  return 9451;
9317  }
9318  }
9319  namespace GreenConcretePowder
9320  {
9322  {
9323  return 9467;
9324  }
9325  }
9326  namespace GreenGlazedTerracotta
9327  {
9329  {
9330  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9426;
9331  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9427;
9332  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9428;
9333  else return 9429;
9334  }
9337  }
9338  namespace GreenShulkerBox
9339  {
9341  {
9342  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9356;
9343  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9357;
9344  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9358;
9345  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9359;
9346  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9360;
9347  else return 9361;
9348  }
9351  }
9352  namespace GreenStainedGlass
9353  {
9355  {
9356  return 4108;
9357  }
9358  }
9359  namespace GreenStainedGlassPane
9360  {
9361  constexpr BlockState GreenStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
9362  {
9363  if (East)
9364  if (North)
9365  if (South)
9366  if (West) return 7281;
9367  else return 7282;
9368  else
9369  if (West) return 7285;
9370  else return 7286;
9371  else
9372  if (South)
9373  if (West) return 7289;
9374  else return 7290;
9375  else
9376  if (West) return 7293;
9377  else return 7294;
9378  else
9379  if (North)
9380  if (South)
9381  if (West) return 7297;
9382  else return 7298;
9383  else
9384  if (West) return 7301;
9385  else return 7302;
9386  else
9387  if (South)
9388  if (West) return 7305;
9389  else return 7306;
9390  else
9391  if (West) return 7309;
9392  else return 7310;
9393  }
9395  bool East(BlockState Block);
9396  bool North(BlockState Block);
9397  bool South(BlockState Block);
9398  bool West(BlockState Block);
9399  }
9400  namespace GreenTerracotta
9401  {
9403  {
9404  return 6860;
9405  }
9406  }
9407  namespace GreenWallBanner
9408  {
9410  {
9411  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8205;
9412  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8206;
9413  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8207;
9414  else return 8208;
9415  }
9418  }
9419  namespace GreenWool
9420  {
9421  constexpr BlockState GreenWool()
9422  {
9423  return 1397;
9424  }
9425  }
9426  namespace Grindstone
9427  {
9428  enum class Face
9429  {
9430  Floor,
9431  Wall,
9432  Ceiling
9433  };
9434  constexpr BlockState Grindstone(const enum Face Face, const eBlockFace Facing)
9435  {
9436  if (Face == Face::Floor)
9437  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14821;
9438  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14822;
9439  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14823;
9440  else return 14824;
9441  else if (Face == Face::Wall)
9442  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14825;
9443  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14826;
9444  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14827;
9445  else return 14828;
9446  else
9447  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14829;
9448  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14830;
9449  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14831;
9450  else return 14832;
9451  }
9453  enum Face Face(BlockState Block);
9455  }
9456  namespace HayBale
9457  {
9458  enum class Axis
9459  {
9460  X,
9461  Y,
9462  Z
9463  };
9464  constexpr BlockState HayBale(const enum Axis Axis)
9465  {
9466  if (Axis == Axis::X) return 7863;
9467  else if (Axis == Axis::Y) return 7864;
9468  else return 7865;
9469  }
9470  BlockState HayBale();
9471  enum Axis Axis(BlockState Block);
9472  }
9473  namespace HeavyWeightedPressurePlate
9474  {
9475  constexpr BlockState HeavyWeightedPressurePlate(const unsigned char Power)
9476  {
9477  if (Power == 0) return 6662;
9478  else if (Power == 1) return 6663;
9479  else if (Power == 2) return 6664;
9480  else if (Power == 3) return 6665;
9481  else if (Power == 4) return 6666;
9482  else if (Power == 5) return 6667;
9483  else if (Power == 6) return 6668;
9484  else if (Power == 7) return 6669;
9485  else if (Power == 8) return 6670;
9486  else if (Power == 9) return 6671;
9487  else if (Power == 10) return 6672;
9488  else if (Power == 11) return 6673;
9489  else if (Power == 12) return 6674;
9490  else if (Power == 13) return 6675;
9491  else if (Power == 14) return 6676;
9492  else return 6677;
9493  }
9495  unsigned char Power(BlockState Block);
9496  }
9497  namespace HoneyBlock
9498  {
9500  {
9501  return 15824;
9502  }
9503  }
9504  namespace HoneycombBlock
9505  {
9507  {
9508  return 15825;
9509  }
9510  }
9511  namespace Hopper
9512  {
9513  constexpr BlockState Hopper(const bool Enabled, const eBlockFace Facing)
9514  {
9515  if (Enabled)
9516  if (Facing == eBlockFace::BLOCK_FACE_YM) return 6728;
9517  else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6729;
9518  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6730;
9519  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6731;
9520  else return 6732;
9521  else
9522  if (Facing == eBlockFace::BLOCK_FACE_YM) return 6733;
9523  else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6734;
9524  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6735;
9525  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6736;
9526  else return 6737;
9527  }
9528  BlockState Hopper();
9529  bool Enabled(BlockState Block);
9531  }
9532  namespace HornCoral
9533  {
9534  constexpr BlockState HornCoral()
9535  {
9536  return 9539;
9537  }
9538  }
9539  namespace HornCoralBlock
9540  {
9542  {
9543  return 9519;
9544  }
9545  }
9546  namespace HornCoralFan
9547  {
9549  {
9550  return 9559;
9551  }
9552  }
9553  namespace HornCoralWallFan
9554  {
9556  {
9557  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9633;
9558  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9635;
9559  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9637;
9560  else return 9639;
9561  }
9564  }
9565  namespace Ice
9566  {
9567  constexpr BlockState Ice()
9568  {
9569  return 3929;
9570  }
9571  }
9572  namespace InfestedChiseledStoneBricks
9573  {
9575  {
9576  return 4504;
9577  }
9578  }
9579  namespace InfestedCobblestone
9580  {
9582  {
9583  return 4500;
9584  }
9585  }
9586  namespace InfestedCrackedStoneBricks
9587  {
9589  {
9590  return 4503;
9591  }
9592  }
9593  namespace InfestedMossyStoneBricks
9594  {
9596  {
9597  return 4502;
9598  }
9599  }
9600  namespace InfestedStone
9601  {
9603  {
9604  return 4499;
9605  }
9606  }
9607  namespace InfestedStoneBricks
9608  {
9610  {
9611  return 4501;
9612  }
9613  }
9614  namespace IronBars
9615  {
9616  constexpr BlockState IronBars(const bool East, const bool North, const bool South, const bool West)
9617  {
9618  if (East)
9619  if (North)
9620  if (South)
9621  if (West) return 4699;
9622  else return 4700;
9623  else
9624  if (West) return 4703;
9625  else return 4704;
9626  else
9627  if (South)
9628  if (West) return 4707;
9629  else return 4708;
9630  else
9631  if (West) return 4711;
9632  else return 4712;
9633  else
9634  if (North)
9635  if (South)
9636  if (West) return 4715;
9637  else return 4716;
9638  else
9639  if (West) return 4719;
9640  else return 4720;
9641  else
9642  if (South)
9643  if (West) return 4723;
9644  else return 4724;
9645  else
9646  if (West) return 4727;
9647  else return 4728;
9648  }
9649  BlockState IronBars();
9650  bool East(BlockState Block);
9651  bool North(BlockState Block);
9652  bool South(BlockState Block);
9653  bool West(BlockState Block);
9654  }
9655  namespace IronBlock
9656  {
9657  constexpr BlockState IronBlock()
9658  {
9659  return 1428;
9660  }
9661  }
9662  namespace IronDoor
9663  {
9664  enum class Half
9665  {
9666  Upper,
9667  Lower
9668  };
9669  enum class Hinge
9670  {
9671  Left,
9672  Right
9673  };
9674  constexpr BlockState IronDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
9675  {
9677  if (Half == Half::Upper)
9678  if (Hinge == Hinge::Left)
9679  if (Open)
9680  if (Powered) return 3809;
9681  else return 3810;
9682  else
9683  if (Powered) return 3811;
9684  else return 3812;
9685  else
9686  if (Open)
9687  if (Powered) return 3813;
9688  else return 3814;
9689  else
9690  if (Powered) return 3815;
9691  else return 3816;
9692  else
9693  if (Hinge == Hinge::Left)
9694  if (Open)
9695  if (Powered) return 3817;
9696  else return 3818;
9697  else
9698  if (Powered) return 3819;
9699  else return 3820;
9700  else
9701  if (Open)
9702  if (Powered) return 3821;
9703  else return 3822;
9704  else
9705  if (Powered) return 3823;
9706  else return 3824;
9707  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
9708  if (Half == Half::Upper)
9709  if (Hinge == Hinge::Left)
9710  if (Open)
9711  if (Powered) return 3825;
9712  else return 3826;
9713  else
9714  if (Powered) return 3827;
9715  else return 3828;
9716  else
9717  if (Open)
9718  if (Powered) return 3829;
9719  else return 3830;
9720  else
9721  if (Powered) return 3831;
9722  else return 3832;
9723  else
9724  if (Hinge == Hinge::Left)
9725  if (Open)
9726  if (Powered) return 3833;
9727  else return 3834;
9728  else
9729  if (Powered) return 3835;
9730  else return 3836;
9731  else
9732  if (Open)
9733  if (Powered) return 3837;
9734  else return 3838;
9735  else
9736  if (Powered) return 3839;
9737  else return 3840;
9738  else if (Facing == eBlockFace::BLOCK_FACE_XM)
9739  if (Half == Half::Upper)
9740  if (Hinge == Hinge::Left)
9741  if (Open)
9742  if (Powered) return 3841;
9743  else return 3842;
9744  else
9745  if (Powered) return 3843;
9746  else return 3844;
9747  else
9748  if (Open)
9749  if (Powered) return 3845;
9750  else return 3846;
9751  else
9752  if (Powered) return 3847;
9753  else return 3848;
9754  else
9755  if (Hinge == Hinge::Left)
9756  if (Open)
9757  if (Powered) return 3849;
9758  else return 3850;
9759  else
9760  if (Powered) return 3851;
9761  else return 3852;
9762  else
9763  if (Open)
9764  if (Powered) return 3853;
9765  else return 3854;
9766  else
9767  if (Powered) return 3855;
9768  else return 3856;
9769  else
9770  if (Half == Half::Upper)
9771  if (Hinge == Hinge::Left)
9772  if (Open)
9773  if (Powered) return 3857;
9774  else return 3858;
9775  else
9776  if (Powered) return 3859;
9777  else return 3860;
9778  else
9779  if (Open)
9780  if (Powered) return 3861;
9781  else return 3862;
9782  else
9783  if (Powered) return 3863;
9784  else return 3864;
9785  else
9786  if (Hinge == Hinge::Left)
9787  if (Open)
9788  if (Powered) return 3865;
9789  else return 3866;
9790  else
9791  if (Powered) return 3867;
9792  else return 3868;
9793  else
9794  if (Open)
9795  if (Powered) return 3869;
9796  else return 3870;
9797  else
9798  if (Powered) return 3871;
9799  else return 3872;
9800  }
9801  BlockState IronDoor();
9803  enum Half Half(BlockState Block);
9804  enum Hinge Hinge(BlockState Block);
9805  bool Open(BlockState Block);
9806  bool Powered(BlockState Block);
9807  }
9808  namespace IronOre
9809  {
9810  constexpr BlockState IronOre()
9811  {
9812  return 70;
9813  }
9814  }
9815  namespace IronTrapdoor
9816  {
9817  enum class Half
9818  {
9819  Top,
9820  Bottom
9821  };
9822  constexpr BlockState IronTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
9823  {
9825  if (Half == Half::Top)
9826  if (Open)
9827  if (Powered) return 7538;
9828  else return 7540;
9829  else
9830  if (Powered) return 7542;
9831  else return 7544;
9832  else
9833  if (Open)
9834  if (Powered) return 7546;
9835  else return 7548;
9836  else
9837  if (Powered) return 7550;
9838  else return 7552;
9839  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
9840  if (Half == Half::Top)
9841  if (Open)
9842  if (Powered) return 7554;
9843  else return 7556;
9844  else
9845  if (Powered) return 7558;
9846  else return 7560;
9847  else
9848  if (Open)
9849  if (Powered) return 7562;
9850  else return 7564;
9851  else
9852  if (Powered) return 7566;
9853  else return 7568;
9854  else if (Facing == eBlockFace::BLOCK_FACE_XM)
9855  if (Half == Half::Top)
9856  if (Open)
9857  if (Powered) return 7570;
9858  else return 7572;
9859  else
9860  if (Powered) return 7574;
9861  else return 7576;
9862  else
9863  if (Open)
9864  if (Powered) return 7578;
9865  else return 7580;
9866  else
9867  if (Powered) return 7582;
9868  else return 7584;
9869  else
9870  if (Half == Half::Top)
9871  if (Open)
9872  if (Powered) return 7586;
9873  else return 7588;
9874  else
9875  if (Powered) return 7590;
9876  else return 7592;
9877  else
9878  if (Open)
9879  if (Powered) return 7594;
9880  else return 7596;
9881  else
9882  if (Powered) return 7598;
9883  else return 7600;
9884  }
9887  enum Half Half(BlockState Block);
9888  bool Open(BlockState Block);
9889  bool Powered(BlockState Block);
9890  }
9891  namespace JackOLantern
9892  {
9894  {
9895  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4020;
9896  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4021;
9897  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4022;
9898  else return 4023;
9899  }
9902  }
9903  namespace Jigsaw
9904  {
9905  enum class Orientation
9906  {
9907  DownEast,
9908  DownNorth,
9909  DownSouth,
9910  DownWest,
9911  UpEast,
9912  UpNorth,
9913  UpSouth,
9914  UpWest,
9915  WestUp,
9916  EastUp,
9917  NorthUp,
9918  SouthUp
9919  };
9921  {
9922  if (Orientation == Orientation::DownEast) return 15739;
9923  else if (Orientation == Orientation::DownNorth) return 15740;
9924  else if (Orientation == Orientation::DownSouth) return 15741;
9925  else if (Orientation == Orientation::DownWest) return 15742;
9926  else if (Orientation == Orientation::UpEast) return 15743;
9927  else if (Orientation == Orientation::UpNorth) return 15744;
9928  else if (Orientation == Orientation::UpSouth) return 15745;
9929  else if (Orientation == Orientation::UpWest) return 15746;
9930  else if (Orientation == Orientation::WestUp) return 15747;
9931  else if (Orientation == Orientation::EastUp) return 15748;
9932  else if (Orientation == Orientation::NorthUp) return 15749;
9933  else return 15750;
9934  }
9935  BlockState Jigsaw();
9937  }
9938  namespace Jukebox
9939  {
9940  constexpr BlockState Jukebox(const bool HasRecord)
9941  {
9942  if (HasRecord) return 3964;
9943  else return 3965;
9944  }
9945  BlockState Jukebox();
9946  bool HasRecord(BlockState Block);
9947  }
9948  namespace JungleButton
9949  {
9950  enum class Face
9951  {
9952  Floor,
9953  Wall,
9954  Ceiling
9955  };
9956  constexpr BlockState JungleButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
9957  {
9958  if (Face == Face::Floor)
9960  if (Powered) return 6418;
9961  else return 6419;
9962  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
9963  if (Powered) return 6420;
9964  else return 6421;
9965  else if (Facing == eBlockFace::BLOCK_FACE_XM)
9966  if (Powered) return 6422;
9967  else return 6423;
9968  else
9969  if (Powered) return 6424;
9970  else return 6425;
9971  else if (Face == Face::Wall)
9973  if (Powered) return 6426;
9974  else return 6427;
9975  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
9976  if (Powered) return 6428;
9977  else return 6429;
9978  else if (Facing == eBlockFace::BLOCK_FACE_XM)
9979  if (Powered) return 6430;
9980  else return 6431;
9981  else
9982  if (Powered) return 6432;
9983  else return 6433;
9984  else
9986  if (Powered) return 6434;
9987  else return 6435;
9988  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
9989  if (Powered) return 6436;
9990  else return 6437;
9991  else if (Facing == eBlockFace::BLOCK_FACE_XM)
9992  if (Powered) return 6438;
9993  else return 6439;
9994  else
9995  if (Powered) return 6440;
9996  else return 6441;
9997  }
9999  enum Face Face(BlockState Block);
10001  bool Powered(BlockState Block);
10002  }
10003  namespace JungleDoor
10004  {
10005  enum class Half
10006  {
10007  Upper,
10008  Lower
10009  };
10010  enum class Hinge
10011  {
10012  Left,
10013  Right
10014  };
10015  constexpr BlockState JungleDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
10016  {
10018  if (Half == Half::Upper)
10019  if (Hinge == Hinge::Left)
10020  if (Open)
10021  if (Powered) return 8866;
10022  else return 8867;
10023  else
10024  if (Powered) return 8868;
10025  else return 8869;
10026  else
10027  if (Open)
10028  if (Powered) return 8870;
10029  else return 8871;
10030  else
10031  if (Powered) return 8872;
10032  else return 8873;
10033  else
10034  if (Hinge == Hinge::Left)
10035  if (Open)
10036  if (Powered) return 8874;
10037  else return 8875;
10038  else
10039  if (Powered) return 8876;
10040  else return 8877;
10041  else
10042  if (Open)
10043  if (Powered) return 8878;
10044  else return 8879;
10045  else
10046  if (Powered) return 8880;
10047  else return 8881;
10048  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10049  if (Half == Half::Upper)
10050  if (Hinge == Hinge::Left)
10051  if (Open)
10052  if (Powered) return 8882;
10053  else return 8883;
10054  else
10055  if (Powered) return 8884;
10056  else return 8885;
10057  else
10058  if (Open)
10059  if (Powered) return 8886;
10060  else return 8887;
10061  else
10062  if (Powered) return 8888;
10063  else return 8889;
10064  else
10065  if (Hinge == Hinge::Left)
10066  if (Open)
10067  if (Powered) return 8890;
10068  else return 8891;
10069  else
10070  if (Powered) return 8892;
10071  else return 8893;
10072  else
10073  if (Open)
10074  if (Powered) return 8894;
10075  else return 8895;
10076  else
10077  if (Powered) return 8896;
10078  else return 8897;
10079  else if (Facing == eBlockFace::BLOCK_FACE_XM)
10080  if (Half == Half::Upper)
10081  if (Hinge == Hinge::Left)
10082  if (Open)
10083  if (Powered) return 8898;
10084  else return 8899;
10085  else
10086  if (Powered) return 8900;
10087  else return 8901;
10088  else
10089  if (Open)
10090  if (Powered) return 8902;
10091  else return 8903;
10092  else
10093  if (Powered) return 8904;
10094  else return 8905;
10095  else
10096  if (Hinge == Hinge::Left)
10097  if (Open)
10098  if (Powered) return 8906;
10099  else return 8907;
10100  else
10101  if (Powered) return 8908;
10102  else return 8909;
10103  else
10104  if (Open)
10105  if (Powered) return 8910;
10106  else return 8911;
10107  else
10108  if (Powered) return 8912;
10109  else return 8913;
10110  else
10111  if (Half == Half::Upper)
10112  if (Hinge == Hinge::Left)
10113  if (Open)
10114  if (Powered) return 8914;
10115  else return 8915;
10116  else
10117  if (Powered) return 8916;
10118  else return 8917;
10119  else
10120  if (Open)
10121  if (Powered) return 8918;
10122  else return 8919;
10123  else
10124  if (Powered) return 8920;
10125  else return 8921;
10126  else
10127  if (Hinge == Hinge::Left)
10128  if (Open)
10129  if (Powered) return 8922;
10130  else return 8923;
10131  else
10132  if (Powered) return 8924;
10133  else return 8925;
10134  else
10135  if (Open)
10136  if (Powered) return 8926;
10137  else return 8927;
10138  else
10139  if (Powered) return 8928;
10140  else return 8929;
10141  }
10144  enum Half Half(BlockState Block);
10145  enum Hinge Hinge(BlockState Block);
10146  bool Open(BlockState Block);
10147  bool Powered(BlockState Block);
10148  }
10149  namespace JungleFence
10150  {
10151  constexpr BlockState JungleFence(const bool East, const bool North, const bool South, const bool West)
10152  {
10153  if (East)
10154  if (North)
10155  if (South)
10156  if (West) return 8644;
10157  else return 8645;
10158  else
10159  if (West) return 8648;
10160  else return 8649;
10161  else
10162  if (South)
10163  if (West) return 8652;
10164  else return 8653;
10165  else
10166  if (West) return 8656;
10167  else return 8657;
10168  else
10169  if (North)
10170  if (South)
10171  if (West) return 8660;
10172  else return 8661;
10173  else
10174  if (West) return 8664;
10175  else return 8665;
10176  else
10177  if (South)
10178  if (West) return 8668;
10179  else return 8669;
10180  else
10181  if (West) return 8672;
10182  else return 8673;
10183  }
10185  bool East(BlockState Block);
10186  bool North(BlockState Block);
10187  bool South(BlockState Block);
10188  bool West(BlockState Block);
10189  }
10190  namespace JungleFenceGate
10191  {
10192  constexpr BlockState JungleFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
10193  {
10195  if (InWall)
10196  if (Open)
10197  if (Powered) return 8482;
10198  else return 8483;
10199  else
10200  if (Powered) return 8484;
10201  else return 8485;
10202  else
10203  if (Open)
10204  if (Powered) return 8486;
10205  else return 8487;
10206  else
10207  if (Powered) return 8488;
10208  else return 8489;
10209  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10210  if (InWall)
10211  if (Open)
10212  if (Powered) return 8490;
10213  else return 8491;
10214  else
10215  if (Powered) return 8492;
10216  else return 8493;
10217  else
10218  if (Open)
10219  if (Powered) return 8494;
10220  else return 8495;
10221  else
10222  if (Powered) return 8496;
10223  else return 8497;
10224  else if (Facing == eBlockFace::BLOCK_FACE_XM)
10225  if (InWall)
10226  if (Open)
10227  if (Powered) return 8498;
10228  else return 8499;
10229  else
10230  if (Powered) return 8500;
10231  else return 8501;
10232  else
10233  if (Open)
10234  if (Powered) return 8502;
10235  else return 8503;
10236  else
10237  if (Powered) return 8504;
10238  else return 8505;
10239  else
10240  if (InWall)
10241  if (Open)
10242  if (Powered) return 8506;
10243  else return 8507;
10244  else
10245  if (Powered) return 8508;
10246  else return 8509;
10247  else
10248  if (Open)
10249  if (Powered) return 8510;
10250  else return 8511;
10251  else
10252  if (Powered) return 8512;
10253  else return 8513;
10254  }
10257  bool InWall(BlockState Block);
10258  bool Open(BlockState Block);
10259  bool Powered(BlockState Block);
10260  }
10261  namespace JungleLeaves
10262  {
10263  constexpr BlockState JungleLeaves(const unsigned char Distance, const bool Persistent)
10264  {
10265  if (Distance == 1)
10266  if (Persistent) return 187;
10267  else return 188;
10268  else if (Distance == 2)
10269  if (Persistent) return 189;
10270  else return 190;
10271  else if (Distance == 3)
10272  if (Persistent) return 191;
10273  else return 192;
10274  else if (Distance == 4)
10275  if (Persistent) return 193;
10276  else return 194;
10277  else if (Distance == 5)
10278  if (Persistent) return 195;
10279  else return 196;
10280  else if (Distance == 6)
10281  if (Persistent) return 197;
10282  else return 198;
10283  else
10284  if (Persistent) return 199;
10285  else return 200;
10286  }
10288  unsigned char Distance(BlockState Block);
10289  bool Persistent(BlockState Block);
10290  }
10291  namespace JungleLog
10292  {
10293  enum class Axis
10294  {
10295  X,
10296  Y,
10297  Z
10298  };
10299  constexpr BlockState JungleLog(const enum Axis Axis)
10300  {
10301  if (Axis == Axis::X) return 82;
10302  else if (Axis == Axis::Y) return 83;
10303  else return 84;
10304  }
10306  enum Axis Axis(BlockState Block);
10307  }
10308  namespace JunglePlanks
10309  {
10311  {
10312  return 18;
10313  }
10314  }
10315  namespace JunglePressurePlate
10316  {
10318  {
10319  if (Powered) return 3879;
10320  else return 3880;
10321  }
10323  bool Powered(BlockState Block);
10324  }
10325  namespace JungleSapling
10326  {
10327  constexpr BlockState JungleSapling(const unsigned char Stage)
10328  {
10329  if (Stage == 0) return 27;
10330  else return 28;
10331  }
10333  unsigned char Stage(BlockState Block);
10334  }
10335  namespace JungleSign
10336  {
10337  constexpr BlockState JungleSign(const unsigned char Rotation)
10338  {
10339  if (Rotation == 0) return 3510;
10340  else if (Rotation == 1) return 3512;
10341  else if (Rotation == 2) return 3514;
10342  else if (Rotation == 3) return 3516;
10343  else if (Rotation == 4) return 3518;
10344  else if (Rotation == 5) return 3520;
10345  else if (Rotation == 6) return 3522;
10346  else if (Rotation == 7) return 3524;
10347  else if (Rotation == 8) return 3526;
10348  else if (Rotation == 9) return 3528;
10349  else if (Rotation == 10) return 3530;
10350  else if (Rotation == 11) return 3532;
10351  else if (Rotation == 12) return 3534;
10352  else if (Rotation == 13) return 3536;
10353  else if (Rotation == 14) return 3538;
10354  else return 3540;
10355  }
10357  unsigned char Rotation(BlockState Block);
10358  }
10359  namespace JungleSlab
10360  {
10361  enum class Type
10362  {
10363  Top,
10364  Bottom,
10365  Double
10366  };
10367  constexpr BlockState JungleSlab(const enum Type Type)
10368  {
10369  if (Type == Type::Top) return 8319;
10370  else if (Type == Type::Bottom) return 8321;
10371  else return 8323;
10372  }
10374  enum Type Type(BlockState Block);
10375  }
10376  namespace JungleStairs
10377  {
10378  enum class Half
10379  {
10380  Top,
10381  Bottom
10382  };
10383  enum class Shape
10384  {
10385  Straight,
10386  InnerLeft,
10387  InnerRight,
10388  OuterLeft,
10389  OuterRight
10390  };
10391  constexpr BlockState JungleStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
10392  {
10394  if (Half == Half::Top)
10395  if (Shape == Shape::Straight) return 5565;
10396  else if (Shape == Shape::InnerLeft) return 5567;
10397  else if (Shape == Shape::InnerRight) return 5569;
10398  else if (Shape == Shape::OuterLeft) return 5571;
10399  else return 5573;
10400  else
10401  if (Shape == Shape::Straight) return 5575;
10402  else if (Shape == Shape::InnerLeft) return 5577;
10403  else if (Shape == Shape::InnerRight) return 5579;
10404  else if (Shape == Shape::OuterLeft) return 5581;
10405  else return 5583;
10406  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10407  if (Half == Half::Top)
10408  if (Shape == Shape::Straight) return 5585;
10409  else if (Shape == Shape::InnerLeft) return 5587;
10410  else if (Shape == Shape::InnerRight) return 5589;
10411  else if (Shape == Shape::OuterLeft) return 5591;
10412  else return 5593;
10413  else
10414  if (Shape == Shape::Straight) return 5595;
10415  else if (Shape == Shape::InnerLeft) return 5597;
10416  else if (Shape == Shape::InnerRight) return 5599;
10417  else if (Shape == Shape::OuterLeft) return 5601;
10418  else return 5603;
10419  else if (Facing == eBlockFace::BLOCK_FACE_XM)
10420  if (Half == Half::Top)
10421  if (Shape == Shape::Straight) return 5605;
10422  else if (Shape == Shape::InnerLeft) return 5607;
10423  else if (Shape == Shape::InnerRight) return 5609;
10424  else if (Shape == Shape::OuterLeft) return 5611;
10425  else return 5613;
10426  else
10427  if (Shape == Shape::Straight) return 5615;
10428  else if (Shape == Shape::InnerLeft) return 5617;
10429  else if (Shape == Shape::InnerRight) return 5619;
10430  else if (Shape == Shape::OuterLeft) return 5621;
10431  else return 5623;
10432  else
10433  if (Half == Half::Top)
10434  if (Shape == Shape::Straight) return 5625;
10435  else if (Shape == Shape::InnerLeft) return 5627;
10436  else if (Shape == Shape::InnerRight) return 5629;
10437  else if (Shape == Shape::OuterLeft) return 5631;
10438  else return 5633;
10439  else
10440  if (Shape == Shape::Straight) return 5635;
10441  else if (Shape == Shape::InnerLeft) return 5637;
10442  else if (Shape == Shape::InnerRight) return 5639;
10443  else if (Shape == Shape::OuterLeft) return 5641;
10444  else return 5643;
10445  }
10448  enum Half Half(BlockState Block);
10449  enum Shape Shape(BlockState Block);
10450  }
10451  namespace JungleTrapdoor
10452  {
10453  enum class Half
10454  {
10455  Top,
10456  Bottom
10457  };
10458  constexpr BlockState JungleTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
10459  {
10461  if (Half == Half::Top)
10462  if (Open)
10463  if (Powered) return 4304;
10464  else return 4306;
10465  else
10466  if (Powered) return 4308;
10467  else return 4310;
10468  else
10469  if (Open)
10470  if (Powered) return 4312;
10471  else return 4314;
10472  else
10473  if (Powered) return 4316;
10474  else return 4318;
10475  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10476  if (Half == Half::Top)
10477  if (Open)
10478  if (Powered) return 4320;
10479  else return 4322;
10480  else
10481  if (Powered) return 4324;
10482  else return 4326;
10483  else
10484  if (Open)
10485  if (Powered) return 4328;
10486  else return 4330;
10487  else
10488  if (Powered) return 4332;
10489  else return 4334;
10490  else if (Facing == eBlockFace::BLOCK_FACE_XM)
10491  if (Half == Half::Top)
10492  if (Open)
10493  if (Powered) return 4336;
10494  else return 4338;
10495  else
10496  if (Powered) return 4340;
10497  else return 4342;
10498  else
10499  if (Open)
10500  if (Powered) return 4344;
10501  else return 4346;
10502  else
10503  if (Powered) return 4348;
10504  else return 4350;
10505  else
10506  if (Half == Half::Top)
10507  if (Open)
10508  if (Powered) return 4352;
10509  else return 4354;
10510  else
10511  if (Powered) return 4356;
10512  else return 4358;
10513  else
10514  if (Open)
10515  if (Powered) return 4360;
10516  else return 4362;
10517  else
10518  if (Powered) return 4364;
10519  else return 4366;
10520  }
10523  enum Half Half(BlockState Block);
10524  bool Open(BlockState Block);
10525  bool Powered(BlockState Block);
10526  }
10527  namespace JungleWallSign
10528  {
10530  {
10531  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3768;
10532  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3770;
10533  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3772;
10534  else return 3774;
10535  }
10538  }
10539  namespace JungleWood
10540  {
10541  enum class Axis
10542  {
10543  X,
10544  Y,
10545  Z
10546  };
10547  constexpr BlockState JungleWood(const enum Axis Axis)
10548  {
10549  if (Axis == Axis::X) return 118;
10550  else if (Axis == Axis::Y) return 119;
10551  else return 120;
10552  }
10554  enum Axis Axis(BlockState Block);
10555  }
10556  namespace Kelp
10557  {
10558  constexpr BlockState Kelp(const unsigned char Age)
10559  {
10560  if (Age == 0) return 9470;
10561  else if (Age == 1) return 9471;
10562  else if (Age == 2) return 9472;
10563  else if (Age == 3) return 9473;
10564  else if (Age == 4) return 9474;
10565  else if (Age == 5) return 9475;
10566  else if (Age == 6) return 9476;
10567  else if (Age == 7) return 9477;
10568  else if (Age == 8) return 9478;
10569  else if (Age == 9) return 9479;
10570  else if (Age == 10) return 9480;
10571  else if (Age == 11) return 9481;
10572  else if (Age == 12) return 9482;
10573  else if (Age == 13) return 9483;
10574  else if (Age == 14) return 9484;
10575  else if (Age == 15) return 9485;
10576  else if (Age == 16) return 9486;
10577  else if (Age == 17) return 9487;
10578  else if (Age == 18) return 9488;
10579  else if (Age == 19) return 9489;
10580  else if (Age == 20) return 9490;
10581  else if (Age == 21) return 9491;
10582  else if (Age == 22) return 9492;
10583  else if (Age == 23) return 9493;
10584  else if (Age == 24) return 9494;
10585  else return 9495;
10586  }
10587  BlockState Kelp();
10588  unsigned char Age(BlockState Block);
10589  }
10590  namespace KelpPlant
10591  {
10592  constexpr BlockState KelpPlant()
10593  {
10594  return 9496;
10595  }
10596  }
10597  namespace Ladder
10598  {
10600  {
10601  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3638;
10602  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3640;
10603  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3642;
10604  else return 3644;
10605  }
10606  BlockState Ladder();
10608  }
10609  namespace Lantern
10610  {
10611  constexpr BlockState Lantern(const bool Hanging)
10612  {
10613  if (Hanging) return 14886;
10614  else return 14887;
10615  }
10616  BlockState Lantern();
10617  bool Hanging(BlockState Block);
10618  }
10619  namespace LapisBlock
10620  {
10622  {
10623  return 233;
10624  }
10625  }
10626  namespace LapisOre
10627  {
10628  constexpr BlockState LapisOre()
10629  {
10630  return 232;
10631  }
10632  }
10633  namespace LargeFern
10634  {
10635  enum class Half
10636  {
10637  Upper,
10638  Lower
10639  };
10640  constexpr BlockState LargeFern(const enum Half Half)
10641  {
10642  if (Half == Half::Upper) return 7895;
10643  else return 7896;
10644  }
10646  enum Half Half(BlockState Block);
10647  }
10648  namespace Lava
10649  {
10650  constexpr BlockState Lava(const unsigned char Level)
10651  {
10652  if (Level == 0) return 50;
10653  else if (Level == 1) return 51;
10654  else if (Level == 2) return 52;
10655  else if (Level == 3) return 53;
10656  else if (Level == 4) return 54;
10657  else if (Level == 5) return 55;
10658  else if (Level == 6) return 56;
10659  else if (Level == 7) return 57;
10660  else if (Level == 8) return 58;
10661  else if (Level == 9) return 59;
10662  else if (Level == 10) return 60;
10663  else if (Level == 11) return 61;
10664  else if (Level == 12) return 62;
10665  else if (Level == 13) return 63;
10666  else if (Level == 14) return 64;
10667  else return 65;
10668  }
10669  BlockState Lava();
10670  unsigned char Level(BlockState Block);
10671  }
10672  namespace Lectern
10673  {
10674  constexpr BlockState Lectern(const eBlockFace Facing, const bool HasBook, const bool Powered)
10675  {
10677  if (HasBook)
10678  if (Powered) return 14833;
10679  else return 14834;
10680  else
10681  if (Powered) return 14835;
10682  else return 14836;
10683  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10684  if (HasBook)
10685  if (Powered) return 14837;
10686  else return 14838;
10687  else
10688  if (Powered) return 14839;
10689  else return 14840;
10690  else if (Facing == eBlockFace::BLOCK_FACE_XM)
10691  if (HasBook)
10692  if (Powered) return 14841;
10693  else return 14842;
10694  else
10695  if (Powered) return 14843;
10696  else return 14844;
10697  else
10698  if (HasBook)
10699  if (Powered) return 14845;
10700  else return 14846;
10701  else
10702  if (Powered) return 14847;
10703  else return 14848;
10704  }
10705  BlockState Lectern();
10707  bool HasBook(BlockState Block);
10708  bool Powered(BlockState Block);
10709  }
10710  namespace Lever
10711  {
10712  enum class Face
10713  {
10714  Floor,
10715  Wall,
10716  Ceiling
10717  };
10718  constexpr BlockState Lever(const enum Face Face, const eBlockFace Facing, const bool Powered)
10719  {
10720  if (Face == Face::Floor)
10722  if (Powered) return 3783;
10723  else return 3784;
10724  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10725  if (Powered) return 3785;
10726  else return 3786;
10727  else if (Facing == eBlockFace::BLOCK_FACE_XM)
10728  if (Powered) return 3787;
10729  else return 3788;
10730  else
10731  if (Powered) return 3789;
10732  else return 3790;
10733  else if (Face == Face::Wall)
10735  if (Powered) return 3791;
10736  else return 3792;
10737  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10738  if (Powered) return 3793;
10739  else return 3794;
10740  else if (Facing == eBlockFace::BLOCK_FACE_XM)
10741  if (Powered) return 3795;
10742  else return 3796;
10743  else
10744  if (Powered) return 3797;
10745  else return 3798;
10746  else
10748  if (Powered) return 3799;
10749  else return 3800;
10750  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10751  if (Powered) return 3801;
10752  else return 3802;
10753  else if (Facing == eBlockFace::BLOCK_FACE_XM)
10754  if (Powered) return 3803;
10755  else return 3804;
10756  else
10757  if (Powered) return 3805;
10758  else return 3806;
10759  }
10760  BlockState Lever();
10761  enum Face Face(BlockState Block);
10763  bool Powered(BlockState Block);
10764  }
10765  namespace LightBlueBanner
10766  {
10767  constexpr BlockState LightBlueBanner(const unsigned char Rotation)
10768  {
10769  if (Rotation == 0) return 7945;
10770  else if (Rotation == 1) return 7946;
10771  else if (Rotation == 2) return 7947;
10772  else if (Rotation == 3) return 7948;
10773  else if (Rotation == 4) return 7949;
10774  else if (Rotation == 5) return 7950;
10775  else if (Rotation == 6) return 7951;
10776  else if (Rotation == 7) return 7952;
10777  else if (Rotation == 8) return 7953;
10778  else if (Rotation == 9) return 7954;
10779  else if (Rotation == 10) return 7955;
10780  else if (Rotation == 11) return 7956;
10781  else if (Rotation == 12) return 7957;
10782  else if (Rotation == 13) return 7958;
10783  else if (Rotation == 14) return 7959;
10784  else return 7960;
10785  }
10787  unsigned char Rotation(BlockState Block);
10788  }
10789  namespace LightBlueBed
10790  {
10791  enum class Part
10792  {
10793  Head,
10794  Foot
10795  };
10796  constexpr BlockState LightBlueBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
10797  {
10799  if (Occupied)
10800  if (Part == Part::Head) return 1097;
10801  else return 1098;
10802  else
10803  if (Part == Part::Head) return 1099;
10804  else return 1100;
10805  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10806  if (Occupied)
10807  if (Part == Part::Head) return 1101;
10808  else return 1102;
10809  else
10810  if (Part == Part::Head) return 1103;
10811  else return 1104;
10812  else if (Facing == eBlockFace::BLOCK_FACE_XM)
10813  if (Occupied)
10814  if (Part == Part::Head) return 1105;
10815  else return 1106;
10816  else
10817  if (Part == Part::Head) return 1107;
10818  else return 1108;
10819  else
10820  if (Occupied)
10821  if (Part == Part::Head) return 1109;
10822  else return 1110;
10823  else
10824  if (Part == Part::Head) return 1111;
10825  else return 1112;
10826  }
10829  bool Occupied(BlockState Block);
10830  enum Part Part(BlockState Block);
10831  }
10832  namespace LightBlueCarpet
10833  {
10835  {
10836  return 7869;
10837  }
10838  }
10839  namespace LightBlueConcrete
10840  {
10842  {
10843  return 9441;
10844  }
10845  }
10846  namespace LightBlueConcretePowder
10847  {
10849  {
10850  return 9457;
10851  }
10852  }
10853  namespace LightBlueGlazedTerracotta
10854  {
10856  {
10857  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9386;
10858  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9387;
10859  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9388;
10860  else return 9389;
10861  }
10864  }
10865  namespace LightBlueShulkerBox
10866  {
10868  {
10869  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9296;
10870  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9297;
10871  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9298;
10872  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9299;
10873  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9300;
10874  else return 9301;
10875  }
10878  }
10879  namespace LightBlueStainedGlass
10880  {
10882  {
10883  return 4098;
10884  }
10885  }
10886  namespace LightBlueStainedGlassPane
10887  {
10888  constexpr BlockState LightBlueStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
10889  {
10890  if (East)
10891  if (North)
10892  if (South)
10893  if (West) return 6961;
10894  else return 6962;
10895  else
10896  if (West) return 6965;
10897  else return 6966;
10898  else
10899  if (South)
10900  if (West) return 6969;
10901  else return 6970;
10902  else
10903  if (West) return 6973;
10904  else return 6974;
10905  else
10906  if (North)
10907  if (South)
10908  if (West) return 6977;
10909  else return 6978;
10910  else
10911  if (West) return 6981;
10912  else return 6982;
10913  else
10914  if (South)
10915  if (West) return 6985;
10916  else return 6986;
10917  else
10918  if (West) return 6989;
10919  else return 6990;
10920  }
10922  bool East(BlockState Block);
10923  bool North(BlockState Block);
10924  bool South(BlockState Block);
10925  bool West(BlockState Block);
10926  }
10927  namespace LightBlueTerracotta
10928  {
10930  {
10931  return 6850;
10932  }
10933  }
10934  namespace LightBlueWallBanner
10935  {
10937  {
10938  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8165;
10939  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8166;
10940  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8167;
10941  else return 8168;
10942  }
10945  }
10946  namespace LightBlueWool
10947  {
10949  {
10950  return 1387;
10951  }
10952  }
10953  namespace LightGrayBanner
10954  {
10955  constexpr BlockState LightGrayBanner(const unsigned char Rotation)
10956  {
10957  if (Rotation == 0) return 8025;
10958  else if (Rotation == 1) return 8026;
10959  else if (Rotation == 2) return 8027;
10960  else if (Rotation == 3) return 8028;
10961  else if (Rotation == 4) return 8029;
10962  else if (Rotation == 5) return 8030;
10963  else if (Rotation == 6) return 8031;
10964  else if (Rotation == 7) return 8032;
10965  else if (Rotation == 8) return 8033;
10966  else if (Rotation == 9) return 8034;
10967  else if (Rotation == 10) return 8035;
10968  else if (Rotation == 11) return 8036;
10969  else if (Rotation == 12) return 8037;
10970  else if (Rotation == 13) return 8038;
10971  else if (Rotation == 14) return 8039;
10972  else return 8040;
10973  }
10975  unsigned char Rotation(BlockState Block);
10976  }
10977  namespace LightGrayBed
10978  {
10979  enum class Part
10980  {
10981  Head,
10982  Foot
10983  };
10984  constexpr BlockState LightGrayBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
10985  {
10987  if (Occupied)
10988  if (Part == Part::Head) return 1177;
10989  else return 1178;
10990  else
10991  if (Part == Part::Head) return 1179;
10992  else return 1180;
10993  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
10994  if (Occupied)
10995  if (Part == Part::Head) return 1181;
10996  else return 1182;
10997  else
10998  if (Part == Part::Head) return 1183;
10999  else return 1184;
11000  else if (Facing == eBlockFace::BLOCK_FACE_XM)
11001  if (Occupied)
11002  if (Part == Part::Head) return 1185;
11003  else return 1186;
11004  else
11005  if (Part == Part::Head) return 1187;
11006  else return 1188;
11007  else
11008  if (Occupied)
11009  if (Part == Part::Head) return 1189;
11010  else return 1190;
11011  else
11012  if (Part == Part::Head) return 1191;
11013  else return 1192;
11014  }
11017  bool Occupied(BlockState Block);
11018  enum Part Part(BlockState Block);
11019  }
11020  namespace LightGrayCarpet
11021  {
11023  {
11024  return 7874;
11025  }
11026  }
11027  namespace LightGrayConcrete
11028  {
11030  {
11031  return 9446;
11032  }
11033  }
11034  namespace LightGrayConcretePowder
11035  {
11037  {
11038  return 9462;
11039  }
11040  }
11041  namespace LightGrayGlazedTerracotta
11042  {
11044  {
11045  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9406;
11046  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9407;
11047  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9408;
11048  else return 9409;
11049  }
11052  }
11053  namespace LightGrayShulkerBox
11054  {
11056  {
11057  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9326;
11058  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9327;
11059  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9328;
11060  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9329;
11061  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9330;
11062  else return 9331;
11063  }
11066  }
11067  namespace LightGrayStainedGlass
11068  {
11070  {
11071  return 4103;
11072  }
11073  }
11074  namespace LightGrayStainedGlassPane
11075  {
11076  constexpr BlockState LightGrayStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
11077  {
11078  if (East)
11079  if (North)
11080  if (South)
11081  if (West) return 7121;
11082  else return 7122;
11083  else
11084  if (West) return 7125;
11085  else return 7126;
11086  else
11087  if (South)
11088  if (West) return 7129;
11089  else return 7130;
11090  else
11091  if (West) return 7133;
11092  else return 7134;
11093  else
11094  if (North)
11095  if (South)
11096  if (West) return 7137;
11097  else return 7138;
11098  else
11099  if (West) return 7141;
11100  else return 7142;
11101  else
11102  if (South)
11103  if (West) return 7145;
11104  else return 7146;
11105  else
11106  if (West) return 7149;
11107  else return 7150;
11108  }
11110  bool East(BlockState Block);
11111  bool North(BlockState Block);
11112  bool South(BlockState Block);
11113  bool West(BlockState Block);
11114  }
11115  namespace LightGrayTerracotta
11116  {
11118  {
11119  return 6855;
11120  }
11121  }
11122  namespace LightGrayWallBanner
11123  {
11125  {
11126  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8185;
11127  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8186;
11128  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8187;
11129  else return 8188;
11130  }
11133  }
11134  namespace LightGrayWool
11135  {
11137  {
11138  return 1392;
11139  }
11140  }
11141  namespace LightWeightedPressurePlate
11142  {
11143  constexpr BlockState LightWeightedPressurePlate(const unsigned char Power)
11144  {
11145  if (Power == 0) return 6646;
11146  else if (Power == 1) return 6647;
11147  else if (Power == 2) return 6648;
11148  else if (Power == 3) return 6649;
11149  else if (Power == 4) return 6650;
11150  else if (Power == 5) return 6651;
11151  else if (Power == 6) return 6652;
11152  else if (Power == 7) return 6653;
11153  else if (Power == 8) return 6654;
11154  else if (Power == 9) return 6655;
11155  else if (Power == 10) return 6656;
11156  else if (Power == 11) return 6657;
11157  else if (Power == 12) return 6658;
11158  else if (Power == 13) return 6659;
11159  else if (Power == 14) return 6660;
11160  else return 6661;
11161  }
11163  unsigned char Power(BlockState Block);
11164  }
11165  namespace Lilac
11166  {
11167  enum class Half
11168  {
11169  Upper,
11170  Lower
11171  };
11172  constexpr BlockState Lilac(const enum Half Half)
11173  {
11174  if (Half == Half::Upper) return 7887;
11175  else return 7888;
11176  }
11177  BlockState Lilac();
11178  enum Half Half(BlockState Block);
11179  }
11180  namespace LilyOfTheValley
11181  {
11183  {
11184  return 1424;
11185  }
11186  }
11187  namespace LilyPad
11188  {
11189  constexpr BlockState LilyPad()
11190  {
11191  return 5014;
11192  }
11193  }
11194  namespace LimeBanner
11195  {
11196  constexpr BlockState LimeBanner(const unsigned char Rotation)
11197  {
11198  if (Rotation == 0) return 7977;
11199  else if (Rotation == 1) return 7978;
11200  else if (Rotation == 2) return 7979;
11201  else if (Rotation == 3) return 7980;
11202  else if (Rotation == 4) return 7981;
11203  else if (Rotation == 5) return 7982;
11204  else if (Rotation == 6) return 7983;
11205  else if (Rotation == 7) return 7984;
11206  else if (Rotation == 8) return 7985;
11207  else if (Rotation == 9) return 7986;
11208  else if (Rotation == 10) return 7987;
11209  else if (Rotation == 11) return 7988;
11210  else if (Rotation == 12) return 7989;
11211  else if (Rotation == 13) return 7990;
11212  else if (Rotation == 14) return 7991;
11213  else return 7992;
11214  }
11216  unsigned char Rotation(BlockState Block);
11217  }
11218  namespace LimeBed
11219  {
11220  enum class Part
11221  {
11222  Head,
11223  Foot
11224  };
11225  constexpr BlockState LimeBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
11226  {
11228  if (Occupied)
11229  if (Part == Part::Head) return 1129;
11230  else return 1130;
11231  else
11232  if (Part == Part::Head) return 1131;
11233  else return 1132;
11234  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
11235  if (Occupied)
11236  if (Part == Part::Head) return 1133;
11237  else return 1134;
11238  else
11239  if (Part == Part::Head) return 1135;
11240  else return 1136;
11241  else if (Facing == eBlockFace::BLOCK_FACE_XM)
11242  if (Occupied)
11243  if (Part == Part::Head) return 1137;
11244  else return 1138;
11245  else
11246  if (Part == Part::Head) return 1139;
11247  else return 1140;
11248  else
11249  if (Occupied)
11250  if (Part == Part::Head) return 1141;
11251  else return 1142;
11252  else
11253  if (Part == Part::Head) return 1143;
11254  else return 1144;
11255  }
11256  BlockState LimeBed();
11258  bool Occupied(BlockState Block);
11259  enum Part Part(BlockState Block);
11260  }
11261  namespace LimeCarpet
11262  {
11264  {
11265  return 7871;
11266  }
11267  }
11268  namespace LimeConcrete
11269  {
11271  {
11272  return 9443;
11273  }
11274  }
11275  namespace LimeConcretePowder
11276  {
11278  {
11279  return 9459;
11280  }
11281  }
11282  namespace LimeGlazedTerracotta
11283  {
11285  {
11286  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9394;
11287  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9395;
11288  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9396;
11289  else return 9397;
11290  }
11293  }
11294  namespace LimeShulkerBox
11295  {
11297  {
11298  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9308;
11299  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9309;
11300  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9310;
11301  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9311;
11302  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9312;
11303  else return 9313;
11304  }
11307  }
11308  namespace LimeStainedGlass
11309  {
11311  {
11312  return 4100;
11313  }
11314  }
11315  namespace LimeStainedGlassPane
11316  {
11317  constexpr BlockState LimeStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
11318  {
11319  if (East)
11320  if (North)
11321  if (South)
11322  if (West) return 7025;
11323  else return 7026;
11324  else
11325  if (West) return 7029;
11326  else return 7030;
11327  else
11328  if (South)
11329  if (West) return 7033;
11330  else return 7034;
11331  else
11332  if (West) return 7037;
11333  else return 7038;
11334  else
11335  if (North)
11336  if (South)
11337  if (West) return 7041;
11338  else return 7042;
11339  else
11340  if (West) return 7045;
11341  else return 7046;
11342  else
11343  if (South)
11344  if (West) return 7049;
11345  else return 7050;
11346  else
11347  if (West) return 7053;
11348  else return 7054;
11349  }
11351  bool East(BlockState Block);
11352  bool North(BlockState Block);
11353  bool South(BlockState Block);
11354  bool West(BlockState Block);
11355  }
11356  namespace LimeTerracotta
11357  {
11359  {
11360  return 6852;
11361  }
11362  }
11363  namespace LimeWallBanner
11364  {
11366  {
11367  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8173;
11368  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8174;
11369  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8175;
11370  else return 8176;
11371  }
11374  }
11375  namespace LimeWool
11376  {
11377  constexpr BlockState LimeWool()
11378  {
11379  return 1389;
11380  }
11381  }
11382  namespace Lodestone
11383  {
11384  constexpr BlockState Lodestone()
11385  {
11386  return 15838;
11387  }
11388  }
11389  namespace Loom
11390  {
11392  {
11393  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14787;
11394  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14788;
11395  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14789;
11396  else return 14790;
11397  }
11398  BlockState Loom();
11400  }
11401  namespace MagentaBanner
11402  {
11403  constexpr BlockState MagentaBanner(const unsigned char Rotation)
11404  {
11405  if (Rotation == 0) return 7929;
11406  else if (Rotation == 1) return 7930;
11407  else if (Rotation == 2) return 7931;
11408  else if (Rotation == 3) return 7932;
11409  else if (Rotation == 4) return 7933;
11410  else if (Rotation == 5) return 7934;
11411  else if (Rotation == 6) return 7935;
11412  else if (Rotation == 7) return 7936;
11413  else if (Rotation == 8) return 7937;
11414  else if (Rotation == 9) return 7938;
11415  else if (Rotation == 10) return 7939;
11416  else if (Rotation == 11) return 7940;
11417  else if (Rotation == 12) return 7941;
11418  else if (Rotation == 13) return 7942;
11419  else if (Rotation == 14) return 7943;
11420  else return 7944;
11421  }
11423  unsigned char Rotation(BlockState Block);
11424  }
11425  namespace MagentaBed
11426  {
11427  enum class Part
11428  {
11429  Head,
11430  Foot
11431  };
11432  constexpr BlockState MagentaBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
11433  {
11435  if (Occupied)
11436  if (Part == Part::Head) return 1081;
11437  else return 1082;
11438  else
11439  if (Part == Part::Head) return 1083;
11440  else return 1084;
11441  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
11442  if (Occupied)
11443  if (Part == Part::Head) return 1085;
11444  else return 1086;
11445  else
11446  if (Part == Part::Head) return 1087;
11447  else return 1088;
11448  else if (Facing == eBlockFace::BLOCK_FACE_XM)
11449  if (Occupied)
11450  if (Part == Part::Head) return 1089;
11451  else return 1090;
11452  else
11453  if (Part == Part::Head) return 1091;
11454  else return 1092;
11455  else
11456  if (Occupied)
11457  if (Part == Part::Head) return 1093;
11458  else return 1094;
11459  else
11460  if (Part == Part::Head) return 1095;
11461  else return 1096;
11462  }
11465  bool Occupied(BlockState Block);
11466  enum Part Part(BlockState Block);
11467  }
11468  namespace MagentaCarpet
11469  {
11471  {
11472  return 7868;
11473  }
11474  }
11475  namespace MagentaConcrete
11476  {
11478  {
11479  return 9440;
11480  }
11481  }
11482  namespace MagentaConcretePowder
11483  {
11485  {
11486  return 9456;
11487  }
11488  }
11489  namespace MagentaGlazedTerracotta
11490  {
11492  {
11493  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9382;
11494  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9383;
11495  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9384;
11496  else return 9385;
11497  }
11500  }
11501  namespace MagentaShulkerBox
11502  {
11504  {
11505  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9290;
11506  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9291;
11507  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9292;
11508  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9293;
11509  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9294;
11510  else return 9295;
11511  }
11514  }
11515  namespace MagentaStainedGlass
11516  {
11518  {
11519  return 4097;
11520  }
11521  }
11522  namespace MagentaStainedGlassPane
11523  {
11524  constexpr BlockState MagentaStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
11525  {
11526  if (East)
11527  if (North)
11528  if (South)
11529  if (West) return 6929;
11530  else return 6930;
11531  else
11532  if (West) return 6933;
11533  else return 6934;
11534  else
11535  if (South)
11536  if (West) return 6937;
11537  else return 6938;
11538  else
11539  if (West) return 6941;
11540  else return 6942;
11541  else
11542  if (North)
11543  if (South)
11544  if (West) return 6945;
11545  else return 6946;
11546  else
11547  if (West) return 6949;
11548  else return 6950;
11549  else
11550  if (South)
11551  if (West) return 6953;
11552  else return 6954;
11553  else
11554  if (West) return 6957;
11555  else return 6958;
11556  }
11558  bool East(BlockState Block);
11559  bool North(BlockState Block);
11560  bool South(BlockState Block);
11561  bool West(BlockState Block);
11562  }
11563  namespace MagentaTerracotta
11564  {
11566  {
11567  return 6849;
11568  }
11569  }
11570  namespace MagentaWallBanner
11571  {
11573  {
11574  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8161;
11575  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8162;
11576  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8163;
11577  else return 8164;
11578  }
11581  }
11582  namespace MagentaWool
11583  {
11585  {
11586  return 1386;
11587  }
11588  }
11589  namespace MagmaBlock
11590  {
11592  {
11593  return 9253;
11594  }
11595  }
11596  namespace Melon
11597  {
11598  constexpr BlockState Melon()
11599  {
11600  return 4763;
11601  }
11602  }
11603  namespace MelonStem
11604  {
11605  constexpr BlockState MelonStem(const unsigned char Age)
11606  {
11607  if (Age == 0) return 4780;
11608  else if (Age == 1) return 4781;
11609  else if (Age == 2) return 4782;
11610  else if (Age == 3) return 4783;
11611  else if (Age == 4) return 4784;
11612  else if (Age == 5) return 4785;
11613  else if (Age == 6) return 4786;
11614  else return 4787;
11615  }
11617  unsigned char Age(BlockState Block);
11618  }
11619  namespace MossyCobblestone
11620  {
11622  {
11623  return 1433;
11624  }
11625  }
11626  namespace MossyCobblestoneSlab
11627  {
11628  enum class Type
11629  {
11630  Top,
11631  Bottom,
11632  Double
11633  };
11635  {
11636  if (Type == Type::Top) return 10814;
11637  else if (Type == Type::Bottom) return 10816;
11638  else return 10818;
11639  }
11641  enum Type Type(BlockState Block);
11642  }
11643  namespace MossyCobblestoneStairs
11644  {
11645  enum class Half
11646  {
11647  Top,
11648  Bottom
11649  };
11650  enum class Shape
11651  {
11652  Straight,
11653  InnerLeft,
11654  InnerRight,
11655  OuterLeft,
11656  OuterRight
11657  };
11658  constexpr BlockState MossyCobblestoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
11659  {
11661  if (Half == Half::Top)
11662  if (Shape == Shape::Straight) return 9990;
11663  else if (Shape == Shape::InnerLeft) return 9992;
11664  else if (Shape == Shape::InnerRight) return 9994;
11665  else if (Shape == Shape::OuterLeft) return 9996;
11666  else return 9998;
11667  else
11668  if (Shape == Shape::Straight) return 10000;
11669  else if (Shape == Shape::InnerLeft) return 10002;
11670  else if (Shape == Shape::InnerRight) return 10004;
11671  else if (Shape == Shape::OuterLeft) return 10006;
11672  else return 10008;
11673  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
11674  if (Half == Half::Top)
11675  if (Shape == Shape::Straight) return 10010;
11676  else if (Shape == Shape::InnerLeft) return 10012;
11677  else if (Shape == Shape::InnerRight) return 10014;
11678  else if (Shape == Shape::OuterLeft) return 10016;
11679  else return 10018;
11680  else
11681  if (Shape == Shape::Straight) return 10020;
11682  else if (Shape == Shape::InnerLeft) return 10022;
11683  else if (Shape == Shape::InnerRight) return 10024;
11684  else if (Shape == Shape::OuterLeft) return 10026;
11685  else return 10028;
11686  else if (Facing == eBlockFace::BLOCK_FACE_XM)
11687  if (Half == Half::Top)
11688  if (Shape == Shape::Straight) return 10030;
11689  else if (Shape == Shape::InnerLeft) return 10032;
11690  else if (Shape == Shape::InnerRight) return 10034;
11691  else if (Shape == Shape::OuterLeft) return 10036;
11692  else return 10038;
11693  else
11694  if (Shape == Shape::Straight) return 10040;
11695  else if (Shape == Shape::InnerLeft) return 10042;
11696  else if (Shape == Shape::InnerRight) return 10044;
11697  else if (Shape == Shape::OuterLeft) return 10046;
11698  else return 10048;
11699  else
11700  if (Half == Half::Top)
11701  if (Shape == Shape::Straight) return 10050;
11702  else if (Shape == Shape::InnerLeft) return 10052;
11703  else if (Shape == Shape::InnerRight) return 10054;
11704  else if (Shape == Shape::OuterLeft) return 10056;
11705  else return 10058;
11706  else
11707  if (Shape == Shape::Straight) return 10060;
11708  else if (Shape == Shape::InnerLeft) return 10062;
11709  else if (Shape == Shape::InnerRight) return 10064;
11710  else if (Shape == Shape::OuterLeft) return 10066;
11711  else return 10068;
11712  }
11715  enum Half Half(BlockState Block);
11716  enum Shape Shape(BlockState Block);
11717  }
11718  namespace MossyCobblestoneWall
11719  {
11720  enum class East
11721  {
11722  None,
11723  Low,
11724  Tall
11725  };
11726  enum class North
11727  {
11728  None,
11729  Low,
11730  Tall
11731  };
11732  enum class South
11733  {
11734  None,
11735  Low,
11736  Tall
11737  };
11738  enum class West
11739  {
11740  None,
11741  Low,
11742  Tall
11743  };
11744  constexpr BlockState MossyCobblestoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
11745  {
11746  if (East == East::None)
11747  if (North == North::None)
11748  if (South == South::None)
11749  if (Up)
11750  if (West == West::None) return 5984;
11751  else if (West == West::Low) return 5985;
11752  else return 5986;
11753  else
11754  if (West == West::None) return 5990;
11755  else if (West == West::Low) return 5991;
11756  else return 5992;
11757  else if (South == South::Low)
11758  if (Up)
11759  if (West == West::None) return 5996;
11760  else if (West == West::Low) return 5997;
11761  else return 5998;
11762  else
11763  if (West == West::None) return 6002;
11764  else if (West == West::Low) return 6003;
11765  else return 6004;
11766  else
11767  if (Up)
11768  if (West == West::None) return 6008;
11769  else if (West == West::Low) return 6009;
11770  else return 6010;
11771  else
11772  if (West == West::None) return 6014;
11773  else if (West == West::Low) return 6015;
11774  else return 6016;
11775  else if (North == North::Low)
11776  if (South == South::None)
11777  if (Up)
11778  if (West == West::None) return 6020;
11779  else if (West == West::Low) return 6021;
11780  else return 6022;
11781  else
11782  if (West == West::None) return 6026;
11783  else if (West == West::Low) return 6027;
11784  else return 6028;
11785  else if (South == South::Low)
11786  if (Up)
11787  if (West == West::None) return 6032;
11788  else if (West == West::Low) return 6033;
11789  else return 6034;
11790  else
11791  if (West == West::None) return 6038;
11792  else if (West == West::Low) return 6039;
11793  else return 6040;
11794  else
11795  if (Up)
11796  if (West == West::None) return 6044;
11797  else if (West == West::Low) return 6045;
11798  else return 6046;
11799  else
11800  if (West == West::None) return 6050;
11801  else if (West == West::Low) return 6051;
11802  else return 6052;
11803  else
11804  if (South == South::None)
11805  if (Up)
11806  if (West == West::None) return 6056;
11807  else if (West == West::Low) return 6057;
11808  else return 6058;
11809  else
11810  if (West == West::None) return 6062;
11811  else if (West == West::Low) return 6063;
11812  else return 6064;
11813  else if (South == South::Low)
11814  if (Up)
11815  if (West == West::None) return 6068;
11816  else if (West == West::Low) return 6069;
11817  else return 6070;
11818  else
11819  if (West == West::None) return 6074;
11820  else if (West == West::Low) return 6075;
11821  else return 6076;
11822  else
11823  if (Up)
11824  if (West == West::None) return 6080;
11825  else if (West == West::Low) return 6081;
11826  else return 6082;
11827  else
11828  if (West == West::None) return 6086;
11829  else if (West == West::Low) return 6087;
11830  else return 6088;
11831  else if (East == East::Low)
11832  if (North == North::None)
11833  if (South == South::None)
11834  if (Up)
11835  if (West == West::None) return 6092;
11836  else if (West == West::Low) return 6093;
11837  else return 6094;
11838  else
11839  if (West == West::None) return 6098;
11840  else if (West == West::Low) return 6099;
11841  else return 6100;
11842  else if (South == South::Low)
11843  if (Up)
11844  if (West == West::None) return 6104;
11845  else if (West == West::Low) return 6105;
11846  else return 6106;
11847  else
11848  if (West == West::None) return 6110;
11849  else if (West == West::Low) return 6111;
11850  else return 6112;
11851  else
11852  if (Up)
11853  if (West == West::None) return 6116;
11854  else if (West == West::Low) return 6117;
11855  else return 6118;
11856  else
11857  if (West == West::None) return 6122;
11858  else if (West == West::Low) return 6123;
11859  else return 6124;
11860  else if (North == North::Low)
11861  if (South == South::None)
11862  if (Up)
11863  if (West == West::None) return 6128;
11864  else if (West == West::Low) return 6129;
11865  else return 6130;
11866  else
11867  if (West == West::None) return 6134;
11868  else if (West == West::Low) return 6135;
11869  else return 6136;
11870  else if (South == South::Low)
11871  if (Up)
11872  if (West == West::None) return 6140;
11873  else if (West == West::Low) return 6141;
11874  else return 6142;
11875  else
11876  if (West == West::None) return 6146;
11877  else if (West == West::Low) return 6147;
11878  else return 6148;
11879  else
11880  if (Up)
11881  if (West == West::None) return 6152;
11882  else if (West == West::Low) return 6153;
11883  else return 6154;
11884  else
11885  if (West == West::None) return 6158;
11886  else if (West == West::Low) return 6159;
11887  else return 6160;
11888  else
11889  if (South == South::None)
11890  if (Up)
11891  if (West == West::None) return 6164;
11892  else if (West == West::Low) return 6165;
11893  else return 6166;
11894  else
11895  if (West == West::None) return 6170;
11896  else if (West == West::Low) return 6171;
11897  else return 6172;
11898  else if (South == South::Low)
11899  if (Up)
11900  if (West == West::None) return 6176;
11901  else if (West == West::Low) return 6177;
11902  else return 6178;
11903  else
11904  if (West == West::None) return 6182;
11905  else if (West == West::Low) return 6183;
11906  else return 6184;
11907  else
11908  if (Up)
11909  if (West == West::None) return 6188;
11910  else if (West == West::Low) return 6189;
11911  else return 6190;
11912  else
11913  if (West == West::None) return 6194;
11914  else if (West == West::Low) return 6195;
11915  else return 6196;
11916  else
11917  if (North == North::None)
11918  if (South == South::None)
11919  if (Up)
11920  if (West == West::None) return 6200;
11921  else if (West == West::Low) return 6201;
11922  else return 6202;
11923  else
11924  if (West == West::None) return 6206;
11925  else if (West == West::Low) return 6207;
11926  else return 6208;
11927  else if (South == South::Low)
11928  if (Up)
11929  if (West == West::None) return 6212;
11930  else if (West == West::Low) return 6213;
11931  else return 6214;
11932  else
11933  if (West == West::None) return 6218;
11934  else if (West == West::Low) return 6219;
11935  else return 6220;
11936  else
11937  if (Up)
11938  if (West == West::None) return 6224;
11939  else if (West == West::Low) return 6225;
11940  else return 6226;
11941  else
11942  if (West == West::None) return 6230;
11943  else if (West == West::Low) return 6231;
11944  else return 6232;
11945  else if (North == North::Low)
11946  if (South == South::None)
11947  if (Up)
11948  if (West == West::None) return 6236;
11949  else if (West == West::Low) return 6237;
11950  else return 6238;
11951  else
11952  if (West == West::None) return 6242;
11953  else if (West == West::Low) return 6243;
11954  else return 6244;
11955  else if (South == South::Low)
11956  if (Up)
11957  if (West == West::None) return 6248;
11958  else if (West == West::Low) return 6249;
11959  else return 6250;
11960  else
11961  if (West == West::None) return 6254;
11962  else if (West == West::Low) return 6255;
11963  else return 6256;
11964  else
11965  if (Up)
11966  if (West == West::None) return 6260;
11967  else if (West == West::Low) return 6261;
11968  else return 6262;
11969  else
11970  if (West == West::None) return 6266;
11971  else if (West == West::Low) return 6267;
11972  else return 6268;
11973  else
11974  if (South == South::None)
11975  if (Up)
11976  if (West == West::None) return 6272;
11977  else if (West == West::Low) return 6273;
11978  else return 6274;
11979  else
11980  if (West == West::None) return 6278;
11981  else if (West == West::Low) return 6279;
11982  else return 6280;
11983  else if (South == South::Low)
11984  if (Up)
11985  if (West == West::None) return 6284;
11986  else if (West == West::Low) return 6285;
11987  else return 6286;
11988  else
11989  if (West == West::None) return 6290;
11990  else if (West == West::Low) return 6291;
11991  else return 6292;
11992  else
11993  if (Up)
11994  if (West == West::None) return 6296;
11995  else if (West == West::Low) return 6297;
11996  else return 6298;
11997  else
11998  if (West == West::None) return 6302;
11999  else if (West == West::Low) return 6303;
12000  else return 6304;
12001  }
12003  enum East East(BlockState Block);
12004  enum North North(BlockState Block);
12005  enum South South(BlockState Block);
12006  bool Up(BlockState Block);
12007  enum West West(BlockState Block);
12008  }
12009  namespace MossyStoneBrickSlab
12010  {
12011  enum class Type
12012  {
12013  Top,
12014  Bottom,
12015  Double
12016  };
12017  constexpr BlockState MossyStoneBrickSlab(const enum Type Type)
12018  {
12019  if (Type == Type::Top) return 10802;
12020  else if (Type == Type::Bottom) return 10804;
12021  else return 10806;
12022  }
12024  enum Type Type(BlockState Block);
12025  }
12026  namespace MossyStoneBrickStairs
12027  {
12028  enum class Half
12029  {
12030  Top,
12031  Bottom
12032  };
12033  enum class Shape
12034  {
12035  Straight,
12036  InnerLeft,
12037  InnerRight,
12038  OuterLeft,
12039  OuterRight
12040  };
12041  constexpr BlockState MossyStoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
12042  {
12044  if (Half == Half::Top)
12045  if (Shape == Shape::Straight) return 9830;
12046  else if (Shape == Shape::InnerLeft) return 9832;
12047  else if (Shape == Shape::InnerRight) return 9834;
12048  else if (Shape == Shape::OuterLeft) return 9836;
12049  else return 9838;
12050  else
12051  if (Shape == Shape::Straight) return 9840;
12052  else if (Shape == Shape::InnerLeft) return 9842;
12053  else if (Shape == Shape::InnerRight) return 9844;
12054  else if (Shape == Shape::OuterLeft) return 9846;
12055  else return 9848;
12056  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
12057  if (Half == Half::Top)
12058  if (Shape == Shape::Straight) return 9850;
12059  else if (Shape == Shape::InnerLeft) return 9852;
12060  else if (Shape == Shape::InnerRight) return 9854;
12061  else if (Shape == Shape::OuterLeft) return 9856;
12062  else return 9858;
12063  else
12064  if (Shape == Shape::Straight) return 9860;
12065  else if (Shape == Shape::InnerLeft) return 9862;
12066  else if (Shape == Shape::InnerRight) return 9864;
12067  else if (Shape == Shape::OuterLeft) return 9866;
12068  else return 9868;
12069  else if (Facing == eBlockFace::BLOCK_FACE_XM)
12070  if (Half == Half::Top)
12071  if (Shape == Shape::Straight) return 9870;
12072  else if (Shape == Shape::InnerLeft) return 9872;
12073  else if (Shape == Shape::InnerRight) return 9874;
12074  else if (Shape == Shape::OuterLeft) return 9876;
12075  else return 9878;
12076  else
12077  if (Shape == Shape::Straight) return 9880;
12078  else if (Shape == Shape::InnerLeft) return 9882;
12079  else if (Shape == Shape::InnerRight) return 9884;
12080  else if (Shape == Shape::OuterLeft) return 9886;
12081  else return 9888;
12082  else
12083  if (Half == Half::Top)
12084  if (Shape == Shape::Straight) return 9890;
12085  else if (Shape == Shape::InnerLeft) return 9892;
12086  else if (Shape == Shape::InnerRight) return 9894;
12087  else if (Shape == Shape::OuterLeft) return 9896;
12088  else return 9898;
12089  else
12090  if (Shape == Shape::Straight) return 9900;
12091  else if (Shape == Shape::InnerLeft) return 9902;
12092  else if (Shape == Shape::InnerRight) return 9904;
12093  else if (Shape == Shape::OuterLeft) return 9906;
12094  else return 9908;
12095  }
12098  enum Half Half(BlockState Block);
12099  enum Shape Shape(BlockState Block);
12100  }
12101  namespace MossyStoneBrickWall
12102  {
12103  enum class East
12104  {
12105  None,
12106  Low,
12107  Tall
12108  };
12109  enum class North
12110  {
12111  None,
12112  Low,
12113  Tall
12114  };
12115  enum class South
12116  {
12117  None,
12118  Low,
12119  Tall
12120  };
12121  enum class West
12122  {
12123  None,
12124  Low,
12125  Tall
12126  };
12127  constexpr BlockState MossyStoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
12128  {
12129  if (East == East::None)
12130  if (North == North::None)
12131  if (South == South::None)
12132  if (Up)
12133  if (West == West::None) return 11842;
12134  else if (West == West::Low) return 11843;
12135  else return 11844;
12136  else
12137  if (West == West::None) return 11848;
12138  else if (West == West::Low) return 11849;
12139  else return 11850;
12140  else if (South == South::Low)
12141  if (Up)
12142  if (West == West::None) return 11854;
12143  else if (West == West::Low) return 11855;
12144  else return 11856;
12145  else
12146  if (West == West::None) return 11860;
12147  else if (West == West::Low) return 11861;
12148  else return 11862;
12149  else
12150  if (Up)
12151  if (West == West::None) return 11866;
12152  else if (West == West::Low) return 11867;
12153  else return 11868;
12154  else
12155  if (West == West::None) return 11872;
12156  else if (West == West::Low) return 11873;
12157  else return 11874;
12158  else if (North == North::Low)
12159  if (South == South::None)
12160  if (Up)
12161  if (West == West::None) return 11878;
12162  else if (West == West::Low) return 11879;
12163  else return 11880;
12164  else
12165  if (West == West::None) return 11884;
12166  else if (West == West::Low) return 11885;
12167  else return 11886;
12168  else if (South == South::Low)
12169  if (Up)
12170  if (West == West::None) return 11890;
12171  else if (West == West::Low) return 11891;
12172  else return 11892;
12173  else
12174  if (West == West::None) return 11896;
12175  else if (West == West::Low) return 11897;
12176  else return 11898;
12177  else
12178  if (Up)
12179  if (West == West::None) return 11902;
12180  else if (West == West::Low) return 11903;
12181  else return 11904;
12182  else
12183  if (West == West::None) return 11908;
12184  else if (West == West::Low) return 11909;
12185  else return 11910;
12186  else
12187  if (South == South::None)
12188  if (Up)
12189  if (West == West::None) return 11914;
12190  else if (West == West::Low) return 11915;
12191  else return 11916;
12192  else
12193  if (West == West::None) return 11920;
12194  else if (West == West::Low) return 11921;
12195  else return 11922;
12196  else if (South == South::Low)
12197  if (Up)
12198  if (West == West::None) return 11926;
12199  else if (West == West::Low) return 11927;
12200  else return 11928;
12201  else
12202  if (West == West::None) return 11932;
12203  else if (West == West::Low) return 11933;
12204  else return 11934;
12205  else
12206  if (Up)
12207  if (West == West::None) return 11938;
12208  else if (West == West::Low) return 11939;
12209  else return 11940;
12210  else
12211  if (West == West::None) return 11944;
12212  else if (West == West::Low) return 11945;
12213  else return 11946;
12214  else if (East == East::Low)
12215  if (North == North::None)
12216  if (South == South::None)
12217  if (Up)
12218  if (West == West::None) return 11950;
12219  else if (West == West::Low) return 11951;
12220  else return 11952;
12221  else
12222  if (West == West::None) return 11956;
12223  else if (West == West::Low) return 11957;
12224  else return 11958;
12225  else if (South == South::Low)
12226  if (Up)
12227  if (West == West::None) return 11962;
12228  else if (West == West::Low) return 11963;
12229  else return 11964;
12230  else
12231  if (West == West::None) return 11968;
12232  else if (West == West::Low) return 11969;
12233  else return 11970;
12234  else
12235  if (Up)
12236  if (West == West::None) return 11974;
12237  else if (West == West::Low) return 11975;
12238  else return 11976;
12239  else
12240  if (West == West::None) return 11980;
12241  else if (West == West::Low) return 11981;
12242  else return 11982;
12243  else if (North == North::Low)
12244  if (South == South::None)
12245  if (Up)
12246  if (West == West::None) return 11986;
12247  else if (West == West::Low) return 11987;
12248  else return 11988;
12249  else
12250  if (West == West::None) return 11992;
12251  else if (West == West::Low) return 11993;
12252  else return 11994;
12253  else if (South == South::Low)
12254  if (Up)
12255  if (West == West::None) return 11998;
12256  else if (West == West::Low) return 11999;
12257  else return 12000;
12258  else
12259  if (West == West::None) return 12004;
12260  else if (West == West::Low) return 12005;
12261  else return 12006;
12262  else
12263  if (Up)
12264  if (West == West::None) return 12010;
12265  else if (West == West::Low) return 12011;
12266  else return 12012;
12267  else
12268  if (West == West::None) return 12016;
12269  else if (West == West::Low) return 12017;
12270  else return 12018;
12271  else
12272  if (South == South::None)
12273  if (Up)
12274  if (West == West::None) return 12022;
12275  else if (West == West::Low) return 12023;
12276  else return 12024;
12277  else
12278  if (West == West::None) return 12028;
12279  else if (West == West::Low) return 12029;
12280  else return 12030;
12281  else if (South == South::Low)
12282  if (Up)
12283  if (West == West::None) return 12034;
12284  else if (West == West::Low) return 12035;
12285  else return 12036;
12286  else
12287  if (West == West::None) return 12040;
12288  else if (West == West::Low) return 12041;
12289  else return 12042;
12290  else
12291  if (Up)
12292  if (West == West::None) return 12046;
12293  else if (West == West::Low) return 12047;
12294  else return 12048;
12295  else
12296  if (West == West::None) return 12052;
12297  else if (West == West::Low) return 12053;
12298  else return 12054;
12299  else
12300  if (North == North::None)
12301  if (South == South::None)
12302  if (Up)
12303  if (West == West::None) return 12058;
12304  else if (West == West::Low) return 12059;
12305  else return 12060;
12306  else
12307  if (West == West::None) return 12064;
12308  else if (West == West::Low) return 12065;
12309  else return 12066;
12310  else if (South == South::Low)
12311  if (Up)
12312  if (West == West::None) return 12070;
12313  else if (West == West::Low) return 12071;
12314  else return 12072;
12315  else
12316  if (West == West::None) return 12076;
12317  else if (West == West::Low) return 12077;
12318  else return 12078;
12319  else
12320  if (Up)
12321  if (West == West::None) return 12082;
12322  else if (West == West::Low) return 12083;
12323  else return 12084;
12324  else
12325  if (West == West::None) return 12088;
12326  else if (West == West::Low) return 12089;
12327  else return 12090;
12328  else if (North == North::Low)
12329  if (South == South::None)
12330  if (Up)
12331  if (West == West::None) return 12094;
12332  else if (West == West::Low) return 12095;
12333  else return 12096;
12334  else
12335  if (West == West::None) return 12100;
12336  else if (West == West::Low) return 12101;
12337  else return 12102;
12338  else if (South == South::Low)
12339  if (Up)
12340  if (West == West::None) return 12106;
12341  else if (West == West::Low) return 12107;
12342  else return 12108;
12343  else
12344  if (West == West::None) return 12112;
12345  else if (West == West::Low) return 12113;
12346  else return 12114;
12347  else
12348  if (Up)
12349  if (West == West::None) return 12118;
12350  else if (West == West::Low) return 12119;
12351  else return 12120;
12352  else
12353  if (West == West::None) return 12124;
12354  else if (West == West::Low) return 12125;
12355  else return 12126;
12356  else
12357  if (South == South::None)
12358  if (Up)
12359  if (West == West::None) return 12130;
12360  else if (West == West::Low) return 12131;
12361  else return 12132;
12362  else
12363  if (West == West::None) return 12136;
12364  else if (West == West::Low) return 12137;
12365  else return 12138;
12366  else if (South == South::Low)
12367  if (Up)
12368  if (West == West::None) return 12142;
12369  else if (West == West::Low) return 12143;
12370  else return 12144;
12371  else
12372  if (West == West::None) return 12148;
12373  else if (West == West::Low) return 12149;
12374  else return 12150;
12375  else
12376  if (Up)
12377  if (West == West::None) return 12154;
12378  else if (West == West::Low) return 12155;
12379  else return 12156;
12380  else
12381  if (West == West::None) return 12160;
12382  else if (West == West::Low) return 12161;
12383  else return 12162;
12384  }
12386  enum East East(BlockState Block);
12387  enum North North(BlockState Block);
12388  enum South South(BlockState Block);
12389  bool Up(BlockState Block);
12390  enum West West(BlockState Block);
12391  }
12392  namespace MossyStoneBricks
12393  {
12395  {
12396  return 4496;
12397  }
12398  }
12399  namespace MovingPiston
12400  {
12401  enum class Type
12402  {
12403  Normal,
12404  Sticky
12405  };
12406  constexpr BlockState MovingPiston(const eBlockFace Facing, const enum Type Type)
12407  {
12409  if (Type == Type::Normal) return 1400;
12410  else return 1401;
12411  else if (Facing == eBlockFace::BLOCK_FACE_XP)
12412  if (Type == Type::Normal) return 1402;
12413  else return 1403;
12414  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
12415  if (Type == Type::Normal) return 1404;
12416  else return 1405;
12417  else if (Facing == eBlockFace::BLOCK_FACE_XM)
12418  if (Type == Type::Normal) return 1406;
12419  else return 1407;
12420  else if (Facing == eBlockFace::BLOCK_FACE_YP)
12421  if (Type == Type::Normal) return 1408;
12422  else return 1409;
12423  else
12424  if (Type == Type::Normal) return 1410;
12425  else return 1411;
12426  }
12429  enum Type Type(BlockState Block);
12430  }
12431  namespace MushroomStem
12432  {
12433  constexpr BlockState MushroomStem(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West)
12434  {
12435  if (Down)
12436  if (East)
12437  if (North)
12438  if (South)
12439  if (Up)
12440  if (West) return 4633;
12441  else return 4634;
12442  else
12443  if (West) return 4635;
12444  else return 4636;
12445  else
12446  if (Up)
12447  if (West) return 4637;
12448  else return 4638;
12449  else
12450  if (West) return 4639;
12451  else return 4640;
12452  else
12453  if (South)
12454  if (Up)
12455  if (West) return 4641;
12456  else return 4642;
12457  else
12458  if (West) return 4643;
12459  else return 4644;
12460  else
12461  if (Up)
12462  if (West) return 4645;
12463  else return 4646;
12464  else
12465  if (West) return 4647;
12466  else return 4648;
12467  else
12468  if (North)
12469  if (South)
12470  if (Up)
12471  if (West) return 4649;
12472  else return 4650;
12473  else
12474  if (West) return 4651;
12475  else return 4652;
12476  else
12477  if (Up)
12478  if (West) return 4653;
12479  else return 4654;
12480  else
12481  if (West) return 4655;
12482  else return 4656;
12483  else
12484  if (South)
12485  if (Up)
12486  if (West) return 4657;
12487  else return 4658;
12488  else
12489  if (West) return 4659;
12490  else return 4660;
12491  else
12492  if (Up)
12493  if (West) return 4661;
12494  else return 4662;
12495  else
12496  if (West) return 4663;
12497  else return 4664;
12498  else
12499  if (East)
12500  if (North)
12501  if (South)
12502  if (Up)
12503  if (West) return 4665;
12504  else return 4666;
12505  else
12506  if (West) return 4667;
12507  else return 4668;
12508  else
12509  if (Up)
12510  if (West) return 4669;
12511  else return 4670;
12512  else
12513  if (West) return 4671;
12514  else return 4672;
12515  else
12516  if (South)
12517  if (Up)
12518  if (West) return 4673;
12519  else return 4674;
12520  else
12521  if (West) return 4675;
12522  else return 4676;
12523  else
12524  if (Up)
12525  if (West) return 4677;
12526  else return 4678;
12527  else
12528  if (West) return 4679;
12529  else return 4680;
12530  else
12531  if (North)
12532  if (South)
12533  if (Up)
12534  if (West) return 4681;
12535  else return 4682;
12536  else
12537  if (West) return 4683;
12538  else return 4684;
12539  else
12540  if (Up)
12541  if (West) return 4685;
12542  else return 4686;
12543  else
12544  if (West) return 4687;
12545  else return 4688;
12546  else
12547  if (South)
12548  if (Up)
12549  if (West) return 4689;
12550  else return 4690;
12551  else
12552  if (West) return 4691;
12553  else return 4692;
12554  else
12555  if (Up)
12556  if (West) return 4693;
12557  else return 4694;
12558  else
12559  if (West) return 4695;
12560  else return 4696;
12561  }
12563  bool Down(BlockState Block);
12564  bool East(BlockState Block);
12565  bool North(BlockState Block);
12566  bool South(BlockState Block);
12567  bool Up(BlockState Block);
12568  bool West(BlockState Block);
12569  }
12570  namespace Mycelium
12571  {
12572  constexpr BlockState Mycelium(const bool Snowy)
12573  {
12574  if (Snowy) return 5012;
12575  else return 5013;
12576  }
12577  BlockState Mycelium();
12578  bool Snowy(BlockState Block);
12579  }
12580  namespace NetherBrickFence
12581  {
12582  constexpr BlockState NetherBrickFence(const bool East, const bool North, const bool South, const bool West)
12583  {
12584  if (East)
12585  if (North)
12586  if (South)
12587  if (West) return 5018;
12588  else return 5019;
12589  else
12590  if (West) return 5022;
12591  else return 5023;
12592  else
12593  if (South)
12594  if (West) return 5026;
12595  else return 5027;
12596  else
12597  if (West) return 5030;
12598  else return 5031;
12599  else
12600  if (North)
12601  if (South)
12602  if (West) return 5034;
12603  else return 5035;
12604  else
12605  if (West) return 5038;
12606  else return 5039;
12607  else
12608  if (South)
12609  if (West) return 5042;
12610  else return 5043;
12611  else
12612  if (West) return 5046;
12613  else return 5047;
12614  }
12616  bool East(BlockState Block);
12617  bool North(BlockState Block);
12618  bool South(BlockState Block);
12619  bool West(BlockState Block);
12620  }
12621  namespace NetherBrickSlab
12622  {
12623  enum class Type
12624  {
12625  Top,
12626  Bottom,
12627  Double
12628  };
12629  constexpr BlockState NetherBrickSlab(const enum Type Type)
12630  {
12631  if (Type == Type::Top) return 8385;
12632  else if (Type == Type::Bottom) return 8387;
12633  else return 8389;
12634  }
12636  enum Type Type(BlockState Block);
12637  }
12638  namespace NetherBrickStairs
12639  {
12640  enum class Half
12641  {
12642  Top,
12643  Bottom
12644  };
12645  enum class Shape
12646  {
12647  Straight,
12648  InnerLeft,
12649  InnerRight,
12650  OuterLeft,
12651  OuterRight
12652  };
12653  constexpr BlockState NetherBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
12654  {
12656  if (Half == Half::Top)
12657  if (Shape == Shape::Straight) return 5049;
12658  else if (Shape == Shape::InnerLeft) return 5051;
12659  else if (Shape == Shape::InnerRight) return 5053;
12660  else if (Shape == Shape::OuterLeft) return 5055;
12661  else return 5057;
12662  else
12663  if (Shape == Shape::Straight) return 5059;
12664  else if (Shape == Shape::InnerLeft) return 5061;
12665  else if (Shape == Shape::InnerRight) return 5063;
12666  else if (Shape == Shape::OuterLeft) return 5065;
12667  else return 5067;
12668  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
12669  if (Half == Half::Top)
12670  if (Shape == Shape::Straight) return 5069;
12671  else if (Shape == Shape::InnerLeft) return 5071;
12672  else if (Shape == Shape::InnerRight) return 5073;
12673  else if (Shape == Shape::OuterLeft) return 5075;
12674  else return 5077;
12675  else
12676  if (Shape == Shape::Straight) return 5079;
12677  else if (Shape == Shape::InnerLeft) return 5081;
12678  else if (Shape == Shape::InnerRight) return 5083;
12679  else if (Shape == Shape::OuterLeft) return 5085;
12680  else return 5087;
12681  else if (Facing == eBlockFace::BLOCK_FACE_XM)
12682  if (Half == Half::Top)
12683  if (Shape == Shape::Straight) return 5089;
12684  else if (Shape == Shape::InnerLeft) return 5091;
12685  else if (Shape == Shape::InnerRight) return 5093;
12686  else if (Shape == Shape::OuterLeft) return 5095;
12687  else return 5097;
12688  else
12689  if (Shape == Shape::Straight) return 5099;
12690  else if (Shape == Shape::InnerLeft) return 5101;
12691  else if (Shape == Shape::InnerRight) return 5103;
12692  else if (Shape == Shape::OuterLeft) return 5105;
12693  else return 5107;
12694  else
12695  if (Half == Half::Top)
12696  if (Shape == Shape::Straight) return 5109;
12697  else if (Shape == Shape::InnerLeft) return 5111;
12698  else if (Shape == Shape::InnerRight) return 5113;
12699  else if (Shape == Shape::OuterLeft) return 5115;
12700  else return 5117;
12701  else
12702  if (Shape == Shape::Straight) return 5119;
12703  else if (Shape == Shape::InnerLeft) return 5121;
12704  else if (Shape == Shape::InnerRight) return 5123;
12705  else if (Shape == Shape::OuterLeft) return 5125;
12706  else return 5127;
12707  }
12710  enum Half Half(BlockState Block);
12711  enum Shape Shape(BlockState Block);
12712  }
12713  namespace NetherBrickWall
12714  {
12715  enum class East
12716  {
12717  None,
12718  Low,
12719  Tall
12720  };
12721  enum class North
12722  {
12723  None,
12724  Low,
12725  Tall
12726  };
12727  enum class South
12728  {
12729  None,
12730  Low,
12731  Tall
12732  };
12733  enum class West
12734  {
12735  None,
12736  Low,
12737  Tall
12738  };
12739  constexpr BlockState NetherBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
12740  {
12741  if (East == East::None)
12742  if (North == North::None)
12743  if (South == South::None)
12744  if (Up)
12745  if (West == West::None) return 12814;
12746  else if (West == West::Low) return 12815;
12747  else return 12816;
12748  else
12749  if (West == West::None) return 12820;
12750  else if (West == West::Low) return 12821;
12751  else return 12822;
12752  else if (South == South::Low)
12753  if (Up)
12754  if (West == West::None) return 12826;
12755  else if (West == West::Low) return 12827;
12756  else return 12828;
12757  else
12758  if (West == West::None) return 12832;
12759  else if (West == West::Low) return 12833;
12760  else return 12834;
12761  else
12762  if (Up)
12763  if (West == West::None) return 12838;
12764  else if (West == West::Low) return 12839;
12765  else return 12840;
12766  else
12767  if (West == West::None) return 12844;
12768  else if (West == West::Low) return 12845;
12769  else return 12846;
12770  else if (North == North::Low)
12771  if (South == South::None)
12772  if (Up)
12773  if (West == West::None) return 12850;
12774  else if (West == West::Low) return 12851;
12775  else return 12852;
12776  else
12777  if (West == West::None) return 12856;
12778  else if (West == West::Low) return 12857;
12779  else return 12858;
12780  else if (South == South::Low)
12781  if (Up)
12782  if (West == West::None) return 12862;
12783  else if (West == West::Low) return 12863;
12784  else return 12864;
12785  else
12786  if (West == West::None) return 12868;
12787  else if (West == West::Low) return 12869;
12788  else return 12870;
12789  else
12790  if (Up)
12791  if (West == West::None) return 12874;
12792  else if (West == West::Low) return 12875;
12793  else return 12876;
12794  else
12795  if (West == West::None) return 12880;
12796  else if (West == West::Low) return 12881;
12797  else return 12882;
12798  else
12799  if (South == South::None)
12800  if (Up)
12801  if (West == West::None) return 12886;
12802  else if (West == West::Low) return 12887;
12803  else return 12888;
12804  else
12805  if (West == West::None) return 12892;
12806  else if (West == West::Low) return 12893;
12807  else return 12894;
12808  else if (South == South::Low)
12809  if (Up)
12810  if (West == West::None) return 12898;
12811  else if (West == West::Low) return 12899;
12812  else return 12900;
12813  else
12814  if (West == West::None) return 12904;
12815  else if (West == West::Low) return 12905;
12816  else return 12906;
12817  else
12818  if (Up)
12819  if (West == West::None) return 12910;
12820  else if (West == West::Low) return 12911;
12821  else return 12912;
12822  else
12823  if (West == West::None) return 12916;
12824  else if (West == West::Low) return 12917;
12825  else return 12918;
12826  else if (East == East::Low)
12827  if (North == North::None)
12828  if (South == South::None)
12829  if (Up)
12830  if (West == West::None) return 12922;
12831  else if (West == West::Low) return 12923;
12832  else return 12924;
12833  else
12834  if (West == West::None) return 12928;
12835  else if (West == West::Low) return 12929;
12836  else return 12930;
12837  else if (South == South::Low)
12838  if (Up)
12839  if (West == West::None) return 12934;
12840  else if (West == West::Low) return 12935;
12841  else return 12936;
12842  else
12843  if (West == West::None) return 12940;
12844  else if (West == West::Low) return 12941;
12845  else return 12942;
12846  else
12847  if (Up)
12848  if (West == West::None) return 12946;
12849  else if (West == West::Low) return 12947;
12850  else return 12948;
12851  else
12852  if (West == West::None) return 12952;
12853  else if (West == West::Low) return 12953;
12854  else return 12954;
12855  else if (North == North::Low)
12856  if (South == South::None)
12857  if (Up)
12858  if (West == West::None) return 12958;
12859  else if (West == West::Low) return 12959;
12860  else return 12960;
12861  else
12862  if (West == West::None) return 12964;
12863  else if (West == West::Low) return 12965;
12864  else return 12966;
12865  else if (South == South::Low)
12866  if (Up)
12867  if (West == West::None) return 12970;
12868  else if (West == West::Low) return 12971;
12869  else return 12972;
12870  else
12871  if (West == West::None) return 12976;
12872  else if (West == West::Low) return 12977;
12873  else return 12978;
12874  else
12875  if (Up)
12876  if (West == West::None) return 12982;
12877  else if (West == West::Low) return 12983;
12878  else return 12984;
12879  else
12880  if (West == West::None) return 12988;
12881  else if (West == West::Low) return 12989;
12882  else return 12990;
12883  else
12884  if (South == South::None)
12885  if (Up)
12886  if (West == West::None) return 12994;
12887  else if (West == West::Low) return 12995;
12888  else return 12996;
12889  else
12890  if (West == West::None) return 13000;
12891  else if (West == West::Low) return 13001;
12892  else return 13002;
12893  else if (South == South::Low)
12894  if (Up)
12895  if (West == West::None) return 13006;
12896  else if (West == West::Low) return 13007;
12897  else return 13008;
12898  else
12899  if (West == West::None) return 13012;
12900  else if (West == West::Low) return 13013;
12901  else return 13014;
12902  else
12903  if (Up)
12904  if (West == West::None) return 13018;
12905  else if (West == West::Low) return 13019;
12906  else return 13020;
12907  else
12908  if (West == West::None) return 13024;
12909  else if (West == West::Low) return 13025;
12910  else return 13026;
12911  else
12912  if (North == North::None)
12913  if (South == South::None)
12914  if (Up)
12915  if (West == West::None) return 13030;
12916  else if (West == West::Low) return 13031;
12917  else return 13032;
12918  else
12919  if (West == West::None) return 13036;
12920  else if (West == West::Low) return 13037;
12921  else return 13038;
12922  else if (South == South::Low)
12923  if (Up)
12924  if (West == West::None) return 13042;
12925  else if (West == West::Low) return 13043;
12926  else return 13044;
12927  else
12928  if (West == West::None) return 13048;
12929  else if (West == West::Low) return 13049;
12930  else return 13050;
12931  else
12932  if (Up)
12933  if (West == West::None) return 13054;
12934  else if (West == West::Low) return 13055;
12935  else return 13056;
12936  else
12937  if (West == West::None) return 13060;
12938  else if (West == West::Low) return 13061;
12939  else return 13062;
12940  else if (North == North::Low)
12941  if (South == South::None)
12942  if (Up)
12943  if (West == West::None) return 13066;
12944  else if (West == West::Low) return 13067;
12945  else return 13068;
12946  else
12947  if (West == West::None) return 13072;
12948  else if (West == West::Low) return 13073;
12949  else return 13074;
12950  else if (South == South::Low)
12951  if (Up)
12952  if (West == West::None) return 13078;
12953  else if (West == West::Low) return 13079;
12954  else return 13080;
12955  else
12956  if (West == West::None) return 13084;
12957  else if (West == West::Low) return 13085;
12958  else return 13086;
12959  else
12960  if (Up)
12961  if (West == West::None) return 13090;
12962  else if (West == West::Low) return 13091;
12963  else return 13092;
12964  else
12965  if (West == West::None) return 13096;
12966  else if (West == West::Low) return 13097;
12967  else return 13098;
12968  else
12969  if (South == South::None)
12970  if (Up)
12971  if (West == West::None) return 13102;
12972  else if (West == West::Low) return 13103;
12973  else return 13104;
12974  else
12975  if (West == West::None) return 13108;
12976  else if (West == West::Low) return 13109;
12977  else return 13110;
12978  else if (South == South::Low)
12979  if (Up)
12980  if (West == West::None) return 13114;
12981  else if (West == West::Low) return 13115;
12982  else return 13116;
12983  else
12984  if (West == West::None) return 13120;
12985  else if (West == West::Low) return 13121;
12986  else return 13122;
12987  else
12988  if (Up)
12989  if (West == West::None) return 13126;
12990  else if (West == West::Low) return 13127;
12991  else return 13128;
12992  else
12993  if (West == West::None) return 13132;
12994  else if (West == West::Low) return 13133;
12995  else return 13134;
12996  }
12998  enum East East(BlockState Block);
12999  enum North North(BlockState Block);
13000  enum South South(BlockState Block);
13001  bool Up(BlockState Block);
13002  enum West West(BlockState Block);
13003  }
13004  namespace NetherBricks
13005  {
13007  {
13008  return 5015;
13009  }
13010  }
13011  namespace NetherGoldOre
13012  {
13014  {
13015  return 72;
13016  }
13017  }
13018  namespace NetherPortal
13019  {
13020  enum class Axis
13021  {
13022  X,
13023  Z
13024  };
13025  constexpr BlockState NetherPortal(const enum Axis Axis)
13026  {
13027  if (Axis == Axis::X) return 4014;
13028  else return 4015;
13029  }
13031  enum Axis Axis(BlockState Block);
13032  }
13033  namespace NetherQuartzOre
13034  {
13036  {
13037  return 6727;
13038  }
13039  }
13040  namespace NetherSprouts
13041  {
13043  {
13044  return 14974;
13045  }
13046  }
13047  namespace NetherWart
13048  {
13049  constexpr BlockState NetherWart(const unsigned char Age)
13050  {
13051  if (Age == 0) return 5128;
13052  else if (Age == 1) return 5129;
13053  else if (Age == 2) return 5130;
13054  else return 5131;
13055  }
13057  unsigned char Age(BlockState Block);
13058  }
13059  namespace NetherWartBlock
13060  {
13062  {
13063  return 9254;
13064  }
13065  }
13066  namespace NetheriteBlock
13067  {
13069  {
13070  return 15826;
13071  }
13072  }
13073  namespace Netherrack
13074  {
13076  {
13077  return 3999;
13078  }
13079  }
13080  namespace NoteBlock
13081  {
13082  enum class Instrument
13083  {
13084  Harp,
13085  Basedrum,
13086  Snare,
13087  Hat,
13088  Bass,
13089  Flute,
13090  Bell,
13091  Guitar,
13092  Chime,
13093  Xylophone,
13094  IronXylophone,
13095  CowBell,
13096  Didgeridoo,
13097  Bit,
13098  Banjo,
13099  Pling
13100  };
13101  constexpr BlockState NoteBlock(const enum Instrument Instrument, const unsigned char Note, const bool Powered)
13102  {
13104  if (Note == 0)
13105  if (Powered) return 249;
13106  else return 250;
13107  else if (Note == 1)
13108  if (Powered) return 251;
13109  else return 252;
13110  else if (Note == 2)
13111  if (Powered) return 253;
13112  else return 254;
13113  else if (Note == 3)
13114  if (Powered) return 255;
13115  else return 256;
13116  else if (Note == 4)
13117  if (Powered) return 257;
13118  else return 258;
13119  else if (Note == 5)
13120  if (Powered) return 259;
13121  else return 260;
13122  else if (Note == 6)
13123  if (Powered) return 261;
13124  else return 262;
13125  else if (Note == 7)
13126  if (Powered) return 263;
13127  else return 264;
13128  else if (Note == 8)
13129  if (Powered) return 265;
13130  else return 266;
13131  else if (Note == 9)
13132  if (Powered) return 267;
13133  else return 268;
13134  else if (Note == 10)
13135  if (Powered) return 269;
13136  else return 270;
13137  else if (Note == 11)
13138  if (Powered) return 271;
13139  else return 272;
13140  else if (Note == 12)
13141  if (Powered) return 273;
13142  else return 274;
13143  else if (Note == 13)
13144  if (Powered) return 275;
13145  else return 276;
13146  else if (Note == 14)
13147  if (Powered) return 277;
13148  else return 278;
13149  else if (Note == 15)
13150  if (Powered) return 279;
13151  else return 280;
13152  else if (Note == 16)
13153  if (Powered) return 281;
13154  else return 282;
13155  else if (Note == 17)
13156  if (Powered) return 283;
13157  else return 284;
13158  else if (Note == 18)
13159  if (Powered) return 285;
13160  else return 286;
13161  else if (Note == 19)
13162  if (Powered) return 287;
13163  else return 288;
13164  else if (Note == 20)
13165  if (Powered) return 289;
13166  else return 290;
13167  else if (Note == 21)
13168  if (Powered) return 291;
13169  else return 292;
13170  else if (Note == 22)
13171  if (Powered) return 293;
13172  else return 294;
13173  else if (Note == 23)
13174  if (Powered) return 295;
13175  else return 296;
13176  else
13177  if (Powered) return 297;
13178  else return 298;
13179  else if (Instrument == Instrument::Basedrum)
13180  if (Note == 0)
13181  if (Powered) return 299;
13182  else return 300;
13183  else if (Note == 1)
13184  if (Powered) return 301;
13185  else return 302;
13186  else if (Note == 2)
13187  if (Powered) return 303;
13188  else return 304;
13189  else if (Note == 3)
13190  if (Powered) return 305;
13191  else return 306;
13192  else if (Note == 4)
13193  if (Powered) return 307;
13194  else return 308;
13195  else if (Note == 5)
13196  if (Powered) return 309;
13197  else return 310;
13198  else if (Note == 6)
13199  if (Powered) return 311;
13200  else return 312;
13201  else if (Note == 7)
13202  if (Powered) return 313;
13203  else return 314;
13204  else if (Note == 8)
13205  if (Powered) return 315;
13206  else return 316;
13207  else if (Note == 9)
13208  if (Powered) return 317;
13209  else return 318;
13210  else if (Note == 10)
13211  if (Powered) return 319;
13212  else return 320;
13213  else if (Note == 11)
13214  if (Powered) return 321;
13215  else return 322;
13216  else if (Note == 12)
13217  if (Powered) return 323;
13218  else return 324;
13219  else if (Note == 13)
13220  if (Powered) return 325;
13221  else return 326;
13222  else if (Note == 14)
13223  if (Powered) return 327;
13224  else return 328;
13225  else if (Note == 15)
13226  if (Powered) return 329;
13227  else return 330;
13228  else if (Note == 16)
13229  if (Powered) return 331;
13230  else return 332;
13231  else if (Note == 17)
13232  if (Powered) return 333;
13233  else return 334;
13234  else if (Note == 18)
13235  if (Powered) return 335;
13236  else return 336;
13237  else if (Note == 19)
13238  if (Powered) return 337;
13239  else return 338;
13240  else if (Note == 20)
13241  if (Powered) return 339;
13242  else return 340;
13243  else if (Note == 21)
13244  if (Powered) return 341;
13245  else return 342;
13246  else if (Note == 22)
13247  if (Powered) return 343;
13248  else return 344;
13249  else if (Note == 23)
13250  if (Powered) return 345;
13251  else return 346;
13252  else
13253  if (Powered) return 347;
13254  else return 348;
13255  else if (Instrument == Instrument::Snare)
13256  if (Note == 0)
13257  if (Powered) return 349;
13258  else return 350;
13259  else if (Note == 1)
13260  if (Powered) return 351;
13261  else return 352;
13262  else if (Note == 2)
13263  if (Powered) return 353;
13264  else return 354;
13265  else if (Note == 3)
13266  if (Powered) return 355;
13267  else return 356;
13268  else if (Note == 4)
13269  if (Powered) return 357;
13270  else return 358;
13271  else if (Note == 5)
13272  if (Powered) return 359;
13273  else return 360;
13274  else if (Note == 6)
13275  if (Powered) return 361;
13276  else return 362;
13277  else if (Note == 7)
13278  if (Powered) return 363;
13279  else return 364;
13280  else if (Note == 8)
13281  if (Powered) return 365;
13282  else return 366;
13283  else if (Note == 9)
13284  if (Powered) return 367;
13285  else return 368;
13286  else if (Note == 10)
13287  if (Powered) return 369;
13288  else return 370;
13289  else if (Note == 11)
13290  if (Powered) return 371;
13291  else return 372;
13292  else if (Note == 12)
13293  if (Powered) return 373;
13294  else return 374;
13295  else if (Note == 13)
13296  if (Powered) return 375;
13297  else return 376;
13298  else if (Note == 14)
13299  if (Powered) return 377;
13300  else return 378;
13301  else if (Note == 15)
13302  if (Powered) return 379;
13303  else return 380;
13304  else if (Note == 16)
13305  if (Powered) return 381;
13306  else return 382;
13307  else if (Note == 17)
13308  if (Powered) return 383;
13309  else return 384;
13310  else if (Note == 18)
13311  if (Powered) return 385;
13312  else return 386;
13313  else if (Note == 19)
13314  if (Powered) return 387;
13315  else return 388;
13316  else if (Note == 20)
13317  if (Powered) return 389;
13318  else return 390;
13319  else if (Note == 21)
13320  if (Powered) return 391;
13321  else return 392;
13322  else if (Note == 22)
13323  if (Powered) return 393;
13324  else return 394;
13325  else if (Note == 23)
13326  if (Powered) return 395;
13327  else return 396;
13328  else
13329  if (Powered) return 397;
13330  else return 398;
13331  else if (Instrument == Instrument::Hat)
13332  if (Note == 0)
13333  if (Powered) return 399;
13334  else return 400;
13335  else if (Note == 1)
13336  if (Powered) return 401;
13337  else return 402;
13338  else if (Note == 2)
13339  if (Powered) return 403;
13340  else return 404;
13341  else if (Note == 3)
13342  if (Powered) return 405;
13343  else return 406;
13344  else if (Note == 4)
13345  if (Powered) return 407;
13346  else return 408;
13347  else if (Note == 5)
13348  if (Powered) return 409;
13349  else return 410;
13350  else if (Note == 6)
13351  if (Powered) return 411;
13352  else return 412;
13353  else if (Note == 7)
13354  if (Powered) return 413;
13355  else return 414;
13356  else if (Note == 8)
13357  if (Powered) return 415;
13358  else return 416;
13359  else if (Note == 9)
13360  if (Powered) return 417;
13361  else return 418;
13362  else if (Note == 10)
13363  if (Powered) return 419;
13364  else return 420;
13365  else if (Note == 11)
13366  if (Powered) return 421;
13367  else return 422;
13368  else if (Note == 12)
13369  if (Powered) return 423;
13370  else return 424;
13371  else if (Note == 13)
13372  if (Powered) return 425;
13373  else return 426;
13374  else if (Note == 14)
13375  if (Powered) return 427;
13376  else return 428;
13377  else if (Note == 15)
13378  if (Powered) return 429;
13379  else return 430;
13380  else if (Note == 16)
13381  if (Powered) return 431;
13382  else return 432;
13383  else if (Note == 17)
13384  if (Powered) return 433;
13385  else return 434;
13386  else if (Note == 18)
13387  if (Powered) return 435;
13388  else return 436;
13389  else if (Note == 19)
13390  if (Powered) return 437;
13391  else return 438;
13392  else if (Note == 20)
13393  if (Powered) return 439;
13394  else return 440;
13395  else if (Note == 21)
13396  if (Powered) return 441;
13397  else return 442;
13398  else if (Note == 22)
13399  if (Powered) return 443;
13400  else return 444;
13401  else if (Note == 23)
13402  if (Powered) return 445;
13403  else return 446;
13404  else
13405  if (Powered) return 447;
13406  else return 448;
13407  else if (Instrument == Instrument::Bass)
13408  if (Note == 0)
13409  if (Powered) return 449;
13410  else return 450;
13411  else if (Note == 1)
13412  if (Powered) return 451;
13413  else return 452;
13414  else if (Note == 2)
13415  if (Powered) return 453;
13416  else return 454;
13417  else if (Note == 3)
13418  if (Powered) return 455;
13419  else return 456;
13420  else if (Note == 4)
13421  if (Powered) return 457;
13422  else return 458;
13423  else if (Note == 5)
13424  if (Powered) return 459;
13425  else return 460;
13426  else if (Note == 6)
13427  if (Powered) return 461;
13428  else return 462;
13429  else if (Note == 7)
13430  if (Powered) return 463;
13431  else return 464;
13432  else if (Note == 8)
13433  if (Powered) return 465;
13434  else return 466;
13435  else if (Note == 9)
13436  if (Powered) return 467;
13437  else return 468;
13438  else if (Note == 10)
13439  if (Powered) return 469;
13440  else return 470;
13441  else if (Note == 11)
13442  if (Powered) return 471;
13443  else return 472;
13444  else if (Note == 12)
13445  if (Powered) return 473;
13446  else return 474;
13447  else if (Note == 13)
13448  if (Powered) return 475;
13449  else return 476;
13450  else if (Note == 14)
13451  if (Powered) return 477;
13452  else return 478;
13453  else if (Note == 15)
13454  if (Powered) return 479;
13455  else return 480;
13456  else if (Note == 16)
13457  if (Powered) return 481;
13458  else return 482;
13459  else if (Note == 17)
13460  if (Powered) return 483;
13461  else return 484;
13462  else if (Note == 18)
13463  if (Powered) return 485;
13464  else return 486;
13465  else if (Note == 19)
13466  if (Powered) return 487;
13467  else return 488;
13468  else if (Note == 20)
13469  if (Powered) return 489;
13470  else return 490;
13471  else if (Note == 21)
13472  if (Powered) return 491;
13473  else return 492;
13474  else if (Note == 22)
13475  if (Powered) return 493;
13476  else return 494;
13477  else if (Note == 23)
13478  if (Powered) return 495;
13479  else return 496;
13480  else
13481  if (Powered) return 497;
13482  else return 498;
13483  else if (Instrument == Instrument::Flute)
13484  if (Note == 0)
13485  if (Powered) return 499;
13486  else return 500;
13487  else if (Note == 1)
13488  if (Powered) return 501;
13489  else return 502;
13490  else if (Note == 2)
13491  if (Powered) return 503;
13492  else return 504;
13493  else if (Note == 3)
13494  if (Powered) return 505;
13495  else return 506;
13496  else if (Note == 4)
13497  if (Powered) return 507;
13498  else return 508;
13499  else if (Note == 5)
13500  if (Powered) return 509;
13501  else return 510;
13502  else if (Note == 6)
13503  if (Powered) return 511;
13504  else return 512;
13505  else if (Note == 7)
13506  if (Powered) return 513;
13507  else return 514;
13508  else if (Note == 8)
13509  if (Powered) return 515;
13510  else return 516;
13511  else if (Note == 9)
13512  if (Powered) return 517;
13513  else return 518;
13514  else if (Note == 10)
13515  if (Powered) return 519;
13516  else return 520;
13517  else if (Note == 11)
13518  if (Powered) return 521;
13519  else return 522;
13520  else if (Note == 12)
13521  if (Powered) return 523;
13522  else return 524;
13523  else if (Note == 13)
13524  if (Powered) return 525;
13525  else return 526;
13526  else if (Note == 14)
13527  if (Powered) return 527;
13528  else return 528;
13529  else if (Note == 15)
13530  if (Powered) return 529;
13531  else return 530;
13532  else if (Note == 16)
13533  if (Powered) return 531;
13534  else return 532;
13535  else if (Note == 17)
13536  if (Powered) return 533;
13537  else return 534;
13538  else if (Note == 18)
13539  if (Powered) return 535;
13540  else return 536;
13541  else if (Note == 19)
13542  if (Powered) return 537;
13543  else return 538;
13544  else if (Note == 20)
13545  if (Powered) return 539;
13546  else return 540;
13547  else if (Note == 21)
13548  if (Powered) return 541;
13549  else return 542;
13550  else if (Note == 22)
13551  if (Powered) return 543;
13552  else return 544;
13553  else if (Note == 23)
13554  if (Powered) return 545;
13555  else return 546;
13556  else
13557  if (Powered) return 547;
13558  else return 548;
13559  else if (Instrument == Instrument::Bell)
13560  if (Note == 0)
13561  if (Powered) return 549;
13562  else return 550;
13563  else if (Note == 1)
13564  if (Powered) return 551;
13565  else return 552;
13566  else if (Note == 2)
13567  if (Powered) return 553;
13568  else return 554;
13569  else if (Note == 3)
13570  if (Powered) return 555;
13571  else return 556;
13572  else if (Note == 4)
13573  if (Powered) return 557;
13574  else return 558;
13575  else if (Note == 5)
13576  if (Powered) return 559;
13577  else return 560;
13578  else if (Note == 6)
13579  if (Powered) return 561;
13580  else return 562;
13581  else if (Note == 7)
13582  if (Powered) return 563;
13583  else return 564;
13584  else if (Note == 8)
13585  if (Powered) return 565;
13586  else return 566;
13587  else if (Note == 9)
13588  if (Powered) return 567;
13589  else return 568;
13590  else if (Note == 10)
13591  if (Powered) return 569;
13592  else return 570;
13593  else if (Note == 11)
13594  if (Powered) return 571;
13595  else return 572;
13596  else if (Note == 12)
13597  if (Powered) return 573;
13598  else return 574;
13599  else if (Note == 13)
13600  if (Powered) return 575;
13601  else return 576;
13602  else if (Note == 14)
13603  if (Powered) return 577;
13604  else return 578;
13605  else if (Note == 15)
13606  if (Powered) return 579;
13607  else return 580;
13608  else if (Note == 16)
13609  if (Powered) return 581;
13610  else return 582;
13611  else if (Note == 17)
13612  if (Powered) return 583;
13613  else return 584;
13614  else if (Note == 18)
13615  if (Powered) return 585;
13616  else return 586;
13617  else if (Note == 19)
13618  if (Powered) return 587;
13619  else return 588;
13620  else if (Note == 20)
13621  if (Powered) return 589;
13622  else return 590;
13623  else if (Note == 21)
13624  if (Powered) return 591;
13625  else return 592;
13626  else if (Note == 22)
13627  if (Powered) return 593;
13628  else return 594;
13629  else if (Note == 23)
13630  if (Powered) return 595;
13631  else return 596;
13632  else
13633  if (Powered) return 597;
13634  else return 598;
13635  else if (Instrument == Instrument::Guitar)
13636  if (Note == 0)
13637  if (Powered) return 599;
13638  else return 600;
13639  else if (Note == 1)
13640  if (Powered) return 601;
13641  else return 602;
13642  else if (Note == 2)
13643  if (Powered) return 603;
13644  else return 604;
13645  else if (Note == 3)
13646  if (Powered) return 605;
13647  else return 606;
13648  else if (Note == 4)
13649  if (Powered) return 607;
13650  else return 608;
13651  else if (Note == 5)
13652  if (Powered) return 609;
13653  else return 610;
13654  else if (Note == 6)
13655  if (Powered) return 611;
13656  else return 612;
13657  else if (Note == 7)
13658  if (Powered) return 613;
13659  else return 614;
13660  else if (Note == 8)
13661  if (Powered) return 615;
13662  else return 616;
13663  else if (Note == 9)
13664  if (Powered) return 617;
13665  else return 618;
13666  else if (Note == 10)
13667  if (Powered) return 619;
13668  else return 620;
13669  else if (Note == 11)
13670  if (Powered) return 621;
13671  else return 622;
13672  else if (Note == 12)
13673  if (Powered) return 623;
13674  else return 624;
13675  else if (Note == 13)
13676  if (Powered) return 625;
13677  else return 626;
13678  else if (Note == 14)
13679  if (Powered) return 627;
13680  else return 628;
13681  else if (Note == 15)
13682  if (Powered) return 629;
13683  else return 630;
13684  else if (Note == 16)
13685  if (Powered) return 631;
13686  else return 632;
13687  else if (Note == 17)
13688  if (Powered) return 633;
13689  else return 634;
13690  else if (Note == 18)
13691  if (Powered) return 635;
13692  else return 636;
13693  else if (Note == 19)
13694  if (Powered) return 637;
13695  else return 638;
13696  else if (Note == 20)
13697  if (Powered) return 639;
13698  else return 640;
13699  else if (Note == 21)
13700  if (Powered) return 641;
13701  else return 642;
13702  else if (Note == 22)
13703  if (Powered) return 643;
13704  else return 644;
13705  else if (Note == 23)
13706  if (Powered) return 645;
13707  else return 646;
13708  else
13709  if (Powered) return 647;
13710  else return 648;
13711  else if (Instrument == Instrument::Chime)
13712  if (Note == 0)
13713  if (Powered) return 649;
13714  else return 650;
13715  else if (Note == 1)
13716  if (Powered) return 651;
13717  else return 652;
13718  else if (Note == 2)
13719  if (Powered) return 653;
13720  else return 654;
13721  else if (Note == 3)
13722  if (Powered) return 655;
13723  else return 656;
13724  else if (Note == 4)
13725  if (Powered) return 657;
13726  else return 658;
13727  else if (Note == 5)
13728  if (Powered) return 659;
13729  else return 660;
13730  else if (Note == 6)
13731  if (Powered) return 661;
13732  else return 662;
13733  else if (Note == 7)
13734  if (Powered) return 663;
13735  else return 664;
13736  else if (Note == 8)
13737  if (Powered) return 665;
13738  else return 666;
13739  else if (Note == 9)
13740  if (Powered) return 667;
13741  else return 668;
13742  else if (Note == 10)
13743  if (Powered) return 669;
13744  else return 670;
13745  else if (Note == 11)
13746  if (Powered) return 671;
13747  else return 672;
13748  else if (Note == 12)
13749  if (Powered) return 673;
13750  else return 674;
13751  else if (Note == 13)
13752  if (Powered) return 675;
13753  else return 676;
13754  else if (Note == 14)
13755  if (Powered) return 677;
13756  else return 678;
13757  else if (Note == 15)
13758  if (Powered) return 679;
13759  else return 680;
13760  else if (Note == 16)
13761  if (Powered) return 681;
13762  else return 682;
13763  else if (Note == 17)
13764  if (Powered) return 683;
13765  else return 684;
13766  else if (Note == 18)
13767  if (Powered) return 685;
13768  else return 686;
13769  else if (Note == 19)
13770  if (Powered) return 687;
13771  else return 688;
13772  else if (Note == 20)
13773  if (Powered) return 689;
13774  else return 690;
13775  else if (Note == 21)
13776  if (Powered) return 691;
13777  else return 692;
13778  else if (Note == 22)
13779  if (Powered) return 693;
13780  else return 694;
13781  else if (Note == 23)
13782  if (Powered) return 695;
13783  else return 696;
13784  else
13785  if (Powered) return 697;
13786  else return 698;
13787  else if (Instrument == Instrument::Xylophone)
13788  if (Note == 0)
13789  if (Powered) return 699;
13790  else return 700;
13791  else if (Note == 1)
13792  if (Powered) return 701;
13793  else return 702;
13794  else if (Note == 2)
13795  if (Powered) return 703;
13796  else return 704;
13797  else if (Note == 3)
13798  if (Powered) return 705;
13799  else return 706;
13800  else if (Note == 4)
13801  if (Powered) return 707;
13802  else return 708;
13803  else if (Note == 5)
13804  if (Powered) return 709;
13805  else return 710;
13806  else if (Note == 6)
13807  if (Powered) return 711;
13808  else return 712;
13809  else if (Note == 7)
13810  if (Powered) return 713;
13811  else return 714;
13812  else if (Note == 8)
13813  if (Powered) return 715;
13814  else return 716;
13815  else if (Note == 9)
13816  if (Powered) return 717;
13817  else return 718;
13818  else if (Note == 10)
13819  if (Powered) return 719;
13820  else return 720;
13821  else if (Note == 11)
13822  if (Powered) return 721;
13823  else return 722;
13824  else if (Note == 12)
13825  if (Powered) return 723;
13826  else return 724;
13827  else if (Note == 13)
13828  if (Powered) return 725;
13829  else return 726;
13830  else if (Note == 14)
13831  if (Powered) return 727;
13832  else return 728;
13833  else if (Note == 15)
13834  if (Powered) return 729;
13835  else return 730;
13836  else if (Note == 16)
13837  if (Powered) return 731;
13838  else return 732;
13839  else if (Note == 17)
13840  if (Powered) return 733;
13841  else return 734;
13842  else if (Note == 18)
13843  if (Powered) return 735;
13844  else return 736;
13845  else if (Note == 19)
13846  if (Powered) return 737;
13847  else return 738;
13848  else if (Note == 20)
13849  if (Powered) return 739;
13850  else return 740;
13851  else if (Note == 21)
13852  if (Powered) return 741;
13853  else return 742;
13854  else if (Note == 22)
13855  if (Powered) return 743;
13856  else return 744;
13857  else if (Note == 23)
13858  if (Powered) return 745;
13859  else return 746;
13860  else
13861  if (Powered) return 747;
13862  else return 748;
13864  if (Note == 0)
13865  if (Powered) return 749;
13866  else return 750;
13867  else if (Note == 1)
13868  if (Powered) return 751;
13869  else return 752;
13870  else if (Note == 2)
13871  if (Powered) return 753;
13872  else return 754;
13873  else if (Note == 3)
13874  if (Powered) return 755;
13875  else return 756;
13876  else if (Note == 4)
13877  if (Powered) return 757;
13878  else return 758;
13879  else if (Note == 5)
13880  if (Powered) return 759;
13881  else return 760;
13882  else if (Note == 6)
13883  if (Powered) return 761;
13884  else return 762;
13885  else if (Note == 7)
13886  if (Powered) return 763;
13887  else return 764;
13888  else if (Note == 8)
13889  if (Powered) return 765;
13890  else return 766;
13891  else if (Note == 9)
13892  if (Powered) return 767;
13893  else return 768;
13894  else if (Note == 10)
13895  if (Powered) return 769;
13896  else return 770;
13897  else if (Note == 11)
13898  if (Powered) return 771;
13899  else return 772;
13900  else if (Note == 12)
13901  if (Powered) return 773;
13902  else return 774;
13903  else if (Note == 13)
13904  if (Powered) return 775;
13905  else return 776;
13906  else if (Note == 14)
13907  if (Powered) return 777;
13908  else return 778;
13909  else if (Note == 15)
13910  if (Powered) return 779;
13911  else return 780;
13912  else if (Note == 16)
13913  if (Powered) return 781;
13914  else return 782;
13915  else if (Note == 17)
13916  if (Powered) return 783;
13917  else return 784;
13918  else if (Note == 18)
13919  if (Powered) return 785;
13920  else return 786;
13921  else if (Note == 19)
13922  if (Powered) return 787;
13923  else return 788;
13924  else if (Note == 20)
13925  if (Powered) return 789;
13926  else return 790;
13927  else if (Note == 21)
13928  if (Powered) return 791;
13929  else return 792;
13930  else if (Note == 22)
13931  if (Powered) return 793;
13932  else return 794;
13933  else if (Note == 23)
13934  if (Powered) return 795;
13935  else return 796;
13936  else
13937  if (Powered) return 797;
13938  else return 798;
13939  else if (Instrument == Instrument::CowBell)
13940  if (Note == 0)
13941  if (Powered) return 799;
13942  else return 800;
13943  else if (Note == 1)
13944  if (Powered) return 801;
13945  else return 802;
13946  else if (Note == 2)
13947  if (Powered) return 803;
13948  else return 804;
13949  else if (Note == 3)
13950  if (Powered) return 805;
13951  else return 806;
13952  else if (Note == 4)
13953  if (Powered) return 807;
13954  else return 808;
13955  else if (Note == 5)
13956  if (Powered) return 809;
13957  else return 810;
13958  else if (Note == 6)
13959  if (Powered) return 811;
13960  else return 812;
13961  else if (Note == 7)
13962  if (Powered) return 813;
13963  else return 814;
13964  else if (Note == 8)
13965  if (Powered) return 815;
13966  else return 816;
13967  else if (Note == 9)
13968  if (Powered) return 817;
13969  else return 818;
13970  else if (Note == 10)
13971  if (Powered) return 819;
13972  else return 820;
13973  else if (Note == 11)
13974  if (Powered) return 821;
13975  else return 822;
13976  else if (Note == 12)
13977  if (Powered) return 823;
13978  else return 824;
13979  else if (Note == 13)
13980  if (Powered) return 825;
13981  else return 826;
13982  else if (Note == 14)
13983  if (Powered) return 827;
13984  else return 828;
13985  else if (Note == 15)
13986  if (Powered) return 829;
13987  else return 830;
13988  else if (Note == 16)
13989  if (Powered) return 831;
13990  else return 832;
13991  else if (Note == 17)
13992  if (Powered) return 833;
13993  else return 834;
13994  else if (Note == 18)
13995  if (Powered) return 835;
13996  else return 836;
13997  else if (Note == 19)
13998  if (Powered) return 837;
13999  else return 838;
14000  else if (Note == 20)
14001  if (Powered) return 839;
14002  else return 840;
14003  else if (Note == 21)
14004  if (Powered) return 841;
14005  else return 842;
14006  else if (Note == 22)
14007  if (Powered) return 843;
14008  else return 844;
14009  else if (Note == 23)
14010  if (Powered) return 845;
14011  else return 846;
14012  else
14013  if (Powered) return 847;
14014  else return 848;
14015  else if (Instrument == Instrument::Didgeridoo)
14016  if (Note == 0)
14017  if (Powered) return 849;
14018  else return 850;
14019  else if (Note == 1)
14020  if (Powered) return 851;
14021  else return 852;
14022  else if (Note == 2)
14023  if (Powered) return 853;
14024  else return 854;
14025  else if (Note == 3)
14026  if (Powered) return 855;
14027  else return 856;
14028  else if (Note == 4)
14029  if (Powered) return 857;
14030  else return 858;
14031  else if (Note == 5)
14032  if (Powered) return 859;
14033  else return 860;
14034  else if (Note == 6)
14035  if (Powered) return 861;
14036  else return 862;
14037  else if (Note == 7)
14038  if (Powered) return 863;
14039  else return 864;
14040  else if (Note == 8)
14041  if (Powered) return 865;
14042  else return 866;
14043  else if (Note == 9)
14044  if (Powered) return 867;
14045  else return 868;
14046  else if (Note == 10)
14047  if (Powered) return 869;
14048  else return 870;
14049  else if (Note == 11)
14050  if (Powered) return 871;
14051  else return 872;
14052  else if (Note == 12)
14053  if (Powered) return 873;
14054  else return 874;
14055  else if (Note == 13)
14056  if (Powered) return 875;
14057  else return 876;
14058  else if (Note == 14)
14059  if (Powered) return 877;
14060  else return 878;
14061  else if (Note == 15)
14062  if (Powered) return 879;
14063  else return 880;
14064  else if (Note == 16)
14065  if (Powered) return 881;
14066  else return 882;
14067  else if (Note == 17)
14068  if (Powered) return 883;
14069  else return 884;
14070  else if (Note == 18)
14071  if (Powered) return 885;
14072  else return 886;
14073  else if (Note == 19)
14074  if (Powered) return 887;
14075  else return 888;
14076  else if (Note == 20)
14077  if (Powered) return 889;
14078  else return 890;
14079  else if (Note == 21)
14080  if (Powered) return 891;
14081  else return 892;
14082  else if (Note == 22)
14083  if (Powered) return 893;
14084  else return 894;
14085  else if (Note == 23)
14086  if (Powered) return 895;
14087  else return 896;
14088  else
14089  if (Powered) return 897;
14090  else return 898;
14091  else if (Instrument == Instrument::Bit)
14092  if (Note == 0)
14093  if (Powered) return 899;
14094  else return 900;
14095  else if (Note == 1)
14096  if (Powered) return 901;
14097  else return 902;
14098  else if (Note == 2)
14099  if (Powered) return 903;
14100  else return 904;
14101  else if (Note == 3)
14102  if (Powered) return 905;
14103  else return 906;
14104  else if (Note == 4)
14105  if (Powered) return 907;
14106  else return 908;
14107  else if (Note == 5)
14108  if (Powered) return 909;
14109  else return 910;
14110  else if (Note == 6)
14111  if (Powered) return 911;
14112  else return 912;
14113  else if (Note == 7)
14114  if (Powered) return 913;
14115  else return 914;
14116  else if (Note == 8)
14117  if (Powered) return 915;
14118  else return 916;
14119  else if (Note == 9)
14120  if (Powered) return 917;
14121  else return 918;
14122  else if (Note == 10)
14123  if (Powered) return 919;
14124  else return 920;
14125  else if (Note == 11)
14126  if (Powered) return 921;
14127  else return 922;
14128  else if (Note == 12)
14129  if (Powered) return 923;
14130  else return 924;
14131  else if (Note == 13)
14132  if (Powered) return 925;
14133  else return 926;
14134  else if (Note == 14)
14135  if (Powered) return 927;
14136  else return 928;
14137  else if (Note == 15)
14138  if (Powered) return 929;
14139  else return 930;
14140  else if (Note == 16)
14141  if (Powered) return 931;
14142  else return 932;
14143  else if (Note == 17)
14144  if (Powered) return 933;
14145  else return 934;
14146  else if (Note == 18)
14147  if (Powered) return 935;
14148  else return 936;
14149  else if (Note == 19)
14150  if (Powered) return 937;
14151  else return 938;
14152  else if (Note == 20)
14153  if (Powered) return 939;
14154  else return 940;
14155  else if (Note == 21)
14156  if (Powered) return 941;
14157  else return 942;
14158  else if (Note == 22)
14159  if (Powered) return 943;
14160  else return 944;
14161  else if (Note == 23)
14162  if (Powered) return 945;
14163  else return 946;
14164  else
14165  if (Powered) return 947;
14166  else return 948;
14167  else if (Instrument == Instrument::Banjo)
14168  if (Note == 0)
14169  if (Powered) return 949;
14170  else return 950;
14171  else if (Note == 1)
14172  if (Powered) return 951;
14173  else return 952;
14174  else if (Note == 2)
14175  if (Powered) return 953;
14176  else return 954;
14177  else if (Note == 3)
14178  if (Powered) return 955;
14179  else return 956;
14180  else if (Note == 4)
14181  if (Powered) return 957;
14182  else return 958;
14183  else if (Note == 5)
14184  if (Powered) return 959;
14185  else return 960;
14186  else if (Note == 6)
14187  if (Powered) return 961;
14188  else return 962;
14189  else if (Note == 7)
14190  if (Powered) return 963;
14191  else return 964;
14192  else if (Note == 8)
14193  if (Powered) return 965;
14194  else return 966;
14195  else if (Note == 9)
14196  if (Powered) return 967;
14197  else return 968;
14198  else if (Note == 10)
14199  if (Powered) return 969;
14200  else return 970;
14201  else if (Note == 11)
14202  if (Powered) return 971;
14203  else return 972;
14204  else if (Note == 12)
14205  if (Powered) return 973;
14206  else return 974;
14207  else if (Note == 13)
14208  if (Powered) return 975;
14209  else return 976;
14210  else if (Note == 14)
14211  if (Powered) return 977;
14212  else return 978;
14213  else if (Note == 15)
14214  if (Powered) return 979;
14215  else return 980;
14216  else if (Note == 16)
14217  if (Powered) return 981;
14218  else return 982;
14219  else if (Note == 17)
14220  if (Powered) return 983;
14221  else return 984;
14222  else if (Note == 18)
14223  if (Powered) return 985;
14224  else return 986;
14225  else if (Note == 19)
14226  if (Powered) return 987;
14227  else return 988;
14228  else if (Note == 20)
14229  if (Powered) return 989;
14230  else return 990;
14231  else if (Note == 21)
14232  if (Powered) return 991;
14233  else return 992;
14234  else if (Note == 22)
14235  if (Powered) return 993;
14236  else return 994;
14237  else if (Note == 23)
14238  if (Powered) return 995;
14239  else return 996;
14240  else
14241  if (Powered) return 997;
14242  else return 998;
14243  else
14244  if (Note == 0)
14245  if (Powered) return 999;
14246  else return 1000;
14247  else if (Note == 1)
14248  if (Powered) return 1001;
14249  else return 1002;
14250  else if (Note == 2)
14251  if (Powered) return 1003;
14252  else return 1004;
14253  else if (Note == 3)
14254  if (Powered) return 1005;
14255  else return 1006;
14256  else if (Note == 4)
14257  if (Powered) return 1007;
14258  else return 1008;
14259  else if (Note == 5)
14260  if (Powered) return 1009;
14261  else return 1010;
14262  else if (Note == 6)
14263  if (Powered) return 1011;
14264  else return 1012;
14265  else if (Note == 7)
14266  if (Powered) return 1013;
14267  else return 1014;
14268  else if (Note == 8)
14269  if (Powered) return 1015;
14270  else return 1016;
14271  else if (Note == 9)
14272  if (Powered) return 1017;
14273  else return 1018;
14274  else if (Note == 10)
14275  if (Powered) return 1019;
14276  else return 1020;
14277  else if (Note == 11)
14278  if (Powered) return 1021;
14279  else return 1022;
14280  else if (Note == 12)
14281  if (Powered) return 1023;
14282  else return 1024;
14283  else if (Note == 13)
14284  if (Powered) return 1025;
14285  else return 1026;
14286  else if (Note == 14)
14287  if (Powered) return 1027;
14288  else return 1028;
14289  else if (Note == 15)
14290  if (Powered) return 1029;
14291  else return 1030;
14292  else if (Note == 16)
14293  if (Powered) return 1031;
14294  else return 1032;
14295  else if (Note == 17)
14296  if (Powered) return 1033;
14297  else return 1034;
14298  else if (Note == 18)
14299  if (Powered) return 1035;
14300  else return 1036;
14301  else if (Note == 19)
14302  if (Powered) return 1037;
14303  else return 1038;
14304  else if (Note == 20)
14305  if (Powered) return 1039;
14306  else return 1040;
14307  else if (Note == 21)
14308  if (Powered) return 1041;
14309  else return 1042;
14310  else if (Note == 22)
14311  if (Powered) return 1043;
14312  else return 1044;
14313  else if (Note == 23)
14314  if (Powered) return 1045;
14315  else return 1046;
14316  else
14317  if (Powered) return 1047;
14318  else return 1048;
14319  }
14322  unsigned char Note(BlockState Block);
14323  bool Powered(BlockState Block);
14324  }
14325  namespace OakButton
14326  {
14327  enum class Face
14328  {
14329  Floor,
14330  Wall,
14331  Ceiling
14332  };
14333  constexpr BlockState OakButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
14334  {
14335  if (Face == Face::Floor)
14337  if (Powered) return 6346;
14338  else return 6347;
14339  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
14340  if (Powered) return 6348;
14341  else return 6349;
14342  else if (Facing == eBlockFace::BLOCK_FACE_XM)
14343  if (Powered) return 6350;
14344  else return 6351;
14345  else
14346  if (Powered) return 6352;
14347  else return 6353;
14348  else if (Face == Face::Wall)
14350  if (Powered) return 6354;
14351  else return 6355;
14352  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
14353  if (Powered) return 6356;
14354  else return 6357;
14355  else if (Facing == eBlockFace::BLOCK_FACE_XM)
14356  if (Powered) return 6358;
14357  else return 6359;
14358  else
14359  if (Powered) return 6360;
14360  else return 6361;
14361  else
14363  if (Powered) return 6362;
14364  else return 6363;
14365  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
14366  if (Powered) return 6364;
14367  else return 6365;
14368  else if (Facing == eBlockFace::BLOCK_FACE_XM)
14369  if (Powered) return 6366;
14370  else return 6367;
14371  else
14372  if (Powered) return 6368;
14373  else return 6369;
14374  }
14376  enum Face Face(BlockState Block);
14378  bool Powered(BlockState Block);
14379  }
14380  namespace OakDoor
14381  {
14382  enum class Half
14383  {
14384  Upper,
14385  Lower
14386  };
14387  enum class Hinge
14388  {
14389  Left,
14390  Right
14391  };
14392  constexpr BlockState OakDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
14393  {
14395  if (Half == Half::Upper)
14396  if (Hinge == Hinge::Left)
14397  if (Open)
14398  if (Powered) return 3573;
14399  else return 3574;
14400  else
14401  if (Powered) return 3575;
14402  else return 3576;
14403  else
14404  if (Open)
14405  if (Powered) return 3577;
14406  else return 3578;
14407  else
14408  if (Powered) return 3579;
14409  else return 3580;
14410  else
14411  if (Hinge == Hinge::Left)
14412  if (Open)
14413  if (Powered) return 3581;
14414  else return 3582;
14415  else
14416  if (Powered) return 3583;
14417  else return 3584;
14418  else
14419  if (Open)
14420  if (Powered) return 3585;
14421  else return 3586;
14422  else
14423  if (Powered) return 3587;
14424  else return 3588;
14425  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
14426  if (Half == Half::Upper)
14427  if (Hinge == Hinge::Left)
14428  if (Open)
14429  if (Powered) return 3589;
14430  else return 3590;
14431  else
14432  if (Powered) return 3591;
14433  else return 3592;
14434  else
14435  if (Open)
14436  if (Powered) return 3593;
14437  else return 3594;
14438  else
14439  if (Powered) return 3595;
14440  else return 3596;
14441  else
14442  if (Hinge == Hinge::Left)
14443  if (Open)
14444  if (Powered) return 3597;
14445  else return 3598;
14446  else
14447  if (Powered) return 3599;
14448  else return 3600;
14449  else
14450  if (Open)
14451  if (Powered) return 3601;
14452  else return 3602;
14453  else
14454  if (Powered) return 3603;
14455  else return 3604;
14456  else if (Facing == eBlockFace::BLOCK_FACE_XM)
14457  if (Half == Half::Upper)
14458  if (Hinge == Hinge::Left)
14459  if (Open)
14460  if (Powered) return 3605;
14461  else return 3606;
14462  else
14463  if (Powered) return 3607;
14464  else return 3608;
14465  else
14466  if (Open)
14467  if (Powered) return 3609;
14468  else return 3610;
14469  else
14470  if (Powered) return 3611;
14471  else return 3612;
14472  else
14473  if (Hinge == Hinge::Left)
14474  if (Open)
14475  if (Powered) return 3613;
14476  else return 3614;
14477  else
14478  if (Powered) return 3615;
14479  else return 3616;
14480  else
14481  if (Open)
14482  if (Powered) return 3617;
14483  else return 3618;
14484  else
14485  if (Powered) return 3619;
14486  else return 3620;
14487  else
14488  if (Half == Half::Upper)
14489  if (Hinge == Hinge::Left)
14490  if (Open)
14491  if (Powered) return 3621;
14492  else return 3622;
14493  else
14494  if (Powered) return 3623;
14495  else return 3624;
14496  else
14497  if (Open)
14498  if (Powered) return 3625;
14499  else return 3626;
14500  else
14501  if (Powered) return 3627;
14502  else return 3628;
14503  else
14504  if (Hinge == Hinge::Left)
14505  if (Open)
14506  if (Powered) return 3629;
14507  else return 3630;
14508  else
14509  if (Powered) return 3631;
14510  else return 3632;
14511  else
14512  if (Open)
14513  if (Powered) return 3633;
14514  else return 3634;
14515  else
14516  if (Powered) return 3635;
14517  else return 3636;
14518  }
14519  BlockState OakDoor();
14521  enum Half Half(BlockState Block);
14522  enum Hinge Hinge(BlockState Block);
14523  bool Open(BlockState Block);
14524  bool Powered(BlockState Block);
14525  }
14526  namespace OakFence
14527  {
14528  constexpr BlockState OakFence(const bool East, const bool North, const bool South, const bool West)
14529  {
14530  if (East)
14531  if (North)
14532  if (South)
14533  if (West) return 3968;
14534  else return 3969;
14535  else
14536  if (West) return 3972;
14537  else return 3973;
14538  else
14539  if (South)
14540  if (West) return 3976;
14541  else return 3977;
14542  else
14543  if (West) return 3980;
14544  else return 3981;
14545  else
14546  if (North)
14547  if (South)
14548  if (West) return 3984;
14549  else return 3985;
14550  else
14551  if (West) return 3988;
14552  else return 3989;
14553  else
14554  if (South)
14555  if (West) return 3992;
14556  else return 3993;
14557  else
14558  if (West) return 3996;
14559  else return 3997;
14560  }
14561  BlockState OakFence();
14562  bool East(BlockState Block);
14563  bool North(BlockState Block);
14564  bool South(BlockState Block);
14565  bool West(BlockState Block);
14566  }
14567  namespace OakFenceGate
14568  {
14569  constexpr BlockState OakFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
14570  {
14572  if (InWall)
14573  if (Open)
14574  if (Powered) return 4820;
14575  else return 4821;
14576  else
14577  if (Powered) return 4822;
14578  else return 4823;
14579  else
14580  if (Open)
14581  if (Powered) return 4824;
14582  else return 4825;
14583  else
14584  if (Powered) return 4826;
14585  else return 4827;
14586  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
14587  if (InWall)
14588  if (Open)
14589  if (Powered) return 4828;
14590  else return 4829;
14591  else
14592  if (Powered) return 4830;
14593  else return 4831;
14594  else
14595  if (Open)
14596  if (Powered) return 4832;
14597  else return 4833;
14598  else
14599  if (Powered) return 4834;
14600  else return 4835;
14601  else if (Facing == eBlockFace::BLOCK_FACE_XM)
14602  if (InWall)
14603  if (Open)
14604  if (Powered) return 4836;
14605  else return 4837;
14606  else
14607  if (Powered) return 4838;
14608  else return 4839;
14609  else
14610  if (Open)
14611  if (Powered) return 4840;
14612  else return 4841;
14613  else
14614  if (Powered) return 4842;
14615  else return 4843;
14616  else
14617  if (InWall)
14618  if (Open)
14619  if (Powered) return 4844;
14620  else return 4845;
14621  else
14622  if (Powered) return 4846;
14623  else return 4847;
14624  else
14625  if (Open)
14626  if (Powered) return 4848;
14627  else return 4849;
14628  else
14629  if (Powered) return 4850;
14630  else return 4851;
14631  }
14634  bool InWall(BlockState Block);
14635  bool Open(BlockState Block);
14636  bool Powered(BlockState Block);
14637  }
14638  namespace OakLeaves
14639  {
14640  constexpr BlockState OakLeaves(const unsigned char Distance, const bool Persistent)
14641  {
14642  if (Distance == 1)
14643  if (Persistent) return 145;
14644  else return 146;
14645  else if (Distance == 2)
14646  if (Persistent) return 147;
14647  else return 148;
14648  else if (Distance == 3)
14649  if (Persistent) return 149;
14650  else return 150;
14651  else if (Distance == 4)
14652  if (Persistent) return 151;
14653  else return 152;
14654  else if (Distance == 5)
14655  if (Persistent) return 153;
14656  else return 154;
14657  else if (Distance == 6)
14658  if (Persistent) return 155;
14659  else return 156;
14660  else
14661  if (Persistent) return 157;
14662  else return 158;
14663  }
14665  unsigned char Distance(BlockState Block);
14666  bool Persistent(BlockState Block);
14667  }
14668  namespace OakLog
14669  {
14670  enum class Axis
14671  {
14672  X,
14673  Y,
14674  Z
14675  };
14676  constexpr BlockState OakLog(const enum Axis Axis)
14677  {
14678  if (Axis == Axis::X) return 73;
14679  else if (Axis == Axis::Y) return 74;
14680  else return 75;
14681  }
14682  BlockState OakLog();
14683  enum Axis Axis(BlockState Block);
14684  }
14685  namespace OakPlanks
14686  {
14687  constexpr BlockState OakPlanks()
14688  {
14689  return 15;
14690  }
14691  }
14692  namespace OakPressurePlate
14693  {
14694  constexpr BlockState OakPressurePlate(const bool Powered)
14695  {
14696  if (Powered) return 3873;
14697  else return 3874;
14698  }
14700  bool Powered(BlockState Block);
14701  }
14702  namespace OakSapling
14703  {
14704  constexpr BlockState OakSapling(const unsigned char Stage)
14705  {
14706  if (Stage == 0) return 21;
14707  else return 22;
14708  }
14710  unsigned char Stage(BlockState Block);
14711  }
14712  namespace OakSign
14713  {
14714  constexpr BlockState OakSign(const unsigned char Rotation)
14715  {
14716  if (Rotation == 0) return 3382;
14717  else if (Rotation == 1) return 3384;
14718  else if (Rotation == 2) return 3386;
14719  else if (Rotation == 3) return 3388;
14720  else if (Rotation == 4) return 3390;
14721  else if (Rotation == 5) return 3392;
14722  else if (Rotation == 6) return 3394;
14723  else if (Rotation == 7) return 3396;
14724  else if (Rotation == 8) return 3398;
14725  else if (Rotation == 9) return 3400;
14726  else if (Rotation == 10) return 3402;
14727  else if (Rotation == 11) return 3404;
14728  else if (Rotation == 12) return 3406;
14729  else if (Rotation == 13) return 3408;
14730  else if (Rotation == 14) return 3410;
14731  else return 3412;
14732  }
14733  BlockState OakSign();
14734  unsigned char Rotation(BlockState Block);
14735  }
14736  namespace OakSlab
14737  {
14738  enum class Type
14739  {
14740  Top,
14741  Bottom,
14742  Double
14743  };
14744  constexpr BlockState OakSlab(const enum Type Type)
14745  {
14746  if (Type == Type::Top) return 8301;
14747  else if (Type == Type::Bottom) return 8303;
14748  else return 8305;
14749  }
14750  BlockState OakSlab();
14751  enum Type Type(BlockState Block);
14752  }
14753  namespace OakStairs
14754  {
14755  enum class Half
14756  {
14757  Top,
14758  Bottom
14759  };
14760  enum class Shape
14761  {
14762  Straight,
14763  InnerLeft,
14764  InnerRight,
14765  OuterLeft,
14766  OuterRight
14767  };
14768  constexpr BlockState OakStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
14769  {
14771  if (Half == Half::Top)
14772  if (Shape == Shape::Straight) return 1955;
14773  else if (Shape == Shape::InnerLeft) return 1957;
14774  else if (Shape == Shape::InnerRight) return 1959;
14775  else if (Shape == Shape::OuterLeft) return 1961;
14776  else return 1963;
14777  else
14778  if (Shape == Shape::Straight) return 1965;
14779  else if (Shape == Shape::InnerLeft) return 1967;
14780  else if (Shape == Shape::InnerRight) return 1969;
14781  else if (Shape == Shape::OuterLeft) return 1971;
14782  else return 1973;
14783  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
14784  if (Half == Half::Top)
14785  if (Shape == Shape::Straight) return 1975;
14786  else if (Shape == Shape::InnerLeft) return 1977;
14787  else if (Shape == Shape::InnerRight) return 1979;
14788  else if (Shape == Shape::OuterLeft) return 1981;
14789  else return 1983;
14790  else
14791  if (Shape == Shape::Straight) return 1985;
14792  else if (Shape == Shape::InnerLeft) return 1987;
14793  else if (Shape == Shape::InnerRight) return 1989;
14794  else if (Shape == Shape::OuterLeft) return 1991;
14795  else return 1993;
14796  else if (Facing == eBlockFace::BLOCK_FACE_XM)
14797  if (Half == Half::Top)
14798  if (Shape == Shape::Straight) return 1995;
14799  else if (Shape == Shape::InnerLeft) return 1997;
14800  else if (Shape == Shape::InnerRight) return 1999;
14801  else if (Shape == Shape::OuterLeft) return 2001;
14802  else return 2003;
14803  else
14804  if (Shape == Shape::Straight) return 2005;
14805  else if (Shape == Shape::InnerLeft) return 2007;
14806  else if (Shape == Shape::InnerRight) return 2009;
14807  else if (Shape == Shape::OuterLeft) return 2011;
14808  else return 2013;
14809  else
14810  if (Half == Half::Top)
14811  if (Shape == Shape::Straight) return 2015;
14812  else if (Shape == Shape::InnerLeft) return 2017;
14813  else if (Shape == Shape::InnerRight) return 2019;
14814  else if (Shape == Shape::OuterLeft) return 2021;
14815  else return 2023;
14816  else
14817  if (Shape == Shape::Straight) return 2025;
14818  else if (Shape == Shape::InnerLeft) return 2027;
14819  else if (Shape == Shape::InnerRight) return 2029;
14820  else if (Shape == Shape::OuterLeft) return 2031;
14821  else return 2033;
14822  }
14825  enum Half Half(BlockState Block);
14826  enum Shape Shape(BlockState Block);
14827  }
14828  namespace OakTrapdoor
14829  {
14830  enum class Half
14831  {
14832  Top,
14833  Bottom
14834  };
14835  constexpr BlockState OakTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
14836  {
14838  if (Half == Half::Top)
14839  if (Open)
14840  if (Powered) return 4112;
14841  else return 4114;
14842  else
14843  if (Powered) return 4116;
14844  else return 4118;
14845  else
14846  if (Open)
14847  if (Powered) return 4120;
14848  else return 4122;
14849  else
14850  if (Powered) return 4124;
14851  else return 4126;
14852  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
14853  if (Half == Half::Top)
14854  if (Open)
14855  if (Powered) return 4128;
14856  else return 4130;
14857  else
14858  if (Powered) return 4132;
14859  else return 4134;
14860  else
14861  if (Open)
14862  if (Powered) return 4136;
14863  else return 4138;
14864  else
14865  if (Powered) return 4140;
14866  else return 4142;
14867  else if (Facing == eBlockFace::BLOCK_FACE_XM)
14868  if (Half == Half::Top)
14869  if (Open)
14870  if (Powered) return 4144;
14871  else return 4146;
14872  else
14873  if (Powered) return 4148;
14874  else return 4150;
14875  else
14876  if (Open)
14877  if (Powered) return 4152;
14878  else return 4154;
14879  else
14880  if (Powered) return 4156;
14881  else return 4158;
14882  else
14883  if (Half == Half::Top)
14884  if (Open)
14885  if (Powered) return 4160;
14886  else return 4162;
14887  else
14888  if (Powered) return 4164;
14889  else return 4166;
14890  else
14891  if (Open)
14892  if (Powered) return 4168;
14893  else return 4170;
14894  else
14895  if (Powered) return 4172;
14896  else return 4174;
14897  }
14900  enum Half Half(BlockState Block);
14901  bool Open(BlockState Block);
14902  bool Powered(BlockState Block);
14903  }
14904  namespace OakWallSign
14905  {
14907  {
14908  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3736;
14909  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3738;
14910  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3740;
14911  else return 3742;
14912  }
14915  }
14916  namespace OakWood
14917  {
14918  enum class Axis
14919  {
14920  X,
14921  Y,
14922  Z
14923  };
14924  constexpr BlockState OakWood(const enum Axis Axis)
14925  {
14926  if (Axis == Axis::X) return 109;
14927  else if (Axis == Axis::Y) return 110;
14928  else return 111;
14929  }
14930  BlockState OakWood();
14931  enum Axis Axis(BlockState Block);
14932  }
14933  namespace Observer
14934  {
14935  constexpr BlockState Observer(const eBlockFace Facing, const bool Powered)
14936  {
14938  if (Powered) return 9260;
14939  else return 9261;
14940  else if (Facing == eBlockFace::BLOCK_FACE_XP)
14941  if (Powered) return 9262;
14942  else return 9263;
14943  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
14944  if (Powered) return 9264;
14945  else return 9265;
14946  else if (Facing == eBlockFace::BLOCK_FACE_XM)
14947  if (Powered) return 9266;
14948  else return 9267;
14949  else if (Facing == eBlockFace::BLOCK_FACE_YP)
14950  if (Powered) return 9268;
14951  else return 9269;
14952  else
14953  if (Powered) return 9270;
14954  else return 9271;
14955  }
14956  BlockState Observer();
14958  bool Powered(BlockState Block);
14959  }
14960  namespace Obsidian
14961  {
14962  constexpr BlockState Obsidian()
14963  {
14964  return 1434;
14965  }
14966  }
14967  namespace OrangeBanner
14968  {
14969  constexpr BlockState OrangeBanner(const unsigned char Rotation)
14970  {
14971  if (Rotation == 0) return 7913;
14972  else if (Rotation == 1) return 7914;
14973  else if (Rotation == 2) return 7915;
14974  else if (Rotation == 3) return 7916;
14975  else if (Rotation == 4) return 7917;
14976  else if (Rotation == 5) return 7918;
14977  else if (Rotation == 6) return 7919;
14978  else if (Rotation == 7) return 7920;
14979  else if (Rotation == 8) return 7921;
14980  else if (Rotation == 9) return 7922;
14981  else if (Rotation == 10) return 7923;
14982  else if (Rotation == 11) return 7924;
14983  else if (Rotation == 12) return 7925;
14984  else if (Rotation == 13) return 7926;
14985  else if (Rotation == 14) return 7927;
14986  else return 7928;
14987  }
14989  unsigned char Rotation(BlockState Block);
14990  }
14991  namespace OrangeBed
14992  {
14993  enum class Part
14994  {
14995  Head,
14996  Foot
14997  };
14998  constexpr BlockState OrangeBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
14999  {
15001  if (Occupied)
15002  if (Part == Part::Head) return 1065;
15003  else return 1066;
15004  else
15005  if (Part == Part::Head) return 1067;
15006  else return 1068;
15007  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
15008  if (Occupied)
15009  if (Part == Part::Head) return 1069;
15010  else return 1070;
15011  else
15012  if (Part == Part::Head) return 1071;
15013  else return 1072;
15014  else if (Facing == eBlockFace::BLOCK_FACE_XM)
15015  if (Occupied)
15016  if (Part == Part::Head) return 1073;
15017  else return 1074;
15018  else
15019  if (Part == Part::Head) return 1075;
15020  else return 1076;
15021  else
15022  if (Occupied)
15023  if (Part == Part::Head) return 1077;
15024  else return 1078;
15025  else
15026  if (Part == Part::Head) return 1079;
15027  else return 1080;
15028  }
15031  bool Occupied(BlockState Block);
15032  enum Part Part(BlockState Block);
15033  }
15034  namespace OrangeCarpet
15035  {
15037  {
15038  return 7867;
15039  }
15040  }
15041  namespace OrangeConcrete
15042  {
15044  {
15045  return 9439;
15046  }
15047  }
15048  namespace OrangeConcretePowder
15049  {
15051  {
15052  return 9455;
15053  }
15054  }
15055  namespace OrangeGlazedTerracotta
15056  {
15058  {
15059  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9378;
15060  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9379;
15061  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9380;
15062  else return 9381;
15063  }
15066  }
15067  namespace OrangeShulkerBox
15068  {
15070  {
15071  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9284;
15072  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9285;
15073  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9286;
15074  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9287;
15075  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9288;
15076  else return 9289;
15077  }
15080  }
15081  namespace OrangeStainedGlass
15082  {
15084  {
15085  return 4096;
15086  }
15087  }
15088  namespace OrangeStainedGlassPane
15089  {
15090  constexpr BlockState OrangeStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
15091  {
15092  if (East)
15093  if (North)
15094  if (South)
15095  if (West) return 6897;
15096  else return 6898;
15097  else
15098  if (West) return 6901;
15099  else return 6902;
15100  else
15101  if (South)
15102  if (West) return 6905;
15103  else return 6906;
15104  else
15105  if (West) return 6909;
15106  else return 6910;
15107  else
15108  if (North)
15109  if (South)
15110  if (West) return 6913;
15111  else return 6914;
15112  else
15113  if (West) return 6917;
15114  else return 6918;
15115  else
15116  if (South)
15117  if (West) return 6921;
15118  else return 6922;
15119  else
15120  if (West) return 6925;
15121  else return 6926;
15122  }
15124  bool East(BlockState Block);
15125  bool North(BlockState Block);
15126  bool South(BlockState Block);
15127  bool West(BlockState Block);
15128  }
15129  namespace OrangeTerracotta
15130  {
15132  {
15133  return 6848;
15134  }
15135  }
15136  namespace OrangeTulip
15137  {
15139  {
15140  return 1418;
15141  }
15142  }
15143  namespace OrangeWallBanner
15144  {
15146  {
15147  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8157;
15148  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8158;
15149  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8159;
15150  else return 8160;
15151  }
15154  }
15155  namespace OrangeWool
15156  {
15158  {
15159  return 1385;
15160  }
15161  }
15162  namespace OxeyeDaisy
15163  {
15165  {
15166  return 1421;
15167  }
15168  }
15169  namespace PackedIce
15170  {
15171  constexpr BlockState PackedIce()
15172  {
15173  return 7884;
15174  }
15175  }
15176  namespace Peony
15177  {
15178  enum class Half
15179  {
15180  Upper,
15181  Lower
15182  };
15183  constexpr BlockState Peony(const enum Half Half)
15184  {
15185  if (Half == Half::Upper) return 7891;
15186  else return 7892;
15187  }
15188  BlockState Peony();
15189  enum Half Half(BlockState Block);
15190  }
15191  namespace PetrifiedOakSlab
15192  {
15193  enum class Type
15194  {
15195  Top,
15196  Bottom,
15197  Double
15198  };
15199  constexpr BlockState PetrifiedOakSlab(const enum Type Type)
15200  {
15201  if (Type == Type::Top) return 8361;
15202  else if (Type == Type::Bottom) return 8363;
15203  else return 8365;
15204  }
15206  enum Type Type(BlockState Block);
15207  }
15208  namespace PinkBanner
15209  {
15210  constexpr BlockState PinkBanner(const unsigned char Rotation)
15211  {
15212  if (Rotation == 0) return 7993;
15213  else if (Rotation == 1) return 7994;
15214  else if (Rotation == 2) return 7995;
15215  else if (Rotation == 3) return 7996;
15216  else if (Rotation == 4) return 7997;
15217  else if (Rotation == 5) return 7998;
15218  else if (Rotation == 6) return 7999;
15219  else if (Rotation == 7) return 8000;
15220  else if (Rotation == 8) return 8001;
15221  else if (Rotation == 9) return 8002;
15222  else if (Rotation == 10) return 8003;
15223  else if (Rotation == 11) return 8004;
15224  else if (Rotation == 12) return 8005;
15225  else if (Rotation == 13) return 8006;
15226  else if (Rotation == 14) return 8007;
15227  else return 8008;
15228  }
15230  unsigned char Rotation(BlockState Block);
15231  }
15232  namespace PinkBed
15233  {
15234  enum class Part
15235  {
15236  Head,
15237  Foot
15238  };
15239  constexpr BlockState PinkBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
15240  {
15242  if (Occupied)
15243  if (Part == Part::Head) return 1145;
15244  else return 1146;
15245  else
15246  if (Part == Part::Head) return 1147;
15247  else return 1148;
15248  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
15249  if (Occupied)
15250  if (Part == Part::Head) return 1149;
15251  else return 1150;
15252  else
15253  if (Part == Part::Head) return 1151;
15254  else return 1152;
15255  else if (Facing == eBlockFace::BLOCK_FACE_XM)
15256  if (Occupied)
15257  if (Part == Part::Head) return 1153;
15258  else return 1154;
15259  else
15260  if (Part == Part::Head) return 1155;
15261  else return 1156;
15262  else
15263  if (Occupied)
15264  if (Part == Part::Head) return 1157;
15265  else return 1158;
15266  else
15267  if (Part == Part::Head) return 1159;
15268  else return 1160;
15269  }
15270  BlockState PinkBed();
15272  bool Occupied(BlockState Block);
15273  enum Part Part(BlockState Block);
15274  }
15275  namespace PinkCarpet
15276  {
15278  {
15279  return 7872;
15280  }
15281  }
15282  namespace PinkConcrete
15283  {
15285  {
15286  return 9444;
15287  }
15288  }
15289  namespace PinkConcretePowder
15290  {
15292  {
15293  return 9460;
15294  }
15295  }
15296  namespace PinkGlazedTerracotta
15297  {
15299  {
15300  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9398;
15301  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9399;
15302  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9400;
15303  else return 9401;
15304  }
15307  }
15308  namespace PinkShulkerBox
15309  {
15311  {
15312  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9314;
15313  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9315;
15314  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9316;
15315  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9317;
15316  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9318;
15317  else return 9319;
15318  }
15321  }
15322  namespace PinkStainedGlass
15323  {
15325  {
15326  return 4101;
15327  }
15328  }
15329  namespace PinkStainedGlassPane
15330  {
15331  constexpr BlockState PinkStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
15332  {
15333  if (East)
15334  if (North)
15335  if (South)
15336  if (West) return 7057;
15337  else return 7058;
15338  else
15339  if (West) return 7061;
15340  else return 7062;
15341  else
15342  if (South)
15343  if (West) return 7065;
15344  else return 7066;
15345  else
15346  if (West) return 7069;
15347  else return 7070;
15348  else
15349  if (North)
15350  if (South)
15351  if (West) return 7073;
15352  else return 7074;
15353  else
15354  if (West) return 7077;
15355  else return 7078;
15356  else
15357  if (South)
15358  if (West) return 7081;
15359  else return 7082;
15360  else
15361  if (West) return 7085;
15362  else return 7086;
15363  }
15365  bool East(BlockState Block);
15366  bool North(BlockState Block);
15367  bool South(BlockState Block);
15368  bool West(BlockState Block);
15369  }
15370  namespace PinkTerracotta
15371  {
15373  {
15374  return 6853;
15375  }
15376  }
15377  namespace PinkTulip
15378  {
15379  constexpr BlockState PinkTulip()
15380  {
15381  return 1420;
15382  }
15383  }
15384  namespace PinkWallBanner
15385  {
15387  {
15388  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8177;
15389  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8178;
15390  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8179;
15391  else return 8180;
15392  }
15395  }
15396  namespace PinkWool
15397  {
15398  constexpr BlockState PinkWool()
15399  {
15400  return 1390;
15401  }
15402  }
15403  namespace Piston
15404  {
15405  constexpr BlockState Piston(const bool Extended, const eBlockFace Facing)
15406  {
15407  if (Extended)
15408  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1348;
15409  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1349;
15410  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1350;
15411  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1351;
15412  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1352;
15413  else return 1353;
15414  else
15415  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1354;
15416  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1355;
15417  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1356;
15418  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1357;
15419  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1358;
15420  else return 1359;
15421  }
15422  BlockState Piston();
15423  bool Extended(BlockState Block);
15425  }
15426  namespace PistonHead
15427  {
15428  enum class Type
15429  {
15430  Normal,
15431  Sticky
15432  };
15433  constexpr BlockState PistonHead(const eBlockFace Facing, const bool Short, const enum Type Type)
15434  {
15436  if (Short)
15437  if (Type == Type::Normal) return 1360;
15438  else return 1361;
15439  else
15440  if (Type == Type::Normal) return 1362;
15441  else return 1363;
15442  else if (Facing == eBlockFace::BLOCK_FACE_XP)
15443  if (Short)
15444  if (Type == Type::Normal) return 1364;
15445  else return 1365;
15446  else
15447  if (Type == Type::Normal) return 1366;
15448  else return 1367;
15449  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
15450  if (Short)
15451  if (Type == Type::Normal) return 1368;
15452  else return 1369;
15453  else
15454  if (Type == Type::Normal) return 1370;
15455  else return 1371;
15456  else if (Facing == eBlockFace::BLOCK_FACE_XM)
15457  if (Short)
15458  if (Type == Type::Normal) return 1372;
15459  else return 1373;
15460  else
15461  if (Type == Type::Normal) return 1374;
15462  else return 1375;
15463  else if (Facing == eBlockFace::BLOCK_FACE_YP)
15464  if (Short)
15465  if (Type == Type::Normal) return 1376;
15466  else return 1377;
15467  else
15468  if (Type == Type::Normal) return 1378;
15469  else return 1379;
15470  else
15471  if (Short)
15472  if (Type == Type::Normal) return 1380;
15473  else return 1381;
15474  else
15475  if (Type == Type::Normal) return 1382;
15476  else return 1383;
15477  }
15480  bool Short(BlockState Block);
15481  enum Type Type(BlockState Block);
15482  }
15483  namespace PlayerHead
15484  {
15485  constexpr BlockState PlayerHead(const unsigned char Rotation)
15486  {
15487  if (Rotation == 0) return 6550;
15488  else if (Rotation == 1) return 6551;
15489  else if (Rotation == 2) return 6552;
15490  else if (Rotation == 3) return 6553;
15491  else if (Rotation == 4) return 6554;
15492  else if (Rotation == 5) return 6555;
15493  else if (Rotation == 6) return 6556;
15494  else if (Rotation == 7) return 6557;
15495  else if (Rotation == 8) return 6558;
15496  else if (Rotation == 9) return 6559;
15497  else if (Rotation == 10) return 6560;
15498  else if (Rotation == 11) return 6561;
15499  else if (Rotation == 12) return 6562;
15500  else if (Rotation == 13) return 6563;
15501  else if (Rotation == 14) return 6564;
15502  else return 6565;
15503  }
15505  unsigned char Rotation(BlockState Block);
15506  }
15507  namespace PlayerWallHead
15508  {
15510  {
15511  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6566;
15512  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6567;
15513  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6568;
15514  else return 6569;
15515  }
15518  }
15519  namespace Podzol
15520  {
15521  constexpr BlockState Podzol(const bool Snowy)
15522  {
15523  if (Snowy) return 12;
15524  else return 13;
15525  }
15526  BlockState Podzol();
15527  bool Snowy(BlockState Block);
15528  }
15529  namespace PolishedAndesite
15530  {
15532  {
15533  return 7;
15534  }
15535  }
15536  namespace PolishedAndesiteSlab
15537  {
15538  enum class Type
15539  {
15540  Top,
15541  Bottom,
15542  Double
15543  };
15545  {
15546  if (Type == Type::Top) return 10856;
15547  else if (Type == Type::Bottom) return 10858;
15548  else return 10860;
15549  }
15551  enum Type Type(BlockState Block);
15552  }
15553  namespace PolishedAndesiteStairs
15554  {
15555  enum class Half
15556  {
15557  Top,
15558  Bottom
15559  };
15560  enum class Shape
15561  {
15562  Straight,
15563  InnerLeft,
15564  InnerRight,
15565  OuterLeft,
15566  OuterRight
15567  };
15568  constexpr BlockState PolishedAndesiteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
15569  {
15571  if (Half == Half::Top)
15572  if (Shape == Shape::Straight) return 10630;
15573  else if (Shape == Shape::InnerLeft) return 10632;
15574  else if (Shape == Shape::InnerRight) return 10634;
15575  else if (Shape == Shape::OuterLeft) return 10636;
15576  else return 10638;
15577  else
15578  if (Shape == Shape::Straight) return 10640;
15579  else if (Shape == Shape::InnerLeft) return 10642;
15580  else if (Shape == Shape::InnerRight) return 10644;
15581  else if (Shape == Shape::OuterLeft) return 10646;
15582  else return 10648;
15583  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
15584  if (Half == Half::Top)
15585  if (Shape == Shape::Straight) return 10650;
15586  else if (Shape == Shape::InnerLeft) return 10652;
15587  else if (Shape == Shape::InnerRight) return 10654;
15588  else if (Shape == Shape::OuterLeft) return 10656;
15589  else return 10658;
15590  else
15591  if (Shape == Shape::Straight) return 10660;
15592  else if (Shape == Shape::InnerLeft) return 10662;
15593  else if (Shape == Shape::InnerRight) return 10664;
15594  else if (Shape == Shape::OuterLeft) return 10666;
15595  else return 10668;
15596  else if (Facing == eBlockFace::BLOCK_FACE_XM)
15597  if (Half == Half::Top)
15598  if (Shape == Shape::Straight) return 10670;
15599  else if (Shape == Shape::InnerLeft) return 10672;
15600  else if (Shape == Shape::InnerRight) return 10674;
15601  else if (Shape == Shape::OuterLeft) return 10676;
15602  else return 10678;
15603  else
15604  if (Shape == Shape::Straight) return 10680;
15605  else if (Shape == Shape::InnerLeft) return 10682;
15606  else if (Shape == Shape::InnerRight) return 10684;
15607  else if (Shape == Shape::OuterLeft) return 10686;
15608  else return 10688;
15609  else
15610  if (Half == Half::Top)
15611  if (Shape == Shape::Straight) return 10690;
15612  else if (Shape == Shape::InnerLeft) return 10692;
15613  else if (Shape == Shape::InnerRight) return 10694;
15614  else if (Shape == Shape::OuterLeft) return 10696;
15615  else return 10698;
15616  else
15617  if (Shape == Shape::Straight) return 10700;
15618  else if (Shape == Shape::InnerLeft) return 10702;
15619  else if (Shape == Shape::InnerRight) return 10704;
15620  else if (Shape == Shape::OuterLeft) return 10706;
15621  else return 10708;
15622  }
15625  enum Half Half(BlockState Block);
15626  enum Shape Shape(BlockState Block);
15627  }
15628  namespace PolishedBasalt
15629  {
15630  enum class Axis
15631  {
15632  X,
15633  Y,
15634  Z
15635  };
15636  constexpr BlockState PolishedBasalt(const enum Axis Axis)
15637  {
15638  if (Axis == Axis::X) return 4005;
15639  else if (Axis == Axis::Y) return 4006;
15640  else return 4007;
15641  }
15643  enum Axis Axis(BlockState Block);
15644  }
15645  namespace PolishedBlackstone
15646  {
15648  {
15649  return 16250;
15650  }
15651  }
15652  namespace PolishedBlackstoneBrickSlab
15653  {
15654  enum class Type
15655  {
15656  Top,
15657  Bottom,
15658  Double
15659  };
15661  {
15662  if (Type == Type::Top) return 16255;
15663  else if (Type == Type::Bottom) return 16257;
15664  else return 16259;
15665  }
15667  enum Type Type(BlockState Block);
15668  }
15670  {
15671  enum class Half
15672  {
15673  Top,
15674  Bottom
15675  };
15676  enum class Shape
15677  {
15678  Straight,
15679  InnerLeft,
15680  InnerRight,
15681  OuterLeft,
15682  OuterRight
15683  };
15685  {
15687  if (Half == Half::Top)
15688  if (Shape == Shape::Straight) return 16261;
15689  else if (Shape == Shape::InnerLeft) return 16263;
15690  else if (Shape == Shape::InnerRight) return 16265;
15691  else if (Shape == Shape::OuterLeft) return 16267;
15692  else return 16269;
15693  else
15694  if (Shape == Shape::Straight) return 16271;
15695  else if (Shape == Shape::InnerLeft) return 16273;
15696  else if (Shape == Shape::InnerRight) return 16275;
15697  else if (Shape == Shape::OuterLeft) return 16277;
15698  else return 16279;
15699  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
15700  if (Half == Half::Top)
15701  if (Shape == Shape::Straight) return 16281;
15702  else if (Shape == Shape::InnerLeft) return 16283;
15703  else if (Shape == Shape::InnerRight) return 16285;
15704  else if (Shape == Shape::OuterLeft) return 16287;
15705  else return 16289;
15706  else
15707  if (Shape == Shape::Straight) return 16291;
15708  else if (Shape == Shape::InnerLeft) return 16293;
15709  else if (Shape == Shape::InnerRight) return 16295;
15710  else if (Shape == Shape::OuterLeft) return 16297;
15711  else return 16299;
15712  else if (Facing == eBlockFace::BLOCK_FACE_XM)
15713  if (Half == Half::Top)
15714  if (Shape == Shape::Straight) return 16301;
15715  else if (Shape == Shape::InnerLeft) return 16303;
15716  else if (Shape == Shape::InnerRight) return 16305;
15717  else if (Shape == Shape::OuterLeft) return 16307;
15718  else return 16309;
15719  else
15720  if (Shape == Shape::Straight) return 16311;
15721  else if (Shape == Shape::InnerLeft) return 16313;
15722  else if (Shape == Shape::InnerRight) return 16315;
15723  else if (Shape == Shape::OuterLeft) return 16317;
15724  else return 16319;
15725  else
15726  if (Half == Half::Top)
15727  if (Shape == Shape::Straight) return 16321;
15728  else if (Shape == Shape::InnerLeft) return 16323;
15729  else if (Shape == Shape::InnerRight) return 16325;
15730  else if (Shape == Shape::OuterLeft) return 16327;
15731  else return 16329;
15732  else
15733  if (Shape == Shape::Straight) return 16331;
15734  else if (Shape == Shape::InnerLeft) return 16333;
15735  else if (Shape == Shape::InnerRight) return 16335;
15736  else if (Shape == Shape::OuterLeft) return 16337;
15737  else return 16339;
15738  }
15741  enum Half Half(BlockState Block);
15742  enum Shape Shape(BlockState Block);
15743  }
15744  namespace PolishedBlackstoneBrickWall
15745  {
15746  enum class East
15747  {
15748  None,
15749  Low,
15750  Tall
15751  };
15752  enum class North
15753  {
15754  None,
15755  Low,
15756  Tall
15757  };
15758  enum class South
15759  {
15760  None,
15761  Low,
15762  Tall
15763  };
15764  enum class West
15765  {
15766  None,
15767  Low,
15768  Tall
15769  };
15770  constexpr BlockState PolishedBlackstoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
15771  {
15772  if (East == East::None)
15773  if (North == North::None)
15774  if (South == South::None)
15775  if (Up)
15776  if (West == West::None) return 16343;
15777  else if (West == West::Low) return 16344;
15778  else return 16345;
15779  else
15780  if (West == West::None) return 16349;
15781  else if (West == West::Low) return 16350;
15782  else return 16351;
15783  else if (South == South::Low)
15784  if (Up)
15785  if (West == West::None) return 16355;
15786  else if (West == West::Low) return 16356;
15787  else return 16357;
15788  else
15789  if (West == West::None) return 16361;
15790  else if (West == West::Low) return 16362;
15791  else return 16363;
15792  else
15793  if (Up)
15794  if (West == West::None) return 16367;
15795  else if (West == West::Low) return 16368;
15796  else return 16369;
15797  else
15798  if (West == West::None) return 16373;
15799  else if (West == West::Low) return 16374;
15800  else return 16375;
15801  else if (North == North::Low)
15802  if (South == South::None)
15803  if (Up)
15804  if (West == West::None) return 16379;
15805  else if (West == West::Low) return 16380;
15806  else return 16381;
15807  else
15808  if (West == West::None) return 16385;
15809  else if (West == West::Low) return 16386;
15810  else return 16387;
15811  else if (South == South::Low)
15812  if (Up)
15813  if (West == West::None) return 16391;
15814  else if (West == West::Low) return 16392;
15815  else return 16393;
15816  else
15817  if (West == West::None) return 16397;
15818  else if (West == West::Low) return 16398;
15819  else return 16399;
15820  else
15821  if (Up)
15822  if (West == West::None) return 16403;
15823  else if (West == West::Low) return 16404;
15824  else return 16405;
15825  else
15826  if (West == West::None) return 16409;
15827  else if (West == West::Low) return 16410;
15828  else return 16411;
15829  else
15830  if (South == South::None)
15831  if (Up)
15832  if (West == West::None) return 16415;
15833  else if (West == West::Low) return 16416;
15834  else return 16417;
15835  else
15836  if (West == West::None) return 16421;
15837  else if (West == West::Low) return 16422;
15838  else return 16423;
15839  else if (South == South::Low)
15840  if (Up)
15841  if (West == West::None) return 16427;
15842  else if (West == West::Low) return 16428;
15843  else return 16429;
15844  else
15845  if (West == West::None) return 16433;
15846  else if (West == West::Low) return 16434;
15847  else return 16435;
15848  else
15849  if (Up)
15850  if (West == West::None) return 16439;
15851  else if (West == West::Low) return 16440;
15852  else return 16441;
15853  else
15854  if (West == West::None) return 16445;
15855  else if (West == West::Low) return 16446;
15856  else return 16447;
15857  else if (East == East::Low)
15858  if (North == North::None)
15859  if (South == South::None)
15860  if (Up)
15861  if (West == West::None) return 16451;
15862  else if (West == West::Low) return 16452;
15863  else return 16453;
15864  else
15865  if (West == West::None) return 16457;
15866  else if (West == West::Low) return 16458;
15867  else return 16459;
15868  else if (South == South::Low)
15869  if (Up)
15870  if (West == West::None) return 16463;
15871  else if (West == West::Low) return 16464;
15872  else return 16465;
15873  else
15874  if (West == West::None) return 16469;
15875  else if (West == West::Low) return 16470;
15876  else return 16471;
15877  else
15878  if (Up)
15879  if (West == West::None) return 16475;
15880  else if (West == West::Low) return 16476;
15881  else return 16477;
15882  else
15883  if (West == West::None) return 16481;
15884  else if (West == West::Low) return 16482;
15885  else return 16483;
15886  else if (North == North::Low)
15887  if (South == South::None)
15888  if (Up)
15889  if (West == West::None) return 16487;
15890  else if (West == West::Low) return 16488;
15891  else return 16489;
15892  else
15893  if (West == West::None) return 16493;
15894  else if (West == West::Low) return 16494;
15895  else return 16495;
15896  else if (South == South::Low)
15897  if (Up)
15898  if (West == West::None) return 16499;
15899  else if (West == West::Low) return 16500;
15900  else return 16501;
15901  else
15902  if (West == West::None) return 16505;
15903  else if (West == West::Low) return 16506;
15904  else return 16507;
15905  else
15906  if (Up)
15907  if (West == West::None) return 16511;
15908  else if (West == West::Low) return 16512;
15909  else return 16513;
15910  else
15911  if (West == West::None) return 16517;
15912  else if (West == West::Low) return 16518;
15913  else return 16519;
15914  else
15915  if (South == South::None)
15916  if (Up)
15917  if (West == West::None) return 16523;
15918  else if (West == West::Low) return 16524;
15919  else return 16525;
15920  else
15921  if (West == West::None) return 16529;
15922  else if (West == West::Low) return 16530;
15923  else return 16531;
15924  else if (South == South::Low)
15925  if (Up)
15926  if (West == West::None) return 16535;
15927  else if (West == West::Low) return 16536;
15928  else return 16537;
15929  else
15930  if (West == West::None) return 16541;
15931  else if (West == West::Low) return 16542;
15932  else return 16543;
15933  else
15934  if (Up)
15935  if (West == West::None) return 16547;
15936  else if (West == West::Low) return 16548;
15937  else return 16549;
15938  else
15939  if (West == West::None) return 16553;
15940  else if (West == West::Low) return 16554;
15941  else return 16555;
15942  else
15943  if (North == North::None)
15944  if (South == South::None)
15945  if (Up)
15946  if (West == West::None) return 16559;
15947  else if (West == West::Low) return 16560;
15948  else return 16561;
15949  else
15950  if (West == West::None) return 16565;
15951  else if (West == West::Low) return 16566;
15952  else return 16567;
15953  else if (South == South::Low)
15954  if (Up)
15955  if (West == West::None) return 16571;
15956  else if (West == West::Low) return 16572;
15957  else return 16573;
15958  else
15959  if (West == West::None) return 16577;
15960  else if (West == West::Low) return 16578;
15961  else return 16579;
15962  else
15963  if (Up)
15964  if (West == West::None) return 16583;
15965  else if (West == West::Low) return 16584;
15966  else return 16585;
15967  else
15968  if (West == West::None) return 16589;
15969  else if (West == West::Low) return 16590;
15970  else return 16591;
15971  else if (North == North::Low)
15972  if (South == South::None)
15973  if (Up)
15974  if (West == West::None) return 16595;
15975  else if (West == West::Low) return 16596;
15976  else return 16597;
15977  else
15978  if (West == West::None) return 16601;
15979  else if (West == West::Low) return 16602;
15980  else return 16603;
15981  else if (South == South::Low)
15982  if (Up)
15983  if (West == West::None) return 16607;
15984  else if (West == West::Low) return 16608;
15985  else return 16609;
15986  else
15987  if (West == West::None) return 16613;
15988  else if (West == West::Low) return 16614;
15989  else return 16615;
15990  else
15991  if (Up)
15992  if (West == West::None) return 16619;
15993  else if (West == West::Low) return 16620;
15994  else return 16621;
15995  else
15996  if (West == West::None) return 16625;
15997  else if (West == West::Low) return 16626;
15998  else return 16627;
15999  else
16000  if (South == South::None)
16001  if (Up)
16002  if (West == West::None) return 16631;
16003  else if (West == West::Low) return 16632;
16004  else return 16633;
16005  else
16006  if (West == West::None) return 16637;
16007  else if (West == West::Low) return 16638;
16008  else return 16639;
16009  else if (South == South::Low)
16010  if (Up)
16011  if (West == West::None) return 16643;
16012  else if (West == West::Low) return 16644;
16013  else return 16645;
16014  else
16015  if (West == West::None) return 16649;
16016  else if (West == West::Low) return 16650;
16017  else return 16651;
16018  else
16019  if (Up)
16020  if (West == West::None) return 16655;
16021  else if (West == West::Low) return 16656;
16022  else return 16657;
16023  else
16024  if (West == West::None) return 16661;
16025  else if (West == West::Low) return 16662;
16026  else return 16663;
16027  }
16029  enum East East(BlockState Block);
16030  enum North North(BlockState Block);
16031  enum South South(BlockState Block);
16032  bool Up(BlockState Block);
16033  enum West West(BlockState Block);
16034  }
16035  namespace PolishedBlackstoneBricks
16036  {
16038  {
16039  return 16251;
16040  }
16041  }
16042  namespace PolishedBlackstoneButton
16043  {
16044  enum class Face
16045  {
16046  Floor,
16047  Wall,
16048  Ceiling
16049  };
16050  constexpr BlockState PolishedBlackstoneButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
16051  {
16052  if (Face == Face::Floor)
16054  if (Powered) return 16753;
16055  else return 16754;
16056  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
16057  if (Powered) return 16755;
16058  else return 16756;
16059  else if (Facing == eBlockFace::BLOCK_FACE_XM)
16060  if (Powered) return 16757;
16061  else return 16758;
16062  else
16063  if (Powered) return 16759;
16064  else return 16760;
16065  else if (Face == Face::Wall)
16067  if (Powered) return 16761;
16068  else return 16762;
16069  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
16070  if (Powered) return 16763;
16071  else return 16764;
16072  else if (Facing == eBlockFace::BLOCK_FACE_XM)
16073  if (Powered) return 16765;
16074  else return 16766;
16075  else
16076  if (Powered) return 16767;
16077  else return 16768;
16078  else
16080  if (Powered) return 16769;
16081  else return 16770;
16082  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
16083  if (Powered) return 16771;
16084  else return 16772;
16085  else if (Facing == eBlockFace::BLOCK_FACE_XM)
16086  if (Powered) return 16773;
16087  else return 16774;
16088  else
16089  if (Powered) return 16775;
16090  else return 16776;
16091  }
16093  enum Face Face(BlockState Block);
16095  bool Powered(BlockState Block);
16096  }
16098  {
16100  {
16101  if (Powered) return 16751;
16102  else return 16752;
16103  }
16105  bool Powered(BlockState Block);
16106  }
16107  namespace PolishedBlackstoneSlab
16108  {
16109  enum class Type
16110  {
16111  Top,
16112  Bottom,
16113  Double
16114  };
16116  {
16117  if (Type == Type::Top) return 16746;
16118  else if (Type == Type::Bottom) return 16748;
16119  else return 16750;
16120  }
16122  enum Type Type(BlockState Block);
16123  }
16124  namespace PolishedBlackstoneStairs
16125  {
16126  enum class Half
16127  {
16128  Top,
16129  Bottom
16130  };
16131  enum class Shape
16132  {
16133  Straight,
16134  InnerLeft,
16135  InnerRight,
16136  OuterLeft,
16137  OuterRight
16138  };
16139  constexpr BlockState PolishedBlackstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
16140  {
16142  if (Half == Half::Top)
16143  if (Shape == Shape::Straight) return 16666;
16144  else if (Shape == Shape::InnerLeft) return 16668;
16145  else if (Shape == Shape::InnerRight) return 16670;
16146  else if (Shape == Shape::OuterLeft) return 16672;
16147  else return 16674;
16148  else
16149  if (Shape == Shape::Straight) return 16676;
16150  else if (Shape == Shape::InnerLeft) return 16678;
16151  else if (Shape == Shape::InnerRight) return 16680;
16152  else if (Shape == Shape::OuterLeft) return 16682;
16153  else return 16684;
16154  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
16155  if (Half == Half::Top)
16156  if (Shape == Shape::Straight) return 16686;
16157  else if (Shape == Shape::InnerLeft) return 16688;
16158  else if (Shape == Shape::InnerRight) return 16690;
16159  else if (Shape == Shape::OuterLeft) return 16692;
16160  else return 16694;
16161  else
16162  if (Shape == Shape::Straight) return 16696;
16163  else if (Shape == Shape::InnerLeft) return 16698;
16164  else if (Shape == Shape::InnerRight) return 16700;
16165  else if (Shape == Shape::OuterLeft) return 16702;
16166  else return 16704;
16167  else if (Facing == eBlockFace::BLOCK_FACE_XM)
16168  if (Half == Half::Top)
16169  if (Shape == Shape::Straight) return 16706;
16170  else if (Shape == Shape::InnerLeft) return 16708;
16171  else if (Shape == Shape::InnerRight) return 16710;
16172  else if (Shape == Shape::OuterLeft) return 16712;
16173  else return 16714;
16174  else
16175  if (Shape == Shape::Straight) return 16716;
16176  else if (Shape == Shape::InnerLeft) return 16718;
16177  else if (Shape == Shape::InnerRight) return 16720;
16178  else if (Shape == Shape::OuterLeft) return 16722;
16179  else return 16724;
16180  else
16181  if (Half == Half::Top)
16182  if (Shape == Shape::Straight) return 16726;
16183  else if (Shape == Shape::InnerLeft) return 16728;
16184  else if (Shape == Shape::InnerRight) return 16730;
16185  else if (Shape == Shape::OuterLeft) return 16732;
16186  else return 16734;
16187  else
16188  if (Shape == Shape::Straight) return 16736;
16189  else if (Shape == Shape::InnerLeft) return 16738;
16190  else if (Shape == Shape::InnerRight) return 16740;
16191  else if (Shape == Shape::OuterLeft) return 16742;
16192  else return 16744;
16193  }
16196  enum Half Half(BlockState Block);
16197  enum Shape Shape(BlockState Block);
16198  }
16199  namespace PolishedBlackstoneWall
16200  {
16201  enum class East
16202  {
16203  None,
16204  Low,
16205  Tall
16206  };
16207  enum class North
16208  {
16209  None,
16210  Low,
16211  Tall
16212  };
16213  enum class South
16214  {
16215  None,
16216  Low,
16217  Tall
16218  };
16219  enum class West
16220  {
16221  None,
16222  Low,
16223  Tall
16224  };
16225  constexpr BlockState PolishedBlackstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
16226  {
16227  if (East == East::None)
16228  if (North == North::None)
16229  if (South == South::None)
16230  if (Up)
16231  if (West == West::None) return 16780;
16232  else if (West == West::Low) return 16781;
16233  else return 16782;
16234  else
16235  if (West == West::None) return 16786;
16236  else if (West == West::Low) return 16787;
16237  else return 16788;
16238  else if (South == South::Low)
16239  if (Up)
16240  if (West == West::None) return 16792;
16241  else if (West == West::Low) return 16793;
16242  else return 16794;
16243  else
16244  if (West == West::None) return 16798;
16245  else if (West == West::Low) return 16799;
16246  else return 16800;
16247  else
16248  if (Up)
16249  if (West == West::None) return 16804;
16250  else if (West == West::Low) return 16805;
16251  else return 16806;
16252  else
16253  if (West == West::None) return 16810;
16254  else if (West == West::Low) return 16811;
16255  else return 16812;
16256  else if (North == North::Low)
16257  if (South == South::None)
16258  if (Up)
16259  if (West == West::None) return 16816;
16260  else if (West == West::Low) return 16817;
16261  else return 16818;
16262  else
16263  if (West == West::None) return 16822;
16264  else if (West == West::Low) return 16823;
16265  else return 16824;
16266  else if (South == South::Low)
16267  if (Up)
16268  if (West == West::None) return 16828;
16269  else if (West == West::Low) return 16829;
16270  else return 16830;
16271  else
16272  if (West == West::None) return 16834;
16273  else if (West == West::Low) return 16835;
16274  else return 16836;
16275  else
16276  if (Up)
16277  if (West == West::None) return 16840;
16278  else if (West == West::Low) return 16841;
16279  else return 16842;
16280  else
16281  if (West == West::None) return 16846;
16282  else if (West == West::Low) return 16847;
16283  else return 16848;
16284  else
16285  if (South == South::None)
16286  if (Up)
16287  if (West == West::None) return 16852;
16288  else if (West == West::Low) return 16853;
16289  else return 16854;
16290  else
16291  if (West == West::None) return 16858;
16292  else if (West == West::Low) return 16859;
16293  else return 16860;
16294  else if (South == South::Low)
16295  if (Up)
16296  if (West == West::None) return 16864;
16297  else if (West == West::Low) return 16865;
16298  else return 16866;
16299  else
16300  if (West == West::None) return 16870;
16301  else if (West == West::Low) return 16871;
16302  else return 16872;
16303  else
16304  if (Up)
16305  if (West == West::None) return 16876;
16306  else if (West == West::Low) return 16877;
16307  else return 16878;
16308  else
16309  if (West == West::None) return 16882;
16310  else if (West == West::Low) return 16883;
16311  else return 16884;
16312  else if (East == East::Low)
16313  if (North == North::None)
16314  if (South == South::None)
16315  if (Up)
16316  if (West == West::None) return 16888;
16317  else if (West == West::Low) return 16889;
16318  else return 16890;
16319  else
16320  if (West == West::None) return 16894;
16321  else if (West == West::Low) return 16895;
16322  else return 16896;
16323  else if (South == South::Low)
16324  if (Up)
16325  if (West == West::None) return 16900;
16326  else if (West == West::Low) return 16901;
16327  else return 16902;
16328  else
16329  if (West == West::None) return 16906;
16330  else if (West == West::Low) return 16907;
16331  else return 16908;
16332  else
16333  if (Up)
16334  if (West == West::None) return 16912;
16335  else if (West == West::Low) return 16913;
16336  else return 16914;
16337  else
16338  if (West == West::None) return 16918;
16339  else if (West == West::Low) return 16919;
16340  else return 16920;
16341  else if (North == North::Low)
16342  if (South == South::None)
16343  if (Up)
16344  if (West == West::None) return 16924;
16345  else if (West == West::Low) return 16925;
16346  else return 16926;
16347  else
16348  if (West == West::None) return 16930;
16349  else if (West == West::Low) return 16931;
16350  else return 16932;
16351  else if (South == South::Low)
16352  if (Up)
16353  if (West == West::None) return 16936;
16354  else if (West == West::Low) return 16937;
16355  else return 16938;
16356  else
16357  if (West == West::None) return 16942;
16358  else if (West == West::Low) return 16943;
16359  else return 16944;
16360  else
16361  if (Up)
16362  if (West == West::None) return 16948;
16363  else if (West == West::Low) return 16949;
16364  else return 16950;
16365  else
16366  if (West == West::None) return 16954;
16367  else if (West == West::Low) return 16955;
16368  else return 16956;
16369  else
16370  if (South == South::None)
16371  if (Up)
16372  if (West == West::None) return 16960;
16373  else if (West == West::Low) return 16961;
16374  else return 16962;
16375  else
16376  if (West == West::None) return 16966;
16377  else if (West == West::Low) return 16967;
16378  else return 16968;
16379  else if (South == South::Low)
16380  if (Up)
16381  if (West == West::None) return 16972;
16382  else if (West == West::Low) return 16973;
16383  else return 16974;
16384  else
16385  if (West == West::None) return 16978;
16386  else if (West == West::Low) return 16979;
16387  else return 16980;
16388  else
16389  if (Up)
16390  if (West == West::None) return 16984;
16391  else if (West == West::Low) return 16985;
16392  else return 16986;
16393  else
16394  if (West == West::None) return 16990;
16395  else if (West == West::Low) return 16991;
16396  else return 16992;
16397  else
16398  if (North == North::None)
16399  if (South == South::None)
16400  if (Up)
16401  if (West == West::None) return 16996;
16402  else if (West == West::Low) return 16997;
16403  else return 16998;
16404  else
16405  if (West == West::None) return 17002;
16406  else if (West == West::Low) return 17003;
16407  else return 17004;
16408  else if (South == South::Low)
16409  if (Up)
16410  if (West == West::None) return 17008;
16411  else if (West == West::Low) return 17009;
16412  else return 17010;
16413  else
16414  if (West == West::None) return 17014;
16415  else if (West == West::Low) return 17015;
16416  else return 17016;
16417  else
16418  if (Up)
16419  if (West == West::None) return 17020;
16420  else if (West == West::Low) return 17021;
16421  else return 17022;
16422  else
16423  if (West == West::None) return 17026;
16424  else if (West == West::Low) return 17027;
16425  else return 17028;
16426  else if (North == North::Low)
16427  if (South == South::None)
16428  if (Up)
16429  if (West == West::None) return 17032;
16430  else if (West == West::Low) return 17033;
16431  else return 17034;
16432  else
16433  if (West == West::None) return 17038;
16434  else if (West == West::Low) return 17039;
16435  else return 17040;
16436  else if (South == South::Low)
16437  if (Up)
16438  if (West == West::None) return 17044;
16439  else if (West == West::Low) return 17045;
16440  else return 17046;
16441  else
16442  if (West == West::None) return 17050;
16443  else if (West == West::Low) return 17051;
16444  else return 17052;
16445  else
16446  if (Up)
16447  if (West == West::None) return 17056;
16448  else if (West == West::Low) return 17057;
16449  else return 17058;
16450  else
16451  if (West == West::None) return 17062;
16452  else if (West == West::Low) return 17063;
16453  else return 17064;
16454  else
16455  if (South == South::None)
16456  if (Up)
16457  if (West == West::None) return 17068;
16458  else if (West == West::Low) return 17069;
16459  else return 17070;
16460  else
16461  if (West == West::None) return 17074;
16462  else if (West == West::Low) return 17075;
16463  else return 17076;
16464  else if (South == South::Low)
16465  if (Up)
16466  if (West == West::None) return 17080;
16467  else if (West == West::Low) return 17081;
16468  else return 17082;
16469  else
16470  if (West == West::None) return 17086;
16471  else if (West == West::Low) return 17087;
16472  else return 17088;
16473  else
16474  if (Up)
16475  if (West == West::None) return 17092;
16476  else if (West == West::Low) return 17093;
16477  else return 17094;
16478  else
16479  if (West == West::None) return 17098;
16480  else if (West == West::Low) return 17099;
16481  else return 17100;
16482  }
16484  enum East East(BlockState Block);
16485  enum North North(BlockState Block);
16486  enum South South(BlockState Block);
16487  bool Up(BlockState Block);
16488  enum West West(BlockState Block);
16489  }
16490  namespace PolishedDiorite
16491  {
16493  {
16494  return 5;
16495  }
16496  }
16497  namespace PolishedDioriteSlab
16498  {
16499  enum class Type
16500  {
16501  Top,
16502  Bottom,
16503  Double
16504  };
16505  constexpr BlockState PolishedDioriteSlab(const enum Type Type)
16506  {
16507  if (Type == Type::Top) return 10808;
16508  else if (Type == Type::Bottom) return 10810;
16509  else return 10812;
16510  }
16512  enum Type Type(BlockState Block);
16513  }
16514  namespace PolishedDioriteStairs
16515  {
16516  enum class Half
16517  {
16518  Top,
16519  Bottom
16520  };
16521  enum class Shape
16522  {
16523  Straight,
16524  InnerLeft,
16525  InnerRight,
16526  OuterLeft,
16527  OuterRight
16528  };
16529  constexpr BlockState PolishedDioriteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
16530  {
16532  if (Half == Half::Top)
16533  if (Shape == Shape::Straight) return 9910;
16534  else if (Shape == Shape::InnerLeft) return 9912;
16535  else if (Shape == Shape::InnerRight) return 9914;
16536  else if (Shape == Shape::OuterLeft) return 9916;
16537  else return 9918;
16538  else
16539  if (Shape == Shape::Straight) return 9920;
16540  else if (Shape == Shape::InnerLeft) return 9922;
16541  else if (Shape == Shape::InnerRight) return 9924;
16542  else if (Shape == Shape::OuterLeft) return 9926;
16543  else return 9928;
16544  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
16545  if (Half == Half::Top)
16546  if (Shape == Shape::Straight) return 9930;
16547  else if (Shape == Shape::InnerLeft) return 9932;
16548  else if (Shape == Shape::InnerRight) return 9934;
16549  else if (Shape == Shape::OuterLeft) return 9936;
16550  else return 9938;
16551  else
16552  if (Shape == Shape::Straight) return 9940;
16553  else if (Shape == Shape::InnerLeft) return 9942;
16554  else if (Shape == Shape::InnerRight) return 9944;
16555  else if (Shape == Shape::OuterLeft) return 9946;
16556  else return 9948;
16557  else if (Facing == eBlockFace::BLOCK_FACE_XM)
16558  if (Half == Half::Top)
16559  if (Shape == Shape::Straight) return 9950;
16560  else if (Shape == Shape::InnerLeft) return 9952;
16561  else if (Shape == Shape::InnerRight) return 9954;
16562  else if (Shape == Shape::OuterLeft) return 9956;
16563  else return 9958;
16564  else
16565  if (Shape == Shape::Straight) return 9960;
16566  else if (Shape == Shape::InnerLeft) return 9962;
16567  else if (Shape == Shape::InnerRight) return 9964;
16568  else if (Shape == Shape::OuterLeft) return 9966;
16569  else return 9968;
16570  else
16571  if (Half == Half::Top)
16572  if (Shape == Shape::Straight) return 9970;
16573  else if (Shape == Shape::InnerLeft) return 9972;
16574  else if (Shape == Shape::InnerRight) return 9974;
16575  else if (Shape == Shape::OuterLeft) return 9976;
16576  else return 9978;
16577  else
16578  if (Shape == Shape::Straight) return 9980;
16579  else if (Shape == Shape::InnerLeft) return 9982;
16580  else if (Shape == Shape::InnerRight) return 9984;
16581  else if (Shape == Shape::OuterLeft) return 9986;
16582  else return 9988;
16583  }
16586  enum Half Half(BlockState Block);
16587  enum Shape Shape(BlockState Block);
16588  }
16589  namespace PolishedGranite
16590  {
16592  {
16593  return 3;
16594  }
16595  }
16596  namespace PolishedGraniteSlab
16597  {
16598  enum class Type
16599  {
16600  Top,
16601  Bottom,
16602  Double
16603  };
16604  constexpr BlockState PolishedGraniteSlab(const enum Type Type)
16605  {
16606  if (Type == Type::Top) return 10790;
16607  else if (Type == Type::Bottom) return 10792;
16608  else return 10794;
16609  }
16611  enum Type Type(BlockState Block);
16612  }
16613  namespace PolishedGraniteStairs
16614  {
16615  enum class Half
16616  {
16617  Top,
16618  Bottom
16619  };
16620  enum class Shape
16621  {
16622  Straight,
16623  InnerLeft,
16624  InnerRight,
16625  OuterLeft,
16626  OuterRight
16627  };
16628  constexpr BlockState PolishedGraniteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
16629  {
16631  if (Half == Half::Top)
16632  if (Shape == Shape::Straight) return 9670;
16633  else if (Shape == Shape::InnerLeft) return 9672;
16634  else if (Shape == Shape::InnerRight) return 9674;
16635  else if (Shape == Shape::OuterLeft) return 9676;
16636  else return 9678;
16637  else
16638  if (Shape == Shape::Straight) return 9680;
16639  else if (Shape == Shape::InnerLeft) return 9682;
16640  else if (Shape == Shape::InnerRight) return 9684;
16641  else if (Shape == Shape::OuterLeft) return 9686;
16642  else return 9688;
16643  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
16644  if (Half == Half::Top)
16645  if (Shape == Shape::Straight) return 9690;
16646  else if (Shape == Shape::InnerLeft) return 9692;
16647  else if (Shape == Shape::InnerRight) return 9694;
16648  else if (Shape == Shape::OuterLeft) return 9696;
16649  else return 9698;
16650  else
16651  if (Shape == Shape::Straight) return 9700;
16652  else if (Shape == Shape::InnerLeft) return 9702;
16653  else if (Shape == Shape::InnerRight) return 9704;
16654  else if (Shape == Shape::OuterLeft) return 9706;
16655  else return 9708;
16656  else if (Facing == eBlockFace::BLOCK_FACE_XM)
16657  if (Half == Half::Top)
16658  if (Shape == Shape::Straight) return 9710;
16659  else if (Shape == Shape::InnerLeft) return 9712;
16660  else if (Shape == Shape::InnerRight) return 9714;
16661  else if (Shape == Shape::OuterLeft) return 9716;
16662  else return 9718;
16663  else
16664  if (Shape == Shape::Straight) return 9720;
16665  else if (Shape == Shape::InnerLeft) return 9722;
16666  else if (Shape == Shape::InnerRight) return 9724;
16667  else if (Shape == Shape::OuterLeft) return 9726;
16668  else return 9728;
16669  else
16670  if (Half == Half::Top)
16671  if (Shape == Shape::Straight) return 9730;
16672  else if (Shape == Shape::InnerLeft) return 9732;
16673  else if (Shape == Shape::InnerRight) return 9734;
16674  else if (Shape == Shape::OuterLeft) return 9736;
16675  else return 9738;
16676  else
16677  if (Shape == Shape::Straight) return 9740;
16678  else if (Shape == Shape::InnerLeft) return 9742;
16679  else if (Shape == Shape::InnerRight) return 9744;
16680  else if (Shape == Shape::OuterLeft) return 9746;
16681  else return 9748;
16682  }
16685  enum Half Half(BlockState Block);
16686  enum Shape Shape(BlockState Block);
16687  }
16688  namespace Poppy
16689  {
16690  constexpr BlockState Poppy()
16691  {
16692  return 1413;
16693  }
16694  }
16695  namespace Potatoes
16696  {
16697  constexpr BlockState Potatoes(const unsigned char Age)
16698  {
16699  if (Age == 0) return 6338;
16700  else if (Age == 1) return 6339;
16701  else if (Age == 2) return 6340;
16702  else if (Age == 3) return 6341;
16703  else if (Age == 4) return 6342;
16704  else if (Age == 5) return 6343;
16705  else if (Age == 6) return 6344;
16706  else return 6345;
16707  }
16708  BlockState Potatoes();
16709  unsigned char Age(BlockState Block);
16710  }
16711  namespace PottedAcaciaSapling
16712  {
16714  {
16715  return 6310;
16716  }
16717  }
16718  namespace PottedAllium
16719  {
16721  {
16722  return 6316;
16723  }
16724  }
16725  namespace PottedAzureBluet
16726  {
16728  {
16729  return 6317;
16730  }
16731  }
16732  namespace PottedBamboo
16733  {
16735  {
16736  return 9664;
16737  }
16738  }
16739  namespace PottedBirchSapling
16740  {
16742  {
16743  return 6308;
16744  }
16745  }
16746  namespace PottedBlueOrchid
16747  {
16749  {
16750  return 6315;
16751  }
16752  }
16753  namespace PottedBrownMushroom
16754  {
16756  {
16757  return 6327;
16758  }
16759  }
16760  namespace PottedCactus
16761  {
16763  {
16764  return 6329;
16765  }
16766  }
16767  namespace PottedCornflower
16768  {
16770  {
16771  return 6323;
16772  }
16773  }
16774  namespace PottedCrimsonFungus
16775  {
16777  {
16778  return 15834;
16779  }
16780  }
16781  namespace PottedCrimsonRoots
16782  {
16784  {
16785  return 15836;
16786  }
16787  }
16788  namespace PottedDandelion
16789  {
16791  {
16792  return 6313;
16793  }
16794  }
16795  namespace PottedDarkOakSapling
16796  {
16798  {
16799  return 6311;
16800  }
16801  }
16802  namespace PottedDeadBush
16803  {
16805  {
16806  return 6328;
16807  }
16808  }
16809  namespace PottedFern
16810  {
16812  {
16813  return 6312;
16814  }
16815  }
16816  namespace PottedJungleSapling
16817  {
16819  {
16820  return 6309;
16821  }
16822  }
16823  namespace PottedLilyOfTheValley
16824  {
16826  {
16827  return 6324;
16828  }
16829  }
16830  namespace PottedOakSapling
16831  {
16833  {
16834  return 6306;
16835  }
16836  }
16837  namespace PottedOrangeTulip
16838  {
16840  {
16841  return 6319;
16842  }
16843  }
16844  namespace PottedOxeyeDaisy
16845  {
16847  {
16848  return 6322;
16849  }
16850  }
16851  namespace PottedPinkTulip
16852  {
16854  {
16855  return 6321;
16856  }
16857  }
16858  namespace PottedPoppy
16859  {
16861  {
16862  return 6314;
16863  }
16864  }
16865  namespace PottedRedMushroom
16866  {
16868  {
16869  return 6326;
16870  }
16871  }
16872  namespace PottedRedTulip
16873  {
16875  {
16876  return 6318;
16877  }
16878  }
16879  namespace PottedSpruceSapling
16880  {
16882  {
16883  return 6307;
16884  }
16885  }
16886  namespace PottedWarpedFungus
16887  {
16889  {
16890  return 15835;
16891  }
16892  }
16893  namespace PottedWarpedRoots
16894  {
16896  {
16897  return 15837;
16898  }
16899  }
16900  namespace PottedWhiteTulip
16901  {
16903  {
16904  return 6320;
16905  }
16906  }
16907  namespace PottedWitherRose
16908  {
16910  {
16911  return 6325;
16912  }
16913  }
16914  namespace PoweredRail
16915  {
16916  enum class Shape
16917  {
16918  NorthSouth,
16919  EastWest,
16920  AscendingEast,
16921  AscendingWest,
16924  };
16925  constexpr BlockState PoweredRail(const bool Powered, const enum Shape Shape)
16926  {
16927  if (Powered)
16928  if (Shape == Shape::NorthSouth) return 1305;
16929  else if (Shape == Shape::EastWest) return 1306;
16930  else if (Shape == Shape::AscendingEast) return 1307;
16931  else if (Shape == Shape::AscendingWest) return 1308;
16932  else if (Shape == Shape::AscendingNorth) return 1309;
16933  else return 1310;
16934  else
16935  if (Shape == Shape::NorthSouth) return 1311;
16936  else if (Shape == Shape::EastWest) return 1312;
16937  else if (Shape == Shape::AscendingEast) return 1313;
16938  else if (Shape == Shape::AscendingWest) return 1314;
16939  else if (Shape == Shape::AscendingNorth) return 1315;
16940  else return 1316;
16941  }
16943  bool Powered(BlockState Block);
16944  enum Shape Shape(BlockState Block);
16945  }
16946  namespace Prismarine
16947  {
16949  {
16950  return 7601;
16951  }
16952  }
16953  namespace PrismarineBrickSlab
16954  {
16955  enum class Type
16956  {
16957  Top,
16958  Bottom,
16959  Double
16960  };
16961  constexpr BlockState PrismarineBrickSlab(const enum Type Type)
16962  {
16963  if (Type == Type::Top) return 7851;
16964  else if (Type == Type::Bottom) return 7853;
16965  else return 7855;
16966  }
16968  enum Type Type(BlockState Block);
16969  }
16970  namespace PrismarineBrickStairs
16971  {
16972  enum class Half
16973  {
16974  Top,
16975  Bottom
16976  };
16977  enum class Shape
16978  {
16979  Straight,
16980  InnerLeft,
16981  InnerRight,
16982  OuterLeft,
16983  OuterRight
16984  };
16985  constexpr BlockState PrismarineBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
16986  {
16988  if (Half == Half::Top)
16989  if (Shape == Shape::Straight) return 7685;
16990  else if (Shape == Shape::InnerLeft) return 7687;
16991  else if (Shape == Shape::InnerRight) return 7689;
16992  else if (Shape == Shape::OuterLeft) return 7691;
16993  else return 7693;
16994  else
16995  if (Shape == Shape::Straight) return 7695;
16996  else if (Shape == Shape::InnerLeft) return 7697;
16997  else if (Shape == Shape::InnerRight) return 7699;
16998  else if (Shape == Shape::OuterLeft) return 7701;
16999  else return 7703;
17000  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
17001  if (Half == Half::Top)
17002  if (Shape == Shape::Straight) return 7705;
17003  else if (Shape == Shape::InnerLeft) return 7707;
17004  else if (Shape == Shape::InnerRight) return 7709;
17005  else if (Shape == Shape::OuterLeft) return 7711;
17006  else return 7713;
17007  else
17008  if (Shape == Shape::Straight) return 7715;
17009  else if (Shape == Shape::InnerLeft) return 7717;
17010  else if (Shape == Shape::InnerRight) return 7719;
17011  else if (Shape == Shape::OuterLeft) return 7721;
17012  else return 7723;
17013  else if (Facing == eBlockFace::BLOCK_FACE_XM)
17014  if (Half == Half::Top)
17015  if (Shape == Shape::Straight) return 7725;
17016  else if (Shape == Shape::InnerLeft) return 7727;
17017  else if (Shape == Shape::InnerRight) return 7729;
17018  else if (Shape == Shape::OuterLeft) return 7731;
17019  else return 7733;
17020  else
17021  if (Shape == Shape::Straight) return 7735;
17022  else if (Shape == Shape::InnerLeft) return 7737;
17023  else if (Shape == Shape::InnerRight) return 7739;
17024  else if (Shape == Shape::OuterLeft) return 7741;
17025  else return 7743;
17026  else
17027  if (Half == Half::Top)
17028  if (Shape == Shape::Straight) return 7745;
17029  else if (Shape == Shape::InnerLeft) return 7747;
17030  else if (Shape == Shape::InnerRight) return 7749;
17031  else if (Shape == Shape::OuterLeft) return 7751;
17032  else return 7753;
17033  else
17034  if (Shape == Shape::Straight) return 7755;
17035  else if (Shape == Shape::InnerLeft) return 7757;
17036  else if (Shape == Shape::InnerRight) return 7759;
17037  else if (Shape == Shape::OuterLeft) return 7761;
17038  else return 7763;
17039  }
17042  enum Half Half(BlockState Block);
17043  enum Shape Shape(BlockState Block);
17044  }
17045  namespace PrismarineBricks
17046  {
17048  {
17049  return 7602;
17050  }
17051  }
17052  namespace PrismarineSlab
17053  {
17054  enum class Type
17055  {
17056  Top,
17057  Bottom,
17058  Double
17059  };
17060  constexpr BlockState PrismarineSlab(const enum Type Type)
17061  {
17062  if (Type == Type::Top) return 7845;
17063  else if (Type == Type::Bottom) return 7847;
17064  else return 7849;
17065  }
17067  enum Type Type(BlockState Block);
17068  }
17069  namespace PrismarineStairs
17070  {
17071  enum class Half
17072  {
17073  Top,
17074  Bottom
17075  };
17076  enum class Shape
17077  {
17078  Straight,
17079  InnerLeft,
17080  InnerRight,
17081  OuterLeft,
17082  OuterRight
17083  };
17084  constexpr BlockState PrismarineStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
17085  {
17087  if (Half == Half::Top)
17088  if (Shape == Shape::Straight) return 7605;
17089  else if (Shape == Shape::InnerLeft) return 7607;
17090  else if (Shape == Shape::InnerRight) return 7609;
17091  else if (Shape == Shape::OuterLeft) return 7611;
17092  else return 7613;
17093  else
17094  if (Shape == Shape::Straight) return 7615;
17095  else if (Shape == Shape::InnerLeft) return 7617;
17096  else if (Shape == Shape::InnerRight) return 7619;
17097  else if (Shape == Shape::OuterLeft) return 7621;
17098  else return 7623;
17099  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
17100  if (Half == Half::Top)
17101  if (Shape == Shape::Straight) return 7625;
17102  else if (Shape == Shape::InnerLeft) return 7627;
17103  else if (Shape == Shape::InnerRight) return 7629;
17104  else if (Shape == Shape::OuterLeft) return 7631;
17105  else return 7633;
17106  else
17107  if (Shape == Shape::Straight) return 7635;
17108  else if (Shape == Shape::InnerLeft) return 7637;
17109  else if (Shape == Shape::InnerRight) return 7639;
17110  else if (Shape == Shape::OuterLeft) return 7641;
17111  else return 7643;
17112  else if (Facing == eBlockFace::BLOCK_FACE_XM)
17113  if (Half == Half::Top)
17114  if (Shape == Shape::Straight) return 7645;
17115  else if (Shape == Shape::InnerLeft) return 7647;
17116  else if (Shape == Shape::InnerRight) return 7649;
17117  else if (Shape == Shape::OuterLeft) return 7651;
17118  else return 7653;
17119  else
17120  if (Shape == Shape::Straight) return 7655;
17121  else if (Shape == Shape::InnerLeft) return 7657;
17122  else if (Shape == Shape::InnerRight) return 7659;
17123  else if (Shape == Shape::OuterLeft) return 7661;
17124  else return 7663;
17125  else
17126  if (Half == Half::Top)
17127  if (Shape == Shape::Straight) return 7665;
17128  else if (Shape == Shape::InnerLeft) return 7667;
17129  else if (Shape == Shape::InnerRight) return 7669;
17130  else if (Shape == Shape::OuterLeft) return 7671;
17131  else return 7673;
17132  else
17133  if (Shape == Shape::Straight) return 7675;
17134  else if (Shape == Shape::InnerLeft) return 7677;
17135  else if (Shape == Shape::InnerRight) return 7679;
17136  else if (Shape == Shape::OuterLeft) return 7681;
17137  else return 7683;
17138  }
17141  enum Half Half(BlockState Block);
17142  enum Shape Shape(BlockState Block);
17143  }
17144  namespace PrismarineWall
17145  {
17146  enum class East
17147  {
17148  None,
17149  Low,
17150  Tall
17151  };
17152  enum class North
17153  {
17154  None,
17155  Low,
17156  Tall
17157  };
17158  enum class South
17159  {
17160  None,
17161  Low,
17162  Tall
17163  };
17164  enum class West
17165  {
17166  None,
17167  Low,
17168  Tall
17169  };
17170  constexpr BlockState PrismarineWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
17171  {
17172  if (East == East::None)
17173  if (North == North::None)
17174  if (South == South::None)
17175  if (Up)
17176  if (West == West::None) return 11194;
17177  else if (West == West::Low) return 11195;
17178  else return 11196;
17179  else
17180  if (West == West::None) return 11200;
17181  else if (West == West::Low) return 11201;
17182  else return 11202;
17183  else if (South == South::Low)
17184  if (Up)
17185  if (West == West::None) return 11206;
17186  else if (West == West::Low) return 11207;
17187  else return 11208;
17188  else
17189  if (West == West::None) return 11212;
17190  else if (West == West::Low) return 11213;
17191  else return 11214;
17192  else
17193  if (Up)
17194  if (West == West::None) return 11218;
17195  else if (West == West::Low) return 11219;
17196  else return 11220;
17197  else
17198  if (West == West::None) return 11224;
17199  else if (West == West::Low) return 11225;
17200  else return 11226;
17201  else if (North == North::Low)
17202  if (South == South::None)
17203  if (Up)
17204  if (West == West::None) return 11230;
17205  else if (West == West::Low) return 11231;
17206  else return 11232;
17207  else
17208  if (West == West::None) return 11236;
17209  else if (West == West::Low) return 11237;
17210  else return 11238;
17211  else if (South == South::Low)
17212  if (Up)
17213  if (West == West::None) return 11242;
17214  else if (West == West::Low) return 11243;
17215  else return 11244;
17216  else
17217  if (West == West::None) return 11248;
17218  else if (West == West::Low) return 11249;
17219  else return 11250;
17220  else
17221  if (Up)
17222  if (West == West::None) return 11254;
17223  else if (West == West::Low) return 11255;
17224  else return 11256;
17225  else
17226  if (West == West::None) return 11260;
17227  else if (West == West::Low) return 11261;
17228  else return 11262;
17229  else
17230  if (South == South::None)
17231  if (Up)
17232  if (West == West::None) return 11266;
17233  else if (West == West::Low) return 11267;
17234  else return 11268;
17235  else
17236  if (West == West::None) return 11272;
17237  else if (West == West::Low) return 11273;
17238  else return 11274;
17239  else if (South == South::Low)
17240  if (Up)
17241  if (West == West::None) return 11278;
17242  else if (West == West::Low) return 11279;
17243  else return 11280;
17244  else
17245  if (West == West::None) return 11284;
17246  else if (West == West::Low) return 11285;
17247  else return 11286;
17248  else
17249  if (Up)
17250  if (West == West::None) return 11290;
17251  else if (West == West::Low) return 11291;
17252  else return 11292;
17253  else
17254  if (West == West::None) return 11296;
17255  else if (West == West::Low) return 11297;
17256  else return 11298;
17257  else if (East == East::Low)
17258  if (North == North::None)
17259  if (South == South::None)
17260  if (Up)
17261  if (West == West::None) return 11302;
17262  else if (West == West::Low) return 11303;
17263  else return 11304;
17264  else
17265  if (West == West::None) return 11308;
17266  else if (West == West::Low) return 11309;
17267  else return 11310;
17268  else if (South == South::Low)
17269  if (Up)
17270  if (West == West::None) return 11314;
17271  else if (West == West::Low) return 11315;
17272  else return 11316;
17273  else
17274  if (West == West::None) return 11320;
17275  else if (West == West::Low) return 11321;
17276  else return 11322;
17277  else
17278  if (Up)
17279  if (West == West::None) return 11326;
17280  else if (West == West::Low) return 11327;
17281  else return 11328;
17282  else
17283  if (West == West::None) return 11332;
17284  else if (West == West::Low) return 11333;
17285  else return 11334;
17286  else if (North == North::Low)
17287  if (South == South::None)
17288  if (Up)
17289  if (West == West::None) return 11338;
17290  else if (West == West::Low) return 11339;
17291  else return 11340;
17292  else
17293  if (West == West::None) return 11344;
17294  else if (West == West::Low) return 11345;
17295  else return 11346;
17296  else if (South == South::Low)
17297  if (Up)
17298  if (West == West::None) return 11350;
17299  else if (West == West::Low) return 11351;
17300  else return 11352;
17301  else
17302  if (West == West::None) return 11356;
17303  else if (West == West::Low) return 11357;
17304  else return 11358;
17305  else
17306  if (Up)
17307  if (West == West::None) return 11362;
17308  else if (West == West::Low) return 11363;
17309  else return 11364;
17310  else
17311  if (West == West::None) return 11368;
17312  else if (West == West::Low) return 11369;
17313  else return 11370;
17314  else
17315  if (South == South::None)
17316  if (Up)
17317  if (West == West::None) return 11374;
17318  else if (West == West::Low) return 11375;
17319  else return 11376;
17320  else
17321  if (West == West::None) return 11380;
17322  else if (West == West::Low) return 11381;
17323  else return 11382;
17324  else if (South == South::Low)
17325  if (Up)
17326  if (West == West::None) return 11386;
17327  else if (West == West::Low) return 11387;
17328  else return 11388;
17329  else
17330  if (West == West::None) return 11392;
17331  else if (West == West::Low) return 11393;
17332  else return 11394;
17333  else
17334  if (Up)
17335  if (West == West::None) return 11398;
17336  else if (West == West::Low) return 11399;
17337  else return 11400;
17338  else
17339  if (West == West::None) return 11404;
17340  else if (West == West::Low) return 11405;
17341  else return 11406;
17342  else
17343  if (North == North::None)
17344  if (South == South::None)
17345  if (Up)
17346  if (West == West::None) return 11410;
17347  else if (West == West::Low) return 11411;
17348  else return 11412;
17349  else
17350  if (West == West::None) return 11416;
17351  else if (West == West::Low) return 11417;
17352  else return 11418;
17353  else if (South == South::Low)
17354  if (Up)
17355  if (West == West::None) return 11422;
17356  else if (West == West::Low) return 11423;
17357  else return 11424;
17358  else
17359  if (West == West::None) return 11428;
17360  else if (West == West::Low) return 11429;
17361  else return 11430;
17362  else
17363  if (Up)
17364  if (West == West::None) return 11434;
17365  else if (West == West::Low) return 11435;
17366  else return 11436;
17367  else
17368  if (West == West::None) return 11440;
17369  else if (West == West::Low) return 11441;
17370  else return 11442;
17371  else if (North == North::Low)
17372  if (South == South::None)
17373  if (Up)
17374  if (West == West::None) return 11446;
17375  else if (West == West::Low) return 11447;
17376  else return 11448;
17377  else
17378  if (West == West::None) return 11452;
17379  else if (West == West::Low) return 11453;
17380  else return 11454;
17381  else if (South == South::Low)
17382  if (Up)
17383  if (West == West::None) return 11458;
17384  else if (West == West::Low) return 11459;
17385  else return 11460;
17386  else
17387  if (West == West::None) return 11464;
17388  else if (West == West::Low) return 11465;
17389  else return 11466;
17390  else
17391  if (Up)
17392  if (West == West::None) return 11470;
17393  else if (West == West::Low) return 11471;
17394  else return 11472;
17395  else
17396  if (West == West::None) return 11476;
17397  else if (West == West::Low) return 11477;
17398  else return 11478;
17399  else
17400  if (South == South::None)
17401  if (Up)
17402  if (West == West::None) return 11482;
17403  else if (West == West::Low) return 11483;
17404  else return 11484;
17405  else
17406  if (West == West::None) return 11488;
17407  else if (West == West::Low) return 11489;
17408  else return 11490;
17409  else if (South == South::Low)
17410  if (Up)
17411  if (West == West::None) return 11494;
17412  else if (West == West::Low) return 11495;
17413  else return 11496;
17414  else
17415  if (West == West::None) return 11500;
17416  else if (West == West::Low) return 11501;
17417  else return 11502;
17418  else
17419  if (Up)
17420  if (West == West::None) return 11506;
17421  else if (West == West::Low) return 11507;
17422  else return 11508;
17423  else
17424  if (West == West::None) return 11512;
17425  else if (West == West::Low) return 11513;
17426  else return 11514;
17427  }
17429  enum East East(BlockState Block);
17430  enum North North(BlockState Block);
17431  enum South South(BlockState Block);
17432  bool Up(BlockState Block);
17433  enum West West(BlockState Block);
17434  }
17435  namespace Pumpkin
17436  {
17437  constexpr BlockState Pumpkin()
17438  {
17439  return 3998;
17440  }
17441  }
17442  namespace PumpkinStem
17443  {
17444  constexpr BlockState PumpkinStem(const unsigned char Age)
17445  {
17446  if (Age == 0) return 4772;
17447  else if (Age == 1) return 4773;
17448  else if (Age == 2) return 4774;
17449  else if (Age == 3) return 4775;
17450  else if (Age == 4) return 4776;
17451  else if (Age == 5) return 4777;
17452  else if (Age == 6) return 4778;
17453  else return 4779;
17454  }
17456  unsigned char Age(BlockState Block);
17457  }
17458  namespace PurpleBanner
17459  {
17460  constexpr BlockState PurpleBanner(const unsigned char Rotation)
17461  {
17462  if (Rotation == 0) return 8057;
17463  else if (Rotation == 1) return 8058;
17464  else if (Rotation == 2) return 8059;
17465  else if (Rotation == 3) return 8060;
17466  else if (Rotation == 4) return 8061;
17467  else if (Rotation == 5) return 8062;
17468  else if (Rotation == 6) return 8063;
17469  else if (Rotation == 7) return 8064;
17470  else if (Rotation == 8) return 8065;
17471  else if (Rotation == 9) return 8066;
17472  else if (Rotation == 10) return 8067;
17473  else if (Rotation == 11) return 8068;
17474  else if (Rotation == 12) return 8069;
17475  else if (Rotation == 13) return 8070;
17476  else if (Rotation == 14) return 8071;
17477  else return 8072;
17478  }
17480  unsigned char Rotation(BlockState Block);
17481  }
17482  namespace PurpleBed
17483  {
17484  enum class Part
17485  {
17486  Head,
17487  Foot
17488  };
17489  constexpr BlockState PurpleBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
17490  {
17492  if (Occupied)
17493  if (Part == Part::Head) return 1209;
17494  else return 1210;
17495  else
17496  if (Part == Part::Head) return 1211;
17497  else return 1212;
17498  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
17499  if (Occupied)
17500  if (Part == Part::Head) return 1213;
17501  else return 1214;
17502  else
17503  if (Part == Part::Head) return 1215;
17504  else return 1216;
17505  else if (Facing == eBlockFace::BLOCK_FACE_XM)
17506  if (Occupied)
17507  if (Part == Part::Head) return 1217;
17508  else return 1218;
17509  else
17510  if (Part == Part::Head) return 1219;
17511  else return 1220;
17512  else
17513  if (Occupied)
17514  if (Part == Part::Head) return 1221;
17515  else return 1222;
17516  else
17517  if (Part == Part::Head) return 1223;
17518  else return 1224;
17519  }
17522  bool Occupied(BlockState Block);
17523  enum Part Part(BlockState Block);
17524  }
17525  namespace PurpleCarpet
17526  {
17528  {
17529  return 7876;
17530  }
17531  }
17532  namespace PurpleConcrete
17533  {
17535  {
17536  return 9448;
17537  }
17538  }
17539  namespace PurpleConcretePowder
17540  {
17542  {
17543  return 9464;
17544  }
17545  }
17546  namespace PurpleGlazedTerracotta
17547  {
17549  {
17550  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9414;
17551  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9415;
17552  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9416;
17553  else return 9417;
17554  }
17557  }
17558  namespace PurpleShulkerBox
17559  {
17561  {
17562  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9338;
17563  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9339;
17564  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9340;
17565  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9341;
17566  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9342;
17567  else return 9343;
17568  }
17571  }
17572  namespace PurpleStainedGlass
17573  {
17575  {
17576  return 4105;
17577  }
17578  }
17579  namespace PurpleStainedGlassPane
17580  {
17581  constexpr BlockState PurpleStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
17582  {
17583  if (East)
17584  if (North)
17585  if (South)
17586  if (West) return 7185;
17587  else return 7186;
17588  else
17589  if (West) return 7189;
17590  else return 7190;
17591  else
17592  if (South)
17593  if (West) return 7193;
17594  else return 7194;
17595  else
17596  if (West) return 7197;
17597  else return 7198;
17598  else
17599  if (North)
17600  if (South)
17601  if (West) return 7201;
17602  else return 7202;
17603  else
17604  if (West) return 7205;
17605  else return 7206;
17606  else
17607  if (South)
17608  if (West) return 7209;
17609  else return 7210;
17610  else
17611  if (West) return 7213;
17612  else return 7214;
17613  }
17615  bool East(BlockState Block);
17616  bool North(BlockState Block);
17617  bool South(BlockState Block);
17618  bool West(BlockState Block);
17619  }
17620  namespace PurpleTerracotta
17621  {
17623  {
17624  return 6857;
17625  }
17626  }
17627  namespace PurpleWallBanner
17628  {
17630  {
17631  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8193;
17632  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8194;
17633  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8195;
17634  else return 8196;
17635  }
17638  }
17639  namespace PurpleWool
17640  {
17642  {
17643  return 1394;
17644  }
17645  }
17646  namespace PurpurBlock
17647  {
17649  {
17650  return 9134;
17651  }
17652  }
17653  namespace PurpurPillar
17654  {
17655  enum class Axis
17656  {
17657  X,
17658  Y,
17659  Z
17660  };
17661  constexpr BlockState PurpurPillar(const enum Axis Axis)
17662  {
17663  if (Axis == Axis::X) return 9135;
17664  else if (Axis == Axis::Y) return 9136;
17665  else return 9137;
17666  }
17668  enum Axis Axis(BlockState Block);
17669  }
17670  namespace PurpurSlab
17671  {
17672  enum class Type
17673  {
17674  Top,
17675  Bottom,
17676  Double
17677  };
17678  constexpr BlockState PurpurSlab(const enum Type Type)
17679  {
17680  if (Type == Type::Top) return 8409;
17681  else if (Type == Type::Bottom) return 8411;
17682  else return 8413;
17683  }
17685  enum Type Type(BlockState Block);
17686  }
17687  namespace PurpurStairs
17688  {
17689  enum class Half
17690  {
17691  Top,
17692  Bottom
17693  };
17694  enum class Shape
17695  {
17696  Straight,
17697  InnerLeft,
17698  InnerRight,
17699  OuterLeft,
17700  OuterRight
17701  };
17702  constexpr BlockState PurpurStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
17703  {
17705  if (Half == Half::Top)
17706  if (Shape == Shape::Straight) return 9139;
17707  else if (Shape == Shape::InnerLeft) return 9141;
17708  else if (Shape == Shape::InnerRight) return 9143;
17709  else if (Shape == Shape::OuterLeft) return 9145;
17710  else return 9147;
17711  else
17712  if (Shape == Shape::Straight) return 9149;
17713  else if (Shape == Shape::InnerLeft) return 9151;
17714  else if (Shape == Shape::InnerRight) return 9153;
17715  else if (Shape == Shape::OuterLeft) return 9155;
17716  else return 9157;
17717  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
17718  if (Half == Half::Top)
17719  if (Shape == Shape::Straight) return 9159;
17720  else if (Shape == Shape::InnerLeft) return 9161;
17721  else if (Shape == Shape::InnerRight) return 9163;
17722  else if (Shape == Shape::OuterLeft) return 9165;
17723  else return 9167;
17724  else
17725  if (Shape == Shape::Straight) return 9169;
17726  else if (Shape == Shape::InnerLeft) return 9171;
17727  else if (Shape == Shape::InnerRight) return 9173;
17728  else if (Shape == Shape::OuterLeft) return 9175;
17729  else return 9177;
17730  else if (Facing == eBlockFace::BLOCK_FACE_XM)
17731  if (Half == Half::Top)
17732  if (Shape == Shape::Straight) return 9179;
17733  else if (Shape == Shape::InnerLeft) return 9181;
17734  else if (Shape == Shape::InnerRight) return 9183;
17735  else if (Shape == Shape::OuterLeft) return 9185;
17736  else return 9187;
17737  else
17738  if (Shape == Shape::Straight) return 9189;
17739  else if (Shape == Shape::InnerLeft) return 9191;
17740  else if (Shape == Shape::InnerRight) return 9193;
17741  else if (Shape == Shape::OuterLeft) return 9195;
17742  else return 9197;
17743  else
17744  if (Half == Half::Top)
17745  if (Shape == Shape::Straight) return 9199;
17746  else if (Shape == Shape::InnerLeft) return 9201;
17747  else if (Shape == Shape::InnerRight) return 9203;
17748  else if (Shape == Shape::OuterLeft) return 9205;
17749  else return 9207;
17750  else
17751  if (Shape == Shape::Straight) return 9209;
17752  else if (Shape == Shape::InnerLeft) return 9211;
17753  else if (Shape == Shape::InnerRight) return 9213;
17754  else if (Shape == Shape::OuterLeft) return 9215;
17755  else return 9217;
17756  }
17759  enum Half Half(BlockState Block);
17760  enum Shape Shape(BlockState Block);
17761  }
17762  namespace QuartzBlock
17763  {
17765  {
17766  return 6738;
17767  }
17768  }
17769  namespace QuartzBricks
17770  {
17772  {
17773  return 17103;
17774  }
17775  }
17776  namespace QuartzPillar
17777  {
17778  enum class Axis
17779  {
17780  X,
17781  Y,
17782  Z
17783  };
17784  constexpr BlockState QuartzPillar(const enum Axis Axis)
17785  {
17786  if (Axis == Axis::X) return 6740;
17787  else if (Axis == Axis::Y) return 6741;
17788  else return 6742;
17789  }
17791  enum Axis Axis(BlockState Block);
17792  }
17793  namespace QuartzSlab
17794  {
17795  enum class Type
17796  {
17797  Top,
17798  Bottom,
17799  Double
17800  };
17801  constexpr BlockState QuartzSlab(const enum Type Type)
17802  {
17803  if (Type == Type::Top) return 8391;
17804  else if (Type == Type::Bottom) return 8393;
17805  else return 8395;
17806  }
17808  enum Type Type(BlockState Block);
17809  }
17810  namespace QuartzStairs
17811  {
17812  enum class Half
17813  {
17814  Top,
17815  Bottom
17816  };
17817  enum class Shape
17818  {
17819  Straight,
17820  InnerLeft,
17821  InnerRight,
17822  OuterLeft,
17823  OuterRight
17824  };
17825  constexpr BlockState QuartzStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
17826  {
17828  if (Half == Half::Top)
17829  if (Shape == Shape::Straight) return 6744;
17830  else if (Shape == Shape::InnerLeft) return 6746;
17831  else if (Shape == Shape::InnerRight) return 6748;
17832  else if (Shape == Shape::OuterLeft) return 6750;
17833  else return 6752;
17834  else
17835  if (Shape == Shape::Straight) return 6754;
17836  else if (Shape == Shape::InnerLeft) return 6756;
17837  else if (Shape == Shape::InnerRight) return 6758;
17838  else if (Shape == Shape::OuterLeft) return 6760;
17839  else return 6762;
17840  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
17841  if (Half == Half::Top)
17842  if (Shape == Shape::Straight) return 6764;
17843  else if (Shape == Shape::InnerLeft) return 6766;
17844  else if (Shape == Shape::InnerRight) return 6768;
17845  else if (Shape == Shape::OuterLeft) return 6770;
17846  else return 6772;
17847  else
17848  if (Shape == Shape::Straight) return 6774;
17849  else if (Shape == Shape::InnerLeft) return 6776;
17850  else if (Shape == Shape::InnerRight) return 6778;
17851  else if (Shape == Shape::OuterLeft) return 6780;
17852  else return 6782;
17853  else if (Facing == eBlockFace::BLOCK_FACE_XM)
17854  if (Half == Half::Top)
17855  if (Shape == Shape::Straight) return 6784;
17856  else if (Shape == Shape::InnerLeft) return 6786;
17857  else if (Shape == Shape::InnerRight) return 6788;
17858  else if (Shape == Shape::OuterLeft) return 6790;
17859  else return 6792;
17860  else
17861  if (Shape == Shape::Straight) return 6794;
17862  else if (Shape == Shape::InnerLeft) return 6796;
17863  else if (Shape == Shape::InnerRight) return 6798;
17864  else if (Shape == Shape::OuterLeft) return 6800;
17865  else return 6802;
17866  else
17867  if (Half == Half::Top)
17868  if (Shape == Shape::Straight) return 6804;
17869  else if (Shape == Shape::InnerLeft) return 6806;
17870  else if (Shape == Shape::InnerRight) return 6808;
17871  else if (Shape == Shape::OuterLeft) return 6810;
17872  else return 6812;
17873  else
17874  if (Shape == Shape::Straight) return 6814;
17875  else if (Shape == Shape::InnerLeft) return 6816;
17876  else if (Shape == Shape::InnerRight) return 6818;
17877  else if (Shape == Shape::OuterLeft) return 6820;
17878  else return 6822;
17879  }
17882  enum Half Half(BlockState Block);
17883  enum Shape Shape(BlockState Block);
17884  }
17885  namespace Rail
17886  {
17887  enum class Shape
17888  {
17889  NorthSouth,
17890  EastWest,
17891  AscendingEast,
17892  AscendingWest,
17895  SouthEast,
17896  SouthWest,
17897  NorthWest,
17898  NorthEast
17899  };
17900  constexpr BlockState Rail(const enum Shape Shape)
17901  {
17902  if (Shape == Shape::NorthSouth) return 3645;
17903  else if (Shape == Shape::EastWest) return 3646;
17904  else if (Shape == Shape::AscendingEast) return 3647;
17905  else if (Shape == Shape::AscendingWest) return 3648;
17906  else if (Shape == Shape::AscendingNorth) return 3649;
17907  else if (Shape == Shape::AscendingSouth) return 3650;
17908  else if (Shape == Shape::SouthEast) return 3651;
17909  else if (Shape == Shape::SouthWest) return 3652;
17910  else if (Shape == Shape::NorthWest) return 3653;
17911  else return 3654;
17912  }
17913  BlockState Rail();
17914  enum Shape Shape(BlockState Block);
17915  }
17916  namespace RedBanner
17917  {
17918  constexpr BlockState RedBanner(const unsigned char Rotation)
17919  {
17920  if (Rotation == 0) return 8121;
17921  else if (Rotation == 1) return 8122;
17922  else if (Rotation == 2) return 8123;
17923  else if (Rotation == 3) return 8124;
17924  else if (Rotation == 4) return 8125;
17925  else if (Rotation == 5) return 8126;
17926  else if (Rotation == 6) return 8127;
17927  else if (Rotation == 7) return 8128;
17928  else if (Rotation == 8) return 8129;
17929  else if (Rotation == 9) return 8130;
17930  else if (Rotation == 10) return 8131;
17931  else if (Rotation == 11) return 8132;
17932  else if (Rotation == 12) return 8133;
17933  else if (Rotation == 13) return 8134;
17934  else if (Rotation == 14) return 8135;
17935  else return 8136;
17936  }
17938  unsigned char Rotation(BlockState Block);
17939  }
17940  namespace RedBed
17941  {
17942  enum class Part
17943  {
17944  Head,
17945  Foot
17946  };
17947  constexpr BlockState RedBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
17948  {
17950  if (Occupied)
17951  if (Part == Part::Head) return 1273;
17952  else return 1274;
17953  else
17954  if (Part == Part::Head) return 1275;
17955  else return 1276;
17956  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
17957  if (Occupied)
17958  if (Part == Part::Head) return 1277;
17959  else return 1278;
17960  else
17961  if (Part == Part::Head) return 1279;
17962  else return 1280;
17963  else if (Facing == eBlockFace::BLOCK_FACE_XM)
17964  if (Occupied)
17965  if (Part == Part::Head) return 1281;
17966  else return 1282;
17967  else
17968  if (Part == Part::Head) return 1283;
17969  else return 1284;
17970  else
17971  if (Occupied)
17972  if (Part == Part::Head) return 1285;
17973  else return 1286;
17974  else
17975  if (Part == Part::Head) return 1287;
17976  else return 1288;
17977  }
17978  BlockState RedBed();
17980  bool Occupied(BlockState Block);
17981  enum Part Part(BlockState Block);
17982  }
17983  namespace RedCarpet
17984  {
17985  constexpr BlockState RedCarpet()
17986  {
17987  return 7880;
17988  }
17989  }
17990  namespace RedConcrete
17991  {
17993  {
17994  return 9452;
17995  }
17996  }
17997  namespace RedConcretePowder
17998  {
18000  {
18001  return 9468;
18002  }
18003  }
18004  namespace RedGlazedTerracotta
18005  {
18007  {
18008  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9430;
18009  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9431;
18010  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9432;
18011  else return 9433;
18012  }
18015  }
18016  namespace RedMushroom
18017  {
18019  {
18020  return 1426;
18021  }
18022  }
18023  namespace RedMushroomBlock
18024  {
18025  constexpr BlockState RedMushroomBlock(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West)
18026  {
18027  if (Down)
18028  if (East)
18029  if (North)
18030  if (South)
18031  if (Up)
18032  if (West) return 4569;
18033  else return 4570;
18034  else
18035  if (West) return 4571;
18036  else return 4572;
18037  else
18038  if (Up)
18039  if (West) return 4573;
18040  else return 4574;
18041  else
18042  if (West) return 4575;
18043  else return 4576;
18044  else
18045  if (South)
18046  if (Up)
18047  if (West) return 4577;
18048  else return 4578;
18049  else
18050  if (West) return 4579;
18051  else return 4580;
18052  else
18053  if (Up)
18054  if (West) return 4581;
18055  else return 4582;
18056  else
18057  if (West) return 4583;
18058  else return 4584;
18059  else
18060  if (North)
18061  if (South)
18062  if (Up)
18063  if (West) return 4585;
18064  else return 4586;
18065  else
18066  if (West) return 4587;
18067  else return 4588;
18068  else
18069  if (Up)
18070  if (West) return 4589;
18071  else return 4590;
18072  else
18073  if (West) return 4591;
18074  else return 4592;
18075  else
18076  if (South)
18077  if (Up)
18078  if (West) return 4593;
18079  else return 4594;
18080  else
18081  if (West) return 4595;
18082  else return 4596;
18083  else
18084  if (Up)
18085  if (West) return 4597;
18086  else return 4598;
18087  else
18088  if (West) return 4599;
18089  else return 4600;
18090  else
18091  if (East)
18092  if (North)
18093  if (South)
18094  if (Up)
18095  if (West) return 4601;
18096  else return 4602;
18097  else
18098  if (West) return 4603;
18099  else return 4604;
18100  else
18101  if (Up)
18102  if (West) return 4605;
18103  else return 4606;
18104  else
18105  if (West) return 4607;
18106  else return 4608;
18107  else
18108  if (South)
18109  if (Up)
18110  if (West) return 4609;
18111  else return 4610;
18112  else
18113  if (West) return 4611;
18114  else return 4612;
18115  else
18116  if (Up)
18117  if (West) return 4613;
18118  else return 4614;
18119  else
18120  if (West) return 4615;
18121  else return 4616;
18122  else
18123  if (North)
18124  if (South)
18125  if (Up)
18126  if (West) return 4617;
18127  else return 4618;
18128  else
18129  if (West) return 4619;
18130  else return 4620;
18131  else
18132  if (Up)
18133  if (West) return 4621;
18134  else return 4622;
18135  else
18136  if (West) return 4623;
18137  else return 4624;
18138  else
18139  if (South)
18140  if (Up)
18141  if (West) return 4625;
18142  else return 4626;
18143  else
18144  if (West) return 4627;
18145  else return 4628;
18146  else
18147  if (Up)
18148  if (West) return 4629;
18149  else return 4630;
18150  else
18151  if (West) return 4631;
18152  else return 4632;
18153  }
18155  bool Down(BlockState Block);
18156  bool East(BlockState Block);
18157  bool North(BlockState Block);
18158  bool South(BlockState Block);
18159  bool Up(BlockState Block);
18160  bool West(BlockState Block);
18161  }
18162  namespace RedNetherBrickSlab
18163  {
18164  enum class Type
18165  {
18166  Top,
18167  Bottom,
18168  Double
18169  };
18170  constexpr BlockState RedNetherBrickSlab(const enum Type Type)
18171  {
18172  if (Type == Type::Top) return 10850;
18173  else if (Type == Type::Bottom) return 10852;
18174  else return 10854;
18175  }
18177  enum Type Type(BlockState Block);
18178  }
18179  namespace RedNetherBrickStairs
18180  {
18181  enum class Half
18182  {
18183  Top,
18184  Bottom
18185  };
18186  enum class Shape
18187  {
18188  Straight,
18189  InnerLeft,
18190  InnerRight,
18191  OuterLeft,
18192  OuterRight
18193  };
18194  constexpr BlockState RedNetherBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
18195  {
18197  if (Half == Half::Top)
18198  if (Shape == Shape::Straight) return 10550;
18199  else if (Shape == Shape::InnerLeft) return 10552;
18200  else if (Shape == Shape::InnerRight) return 10554;
18201  else if (Shape == Shape::OuterLeft) return 10556;
18202  else return 10558;
18203  else
18204  if (Shape == Shape::Straight) return 10560;
18205  else if (Shape == Shape::InnerLeft) return 10562;
18206  else if (Shape == Shape::InnerRight) return 10564;
18207  else if (Shape == Shape::OuterLeft) return 10566;
18208  else return 10568;
18209  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
18210  if (Half == Half::Top)
18211  if (Shape == Shape::Straight) return 10570;
18212  else if (Shape == Shape::InnerLeft) return 10572;
18213  else if (Shape == Shape::InnerRight) return 10574;
18214  else if (Shape == Shape::OuterLeft) return 10576;
18215  else return 10578;
18216  else
18217  if (Shape == Shape::Straight) return 10580;
18218  else if (Shape == Shape::InnerLeft) return 10582;
18219  else if (Shape == Shape::InnerRight) return 10584;
18220  else if (Shape == Shape::OuterLeft) return 10586;
18221  else return 10588;
18222  else if (Facing == eBlockFace::BLOCK_FACE_XM)
18223  if (Half == Half::Top)
18224  if (Shape == Shape::Straight) return 10590;
18225  else if (Shape == Shape::InnerLeft) return 10592;
18226  else if (Shape == Shape::InnerRight) return 10594;
18227  else if (Shape == Shape::OuterLeft) return 10596;
18228  else return 10598;
18229  else
18230  if (Shape == Shape::Straight) return 10600;
18231  else if (Shape == Shape::InnerLeft) return 10602;
18232  else if (Shape == Shape::InnerRight) return 10604;
18233  else if (Shape == Shape::OuterLeft) return 10606;
18234  else return 10608;
18235  else
18236  if (Half == Half::Top)
18237  if (Shape == Shape::Straight) return 10610;
18238  else if (Shape == Shape::InnerLeft) return 10612;
18239  else if (Shape == Shape::InnerRight) return 10614;
18240  else if (Shape == Shape::OuterLeft) return 10616;
18241  else return 10618;
18242  else
18243  if (Shape == Shape::Straight) return 10620;
18244  else if (Shape == Shape::InnerLeft) return 10622;
18245  else if (Shape == Shape::InnerRight) return 10624;
18246  else if (Shape == Shape::OuterLeft) return 10626;
18247  else return 10628;
18248  }
18251  enum Half Half(BlockState Block);
18252  enum Shape Shape(BlockState Block);
18253  }
18254  namespace RedNetherBrickWall
18255  {
18256  enum class East
18257  {
18258  None,
18259  Low,
18260  Tall
18261  };
18262  enum class North
18263  {
18264  None,
18265  Low,
18266  Tall
18267  };
18268  enum class South
18269  {
18270  None,
18271  Low,
18272  Tall
18273  };
18274  enum class West
18275  {
18276  None,
18277  Low,
18278  Tall
18279  };
18280  constexpr BlockState RedNetherBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
18281  {
18282  if (East == East::None)
18283  if (North == North::None)
18284  if (South == South::None)
18285  if (Up)
18286  if (West == West::None) return 13462;
18287  else if (West == West::Low) return 13463;
18288  else return 13464;
18289  else
18290  if (West == West::None) return 13468;
18291  else if (West == West::Low) return 13469;
18292  else return 13470;
18293  else if (South == South::Low)
18294  if (Up)
18295  if (West == West::None) return 13474;
18296  else if (West == West::Low) return 13475;
18297  else return 13476;
18298  else
18299  if (West == West::None) return 13480;
18300  else if (West == West::Low) return 13481;
18301  else return 13482;
18302  else
18303  if (Up)
18304  if (West == West::None) return 13486;
18305  else if (West == West::Low) return 13487;
18306  else return 13488;
18307  else
18308  if (West == West::None) return 13492;
18309  else if (West == West::Low) return 13493;
18310  else return 13494;
18311  else if (North == North::Low)
18312  if (South == South::None)
18313  if (Up)
18314  if (West == West::None) return 13498;
18315  else if (West == West::Low) return 13499;
18316  else return 13500;
18317  else
18318  if (West == West::None) return 13504;
18319  else if (West == West::Low) return 13505;
18320  else return 13506;
18321  else if (South == South::Low)
18322  if (Up)
18323  if (West == West::None) return 13510;
18324  else if (West == West::Low) return 13511;
18325  else return 13512;
18326  else
18327  if (West == West::None) return 13516;
18328  else if (West == West::Low) return 13517;
18329  else return 13518;
18330  else
18331  if (Up)
18332  if (West == West::None) return 13522;
18333  else if (West == West::Low) return 13523;
18334  else return 13524;
18335  else
18336  if (West == West::None) return 13528;
18337  else if (West == West::Low) return 13529;
18338  else return 13530;
18339  else
18340  if (South == South::None)
18341  if (Up)
18342  if (West == West::None) return 13534;
18343  else if (West == West::Low) return 13535;
18344  else return 13536;
18345  else
18346  if (West == West::None) return 13540;
18347  else if (West == West::Low) return 13541;
18348  else return 13542;
18349  else if (South == South::Low)
18350  if (Up)
18351  if (West == West::None) return 13546;
18352  else if (West == West::Low) return 13547;
18353  else return 13548;
18354  else
18355  if (West == West::None) return 13552;
18356  else if (West == West::Low) return 13553;
18357  else return 13554;
18358  else
18359  if (Up)
18360  if (West == West::None) return 13558;
18361  else if (West == West::Low) return 13559;
18362  else return 13560;
18363  else
18364  if (West == West::None) return 13564;
18365  else if (West == West::Low) return 13565;
18366  else return 13566;
18367  else if (East == East::Low)
18368  if (North == North::None)
18369  if (South == South::None)
18370  if (Up)
18371  if (West == West::None) return 13570;
18372  else if (West == West::Low) return 13571;
18373  else return 13572;
18374  else
18375  if (West == West::None) return 13576;
18376  else if (West == West::Low) return 13577;
18377  else return 13578;
18378  else if (South == South::Low)
18379  if (Up)
18380  if (West == West::None) return 13582;
18381  else if (West == West::Low) return 13583;
18382  else return 13584;
18383  else
18384  if (West == West::None) return 13588;
18385  else if (West == West::Low) return 13589;
18386  else return 13590;
18387  else
18388  if (Up)
18389  if (West == West::None) return 13594;
18390  else if (West == West::Low) return 13595;
18391  else return 13596;
18392  else
18393  if (West == West::None) return 13600;
18394  else if (West == West::Low) return 13601;
18395  else return 13602;
18396  else if (North == North::Low)
18397  if (South == South::None)
18398  if (Up)
18399  if (West == West::None) return 13606;
18400  else if (West == West::Low) return 13607;
18401  else return 13608;
18402  else
18403  if (West == West::None) return 13612;
18404  else if (West == West::Low) return 13613;
18405  else return 13614;
18406  else if (South == South::Low)
18407  if (Up)
18408  if (West == West::None) return 13618;
18409  else if (West == West::Low) return 13619;
18410  else return 13620;
18411  else
18412  if (West == West::None) return 13624;
18413  else if (West == West::Low) return 13625;
18414  else return 13626;
18415  else
18416  if (Up)
18417  if (West == West::None) return 13630;
18418  else if (West == West::Low) return 13631;
18419  else return 13632;
18420  else
18421  if (West == West::None) return 13636;
18422  else if (West == West::Low) return 13637;
18423  else return 13638;
18424  else
18425  if (South == South::None)
18426  if (Up)
18427  if (West == West::None) return 13642;
18428  else if (West == West::Low) return 13643;
18429  else return 13644;
18430  else
18431  if (West == West::None) return 13648;
18432  else if (West == West::Low) return 13649;
18433  else return 13650;
18434  else if (South == South::Low)
18435  if (Up)
18436  if (West == West::None) return 13654;
18437  else if (West == West::Low) return 13655;
18438  else return 13656;
18439  else
18440  if (West == West::None) return 13660;
18441  else if (West == West::Low) return 13661;
18442  else return 13662;
18443  else
18444  if (Up)
18445  if (West == West::None) return 13666;
18446  else if (West == West::Low) return 13667;
18447  else return 13668;
18448  else
18449  if (West == West::None) return 13672;
18450  else if (West == West::Low) return 13673;
18451  else return 13674;
18452  else
18453  if (North == North::None)
18454  if (South == South::None)
18455  if (Up)
18456  if (West == West::None) return 13678;
18457  else if (West == West::Low) return 13679;
18458  else return 13680;
18459  else
18460  if (West == West::None) return 13684;
18461  else if (West == West::Low) return 13685;
18462  else return 13686;
18463  else if (South == South::Low)
18464  if (Up)
18465  if (West == West::None) return 13690;
18466  else if (West == West::Low) return 13691;
18467  else return 13692;
18468  else
18469  if (West == West::None) return 13696;
18470  else if (West == West::Low) return 13697;
18471  else return 13698;
18472  else
18473  if (Up)
18474  if (West == West::None) return 13702;
18475  else if (West == West::Low) return 13703;
18476  else return 13704;
18477  else
18478  if (West == West::None) return 13708;
18479  else if (West == West::Low) return 13709;
18480  else return 13710;
18481  else if (North == North::Low)
18482  if (South == South::None)
18483  if (Up)
18484  if (West == West::None) return 13714;
18485  else if (West == West::Low) return 13715;
18486  else return 13716;
18487  else
18488  if (West == West::None) return 13720;
18489  else if (West == West::Low) return 13721;
18490  else return 13722;
18491  else if (South == South::Low)
18492  if (Up)
18493  if (West == West::None) return 13726;
18494  else if (West == West::Low) return 13727;
18495  else return 13728;
18496  else
18497  if (West == West::None) return 13732;
18498  else if (West == West::Low) return 13733;
18499  else return 13734;
18500  else
18501  if (Up)
18502  if (West == West::None) return 13738;
18503  else if (West == West::Low) return 13739;
18504  else return 13740;
18505  else
18506  if (West == West::None) return 13744;
18507  else if (West == West::Low) return 13745;
18508  else return 13746;
18509  else
18510  if (South == South::None)
18511  if (Up)
18512  if (West == West::None) return 13750;
18513  else if (West == West::Low) return 13751;
18514  else return 13752;
18515  else
18516  if (West == West::None) return 13756;
18517  else if (West == West::Low) return 13757;
18518  else return 13758;
18519  else if (South == South::Low)
18520  if (Up)
18521  if (West == West::None) return 13762;
18522  else if (West == West::Low) return 13763;
18523  else return 13764;
18524  else
18525  if (West == West::None) return 13768;
18526  else if (West == West::Low) return 13769;
18527  else return 13770;
18528  else
18529  if (Up)
18530  if (West == West::None) return 13774;
18531  else if (West == West::Low) return 13775;
18532  else return 13776;
18533  else
18534  if (West == West::None) return 13780;
18535  else if (West == West::Low) return 13781;
18536  else return 13782;
18537  }
18539  enum East East(BlockState Block);
18540  enum North North(BlockState Block);
18541  enum South South(BlockState Block);
18542  bool Up(BlockState Block);
18543  enum West West(BlockState Block);
18544  }
18545  namespace RedNetherBricks
18546  {
18548  {
18549  return 9255;
18550  }
18551  }
18552  namespace RedSand
18553  {
18554  constexpr BlockState RedSand()
18555  {
18556  return 67;
18557  }
18558  }
18559  namespace RedSandstone
18560  {
18562  {
18563  return 8217;
18564  }
18565  }
18566  namespace RedSandstoneSlab
18567  {
18568  enum class Type
18569  {
18570  Top,
18571  Bottom,
18572  Double
18573  };
18574  constexpr BlockState RedSandstoneSlab(const enum Type Type)
18575  {
18576  if (Type == Type::Top) return 8397;
18577  else if (Type == Type::Bottom) return 8399;
18578  else return 8401;
18579  }
18581  enum Type Type(BlockState Block);
18582  }
18583  namespace RedSandstoneStairs
18584  {
18585  enum class Half
18586  {
18587  Top,
18588  Bottom
18589  };
18590  enum class Shape
18591  {
18592  Straight,
18593  InnerLeft,
18594  InnerRight,
18595  OuterLeft,
18596  OuterRight
18597  };
18598  constexpr BlockState RedSandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
18599  {
18601  if (Half == Half::Top)
18602  if (Shape == Shape::Straight) return 8221;
18603  else if (Shape == Shape::InnerLeft) return 8223;
18604  else if (Shape == Shape::InnerRight) return 8225;
18605  else if (Shape == Shape::OuterLeft) return 8227;
18606  else return 8229;
18607  else
18608  if (Shape == Shape::Straight) return 8231;
18609  else if (Shape == Shape::InnerLeft) return 8233;
18610  else if (Shape == Shape::InnerRight) return 8235;
18611  else if (Shape == Shape::OuterLeft) return 8237;
18612  else return 8239;
18613  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
18614  if (Half == Half::Top)
18615  if (Shape == Shape::Straight) return 8241;
18616  else if (Shape == Shape::InnerLeft) return 8243;
18617  else if (Shape == Shape::InnerRight) return 8245;
18618  else if (Shape == Shape::OuterLeft) return 8247;
18619  else return 8249;
18620  else
18621  if (Shape == Shape::Straight) return 8251;
18622  else if (Shape == Shape::InnerLeft) return 8253;
18623  else if (Shape == Shape::InnerRight) return 8255;
18624  else if (Shape == Shape::OuterLeft) return 8257;
18625  else return 8259;
18626  else if (Facing == eBlockFace::BLOCK_FACE_XM)
18627  if (Half == Half::Top)
18628  if (Shape == Shape::Straight) return 8261;
18629  else if (Shape == Shape::InnerLeft) return 8263;
18630  else if (Shape == Shape::InnerRight) return 8265;
18631  else if (Shape == Shape::OuterLeft) return 8267;
18632  else return 8269;
18633  else
18634  if (Shape == Shape::Straight) return 8271;
18635  else if (Shape == Shape::InnerLeft) return 8273;
18636  else if (Shape == Shape::InnerRight) return 8275;
18637  else if (Shape == Shape::OuterLeft) return 8277;
18638  else return 8279;
18639  else
18640  if (Half == Half::Top)
18641  if (Shape == Shape::Straight) return 8281;
18642  else if (Shape == Shape::InnerLeft) return 8283;
18643  else if (Shape == Shape::InnerRight) return 8285;
18644  else if (Shape == Shape::OuterLeft) return 8287;
18645  else return 8289;
18646  else
18647  if (Shape == Shape::Straight) return 8291;
18648  else if (Shape == Shape::InnerLeft) return 8293;
18649  else if (Shape == Shape::InnerRight) return 8295;
18650  else if (Shape == Shape::OuterLeft) return 8297;
18651  else return 8299;
18652  }
18655  enum Half Half(BlockState Block);
18656  enum Shape Shape(BlockState Block);
18657  }
18658  namespace RedSandstoneWall
18659  {
18660  enum class East
18661  {
18662  None,
18663  Low,
18664  Tall
18665  };
18666  enum class North
18667  {
18668  None,
18669  Low,
18670  Tall
18671  };
18672  enum class South
18673  {
18674  None,
18675  Low,
18676  Tall
18677  };
18678  enum class West
18679  {
18680  None,
18681  Low,
18682  Tall
18683  };
18684  constexpr BlockState RedSandstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
18685  {
18686  if (East == East::None)
18687  if (North == North::None)
18688  if (South == South::None)
18689  if (Up)
18690  if (West == West::None) return 11518;
18691  else if (West == West::Low) return 11519;
18692  else return 11520;
18693  else
18694  if (West == West::None) return 11524;
18695  else if (West == West::Low) return 11525;
18696  else return 11526;
18697  else if (South == South::Low)
18698  if (Up)
18699  if (West == West::None) return 11530;
18700  else if (West == West::Low) return 11531;
18701  else return 11532;
18702  else
18703  if (West == West::None) return 11536;
18704  else if (West == West::Low) return 11537;
18705  else return 11538;
18706  else
18707  if (Up)
18708  if (West == West::None) return 11542;
18709  else if (West == West::Low) return 11543;
18710  else return 11544;
18711  else
18712  if (West == West::None) return 11548;
18713  else if (West == West::Low) return 11549;
18714  else return 11550;
18715  else if (North == North::Low)
18716  if (South == South::None)
18717  if (Up)
18718  if (West == West::None) return 11554;
18719  else if (West == West::Low) return 11555;
18720  else return 11556;
18721  else
18722  if (West == West::None) return 11560;
18723  else if (West == West::Low) return 11561;
18724  else return 11562;
18725  else if (South == South::Low)
18726  if (Up)
18727  if (West == West::None) return 11566;
18728  else if (West == West::Low) return 11567;
18729  else return 11568;
18730  else
18731  if (West == West::None) return 11572;
18732  else if (West == West::Low) return 11573;
18733  else return 11574;
18734  else
18735  if (Up)
18736  if (West == West::None) return 11578;
18737  else if (West == West::Low) return 11579;
18738  else return 11580;
18739  else
18740  if (West == West::None) return 11584;
18741  else if (West == West::Low) return 11585;
18742  else return 11586;
18743  else
18744  if (South == South::None)
18745  if (Up)
18746  if (West == West::None) return 11590;
18747  else if (West == West::Low) return 11591;
18748  else return 11592;
18749  else
18750  if (West == West::None) return 11596;
18751  else if (West == West::Low) return 11597;
18752  else return 11598;
18753  else if (South == South::Low)
18754  if (Up)
18755  if (West == West::None) return 11602;
18756  else if (West == West::Low) return 11603;
18757  else return 11604;
18758  else
18759  if (West == West::None) return 11608;
18760  else if (West == West::Low) return 11609;
18761  else return 11610;
18762  else
18763  if (Up)
18764  if (West == West::None) return 11614;
18765  else if (West == West::Low) return 11615;
18766  else return 11616;
18767  else
18768  if (West == West::None) return 11620;
18769  else if (West == West::Low) return 11621;
18770  else return 11622;
18771  else if (East == East::Low)
18772  if (North == North::None)
18773  if (South == South::None)
18774  if (Up)
18775  if (West == West::None) return 11626;
18776  else if (West == West::Low) return 11627;
18777  else return 11628;
18778  else
18779  if (West == West::None) return 11632;
18780  else if (West == West::Low) return 11633;
18781  else return 11634;
18782  else if (South == South::Low)
18783  if (Up)
18784  if (West == West::None) return 11638;
18785  else if (West == West::Low) return 11639;
18786  else return 11640;
18787  else
18788  if (West == West::None) return 11644;
18789  else if (West == West::Low) return 11645;
18790  else return 11646;
18791  else
18792  if (Up)
18793  if (West == West::None) return 11650;
18794  else if (West == West::Low) return 11651;
18795  else return 11652;
18796  else
18797  if (West == West::None) return 11656;
18798  else if (West == West::Low) return 11657;
18799  else return 11658;
18800  else if (North == North::Low)
18801  if (South == South::None)
18802  if (Up)
18803  if (West == West::None) return 11662;
18804  else if (West == West::Low) return 11663;
18805  else return 11664;
18806  else
18807  if (West == West::None) return 11668;
18808  else if (West == West::Low) return 11669;
18809  else return 11670;
18810  else if (South == South::Low)
18811  if (Up)
18812  if (West == West::None) return 11674;
18813  else if (West == West::Low) return 11675;
18814  else return 11676;
18815  else
18816  if (West == West::None) return 11680;
18817  else if (West == West::Low) return 11681;
18818  else return 11682;
18819  else
18820  if (Up)
18821  if (West == West::None) return 11686;
18822  else if (West == West::Low) return 11687;
18823  else return 11688;
18824  else
18825  if (West == West::None) return 11692;
18826  else if (West == West::Low) return 11693;
18827  else return 11694;
18828  else
18829  if (South == South::None)
18830  if (Up)
18831  if (West == West::None) return 11698;
18832  else if (West == West::Low) return 11699;
18833  else return 11700;
18834  else
18835  if (West == West::None) return 11704;
18836  else if (West == West::Low) return 11705;
18837  else return 11706;
18838  else if (South == South::Low)
18839  if (Up)
18840  if (West == West::None) return 11710;
18841  else if (West == West::Low) return 11711;
18842  else return 11712;
18843  else
18844  if (West == West::None) return 11716;
18845  else if (West == West::Low) return 11717;
18846  else return 11718;
18847  else
18848  if (Up)
18849  if (West == West::None) return 11722;
18850  else if (West == West::Low) return 11723;
18851  else return 11724;
18852  else
18853  if (West == West::None) return 11728;
18854  else if (West == West::Low) return 11729;
18855  else return 11730;
18856  else
18857  if (North == North::None)
18858  if (South == South::None)
18859  if (Up)
18860  if (West == West::None) return 11734;
18861  else if (West == West::Low) return 11735;
18862  else return 11736;
18863  else
18864  if (West == West::None) return 11740;
18865  else if (West == West::Low) return 11741;
18866  else return 11742;
18867  else if (South == South::Low)
18868  if (Up)
18869  if (West == West::None) return 11746;
18870  else if (West == West::Low) return 11747;
18871  else return 11748;
18872  else
18873  if (West == West::None) return 11752;
18874  else if (West == West::Low) return 11753;
18875  else return 11754;
18876  else
18877  if (Up)
18878  if (West == West::None) return 11758;
18879  else if (West == West::Low) return 11759;
18880  else return 11760;
18881  else
18882  if (West == West::None) return 11764;
18883  else if (West == West::Low) return 11765;
18884  else return 11766;
18885  else if (North == North::Low)
18886  if (South == South::None)
18887  if (Up)
18888  if (West == West::None) return 11770;
18889  else if (West == West::Low) return 11771;
18890  else return 11772;
18891  else
18892  if (West == West::None) return 11776;
18893  else if (West == West::Low) return 11777;
18894  else return 11778;
18895  else if (South == South::Low)
18896  if (Up)
18897  if (West == West::None) return 11782;
18898  else if (West == West::Low) return 11783;
18899  else return 11784;
18900  else
18901  if (West == West::None) return 11788;
18902  else if (West == West::Low) return 11789;
18903  else return 11790;
18904  else
18905  if (Up)
18906  if (West == West::None) return 11794;
18907  else if (West == West::Low) return 11795;
18908  else return 11796;
18909  else
18910  if (West == West::None) return 11800;
18911  else if (West == West::Low) return 11801;
18912  else return 11802;
18913  else
18914  if (South == South::None)
18915  if (Up)
18916  if (West == West::None) return 11806;
18917  else if (West == West::Low) return 11807;
18918  else return 11808;
18919  else
18920  if (West == West::None) return 11812;
18921  else if (West == West::Low) return 11813;
18922  else return 11814;
18923  else if (South == South::Low)
18924  if (Up)
18925  if (West == West::None) return 11818;
18926  else if (West == West::Low) return 11819;
18927  else return 11820;
18928  else
18929  if (West == West::None) return 11824;
18930  else if (West == West::Low) return 11825;
18931  else return 11826;
18932  else
18933  if (Up)
18934  if (West == West::None) return 11830;
18935  else if (West == West::Low) return 11831;
18936  else return 11832;
18937  else
18938  if (West == West::None) return 11836;
18939  else if (West == West::Low) return 11837;
18940  else return 11838;
18941  }
18943  enum East East(BlockState Block);
18944  enum North North(BlockState Block);
18945  enum South South(BlockState Block);
18946  bool Up(BlockState Block);
18947  enum West West(BlockState Block);
18948  }
18949  namespace RedShulkerBox
18950  {
18952  {
18953  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9362;
18954  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9363;
18955  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9364;
18956  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9365;
18957  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9366;
18958  else return 9367;
18959  }
18962  }
18963  namespace RedStainedGlass
18964  {
18966  {
18967  return 4109;
18968  }
18969  }
18970  namespace RedStainedGlassPane
18971  {
18972  constexpr BlockState RedStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
18973  {
18974  if (East)
18975  if (North)
18976  if (South)
18977  if (West) return 7313;
18978  else return 7314;
18979  else
18980  if (West) return 7317;
18981  else return 7318;
18982  else
18983  if (South)
18984  if (West) return 7321;
18985  else return 7322;
18986  else
18987  if (West) return 7325;
18988  else return 7326;
18989  else
18990  if (North)
18991  if (South)
18992  if (West) return 7329;
18993  else return 7330;
18994  else
18995  if (West) return 7333;
18996  else return 7334;
18997  else
18998  if (South)
18999  if (West) return 7337;
19000  else return 7338;
19001  else
19002  if (West) return 7341;
19003  else return 7342;
19004  }
19006  bool East(BlockState Block);
19007  bool North(BlockState Block);
19008  bool South(BlockState Block);
19009  bool West(BlockState Block);
19010  }
19011  namespace RedTerracotta
19012  {
19014  {
19015  return 6861;
19016  }
19017  }
19018  namespace RedTulip
19019  {
19020  constexpr BlockState RedTulip()
19021  {
19022  return 1417;
19023  }
19024  }
19025  namespace RedWallBanner
19026  {
19028  {
19029  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8209;
19030  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8210;
19031  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8211;
19032  else return 8212;
19033  }
19036  }
19037  namespace RedWool
19038  {
19039  constexpr BlockState RedWool()
19040  {
19041  return 1398;
19042  }
19043  }
19044  namespace RedstoneBlock
19045  {
19047  {
19048  return 6726;
19049  }
19050  }
19051  namespace RedstoneLamp
19052  {
19053  constexpr BlockState RedstoneLamp(const bool Lit)
19054  {
19055  if (Lit) return 5156;
19056  else return 5157;
19057  }
19059  bool Lit(BlockState Block);
19060  }
19061  namespace RedstoneOre
19062  {
19063  constexpr BlockState RedstoneOre(const bool Lit)
19064  {
19065  if (Lit) return 3885;
19066  else return 3886;
19067  }
19069  bool Lit(BlockState Block);
19070  }
19071  namespace RedstoneTorch
19072  {
19073  constexpr BlockState RedstoneTorch(const bool Lit)
19074  {
19075  if (Lit) return 3887;
19076  else return 3888;
19077  }
19079  bool Lit(BlockState Block);
19080  }
19081  namespace RedstoneWallTorch
19082  {
19083  constexpr BlockState RedstoneWallTorch(const eBlockFace Facing, const bool Lit)
19084  {
19086  if (Lit) return 3889;
19087  else return 3890;
19088  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
19089  if (Lit) return 3891;
19090  else return 3892;
19091  else if (Facing == eBlockFace::BLOCK_FACE_XM)
19092  if (Lit) return 3893;
19093  else return 3894;
19094  else
19095  if (Lit) return 3895;
19096  else return 3896;
19097  }
19100  bool Lit(BlockState Block);
19101  }
19102  namespace RedstoneWire
19103  {
19104  enum class East
19105  {
19106  Up,
19107  Side,
19108  None
19109  };
19110  enum class North
19111  {
19112  Up,
19113  Side,
19114  None
19115  };
19116  enum class South
19117  {
19118  Up,
19119  Side,
19120  None
19121  };
19122  enum class West
19123  {
19124  Up,
19125  Side,
19126  None
19127  };
19128  constexpr BlockState RedstoneWire(const enum East East, const enum North North, const unsigned char Power, const enum South South, const enum West West)
19129  {
19130  if (East == East::Up)
19131  if (North == North::Up)
19132  if (Power == 0)
19133  if (South == South::Up)
19134  if (West == West::Up) return 2058;
19135  else if (West == West::Side) return 2059;
19136  else return 2060;
19137  else if (South == South::Side)
19138  if (West == West::Up) return 2061;
19139  else if (West == West::Side) return 2062;
19140  else return 2063;
19141  else
19142  if (West == West::Up) return 2064;
19143  else if (West == West::Side) return 2065;
19144  else return 2066;
19145  else if (Power == 1)
19146  if (South == South::Up)
19147  if (West == West::Up) return 2067;
19148  else if (West == West::Side) return 2068;
19149  else return 2069;
19150  else if (South == South::Side)
19151  if (West == West::Up) return 2070;
19152  else if (West == West::Side) return 2071;
19153  else return 2072;
19154  else
19155  if (West == West::Up) return 2073;
19156  else if (West == West::Side) return 2074;
19157  else return 2075;
19158  else if (Power == 2)
19159  if (South == South::Up)
19160  if (West == West::Up) return 2076;
19161  else if (West == West::Side) return 2077;
19162  else return 2078;
19163  else if (South == South::Side)
19164  if (West == West::Up) return 2079;
19165  else if (West == West::Side) return 2080;
19166  else return 2081;
19167  else
19168  if (West == West::Up) return 2082;
19169  else if (West == West::Side) return 2083;
19170  else return 2084;
19171  else if (Power == 3)
19172  if (South == South::Up)
19173  if (West == West::Up) return 2085;
19174  else if (West == West::Side) return 2086;
19175  else return 2087;
19176  else if (South == South::Side)
19177  if (West == West::Up) return 2088;
19178  else if (West == West::Side) return 2089;
19179  else return 2090;
19180  else
19181  if (West == West::Up) return 2091;
19182  else if (West == West::Side) return 2092;
19183  else return 2093;
19184  else if (Power == 4)
19185  if (South == South::Up)
19186  if (West == West::Up) return 2094;
19187  else if (West == West::Side) return 2095;
19188  else return 2096;
19189  else if (South == South::Side)
19190  if (West == West::Up) return 2097;
19191  else if (West == West::Side) return 2098;
19192  else return 2099;
19193  else
19194  if (West == West::Up) return 2100;
19195  else if (West == West::Side) return 2101;
19196  else return 2102;
19197  else if (Power == 5)
19198  if (South == South::Up)
19199  if (West == West::Up) return 2103;
19200  else if (West == West::Side) return 2104;
19201  else return 2105;
19202  else if (South == South::Side)
19203  if (West == West::Up) return 2106;
19204  else if (West == West::Side) return 2107;
19205  else return 2108;
19206  else
19207  if (West == West::Up) return 2109;
19208  else if (West == West::Side) return 2110;
19209  else return 2111;
19210  else if (Power == 6)
19211  if (South == South::Up)
19212  if (West == West::Up) return 2112;
19213  else if (West == West::Side) return 2113;
19214  else return 2114;
19215  else if (South == South::Side)
19216  if (West == West::Up) return 2115;
19217  else if (West == West::Side) return 2116;
19218  else return 2117;
19219  else
19220  if (West == West::Up) return 2118;
19221  else if (West == West::Side) return 2119;
19222  else return 2120;
19223  else if (Power == 7)
19224  if (South == South::Up)
19225  if (West == West::Up) return 2121;
19226  else if (West == West::Side) return 2122;
19227  else return 2123;
19228  else if (South == South::Side)
19229  if (West == West::Up) return 2124;
19230  else if (West == West::Side) return 2125;
19231  else return 2126;
19232  else
19233  if (West == West::Up) return 2127;
19234  else if (West == West::Side) return 2128;
19235  else return 2129;
19236  else if (Power == 8)
19237  if (South == South::Up)
19238  if (West == West::Up) return 2130;
19239  else if (West == West::Side) return 2131;
19240  else return 2132;
19241  else if (South == South::Side)
19242  if (West == West::Up) return 2133;
19243  else if (West == West::Side) return 2134;
19244  else return 2135;
19245  else
19246  if (West == West::Up) return 2136;
19247  else if (West == West::Side) return 2137;
19248  else return 2138;
19249  else if (Power == 9)
19250  if (South == South::Up)
19251  if (West == West::Up) return 2139;
19252  else if (West == West::Side) return 2140;
19253  else return 2141;
19254  else if (South == South::Side)
19255  if (West == West::Up) return 2142;
19256  else if (West == West::Side) return 2143;
19257  else return 2144;
19258  else
19259  if (West == West::Up) return 2145;
19260  else if (West == West::Side) return 2146;
19261  else return 2147;
19262  else if (Power == 10)
19263  if (South == South::Up)
19264  if (West == West::Up) return 2148;
19265  else if (West == West::Side) return 2149;
19266  else return 2150;
19267  else if (South == South::Side)
19268  if (West == West::Up) return 2151;
19269  else if (West == West::Side) return 2152;
19270  else return 2153;
19271  else
19272  if (West == West::Up) return 2154;
19273  else if (West == West::Side) return 2155;
19274  else return 2156;
19275  else if (Power == 11)
19276  if (South == South::Up)
19277  if (West == West::Up) return 2157;
19278  else if (West == West::Side) return 2158;
19279  else return 2159;
19280  else if (South == South::Side)
19281  if (West == West::Up) return 2160;
19282  else if (West == West::Side) return 2161;
19283  else return 2162;
19284  else
19285  if (West == West::Up) return 2163;
19286  else if (West == West::Side) return 2164;
19287  else return 2165;
19288  else if (Power == 12)
19289  if (South == South::Up)
19290  if (West == West::Up) return 2166;
19291  else if (West == West::Side) return 2167;
19292  else return 2168;
19293  else if (South == South::Side)
19294  if (West == West::Up) return 2169;
19295  else if (West == West::Side) return 2170;
19296  else return 2171;
19297  else
19298  if (West == West::Up) return 2172;
19299  else if (West == West::Side) return 2173;
19300  else return 2174;
19301  else if (Power == 13)
19302  if (South == South::Up)
19303  if (West == West::Up) return 2175;
19304  else if (West == West::Side) return 2176;
19305  else return 2177;
19306  else if (South == South::Side)
19307  if (West == West::Up) return 2178;
19308  else if (West == West::Side) return 2179;
19309  else return 2180;
19310  else
19311  if (West == West::Up) return 2181;
19312  else if (West == West::Side) return 2182;
19313  else return 2183;
19314  else if (Power == 14)
19315  if (South == South::Up)
19316  if (West == West::Up) return 2184;
19317  else if (West == West::Side) return 2185;
19318  else return 2186;
19319  else if (South == South::Side)
19320  if (West == West::Up) return 2187;
19321  else if (West == West::Side) return 2188;
19322  else return 2189;
19323  else
19324  if (West == West::Up) return 2190;
19325  else if (West == West::Side) return 2191;
19326  else return 2192;
19327  else
19328  if (South == South::Up)
19329  if (West == West::Up) return 2193;
19330  else if (West == West::Side) return 2194;
19331  else return 2195;
19332  else if (South == South::Side)
19333  if (West == West::Up) return 2196;
19334  else if (West == West::Side) return 2197;
19335  else return 2198;
19336  else
19337  if (West == West::Up) return 2199;
19338  else if (West == West::Side) return 2200;
19339  else return 2201;
19340  else if (North == North::Side)
19341  if (Power == 0)
19342  if (South == South::Up)
19343  if (West == West::Up) return 2202;
19344  else if (West == West::Side) return 2203;
19345  else return 2204;
19346  else if (South == South::Side)
19347  if (West == West::Up) return 2205;
19348  else if (West == West::Side) return 2206;
19349  else return 2207;
19350  else
19351  if (West == West::Up) return 2208;
19352  else if (West == West::Side) return 2209;
19353  else return 2210;
19354  else if (Power == 1)
19355  if (South == South::Up)
19356  if (West == West::Up) return 2211;
19357  else if (West == West::Side) return 2212;
19358  else return 2213;
19359  else if (South == South::Side)
19360  if (West == West::Up) return 2214;
19361  else if (West == West::Side) return 2215;
19362  else return 2216;
19363  else
19364  if (West == West::Up) return 2217;
19365  else if (West == West::Side) return 2218;
19366  else return 2219;
19367  else if (Power == 2)
19368  if (South == South::Up)
19369  if (West == West::Up) return 2220;
19370  else if (West == West::Side) return 2221;
19371  else return 2222;
19372  else if (South == South::Side)
19373  if (West == West::Up) return 2223;
19374  else if (West == West::Side) return 2224;
19375  else return 2225;
19376  else
19377  if (West == West::Up) return 2226;
19378  else if (West == West::Side) return 2227;
19379  else return 2228;
19380  else if (Power == 3)
19381  if (South == South::Up)
19382  if (West == West::Up) return 2229;
19383  else if (West == West::Side) return 2230;
19384  else return 2231;
19385  else if (South == South::Side)
19386  if (West == West::Up) return 2232;
19387  else if (West == West::Side) return 2233;
19388  else return 2234;
19389  else
19390  if (West == West::Up) return 2235;
19391  else if (West == West::Side) return 2236;
19392  else return 2237;
19393  else if (Power == 4)
19394  if (South == South::Up)
19395  if (West == West::Up) return 2238;
19396  else if (West == West::Side) return 2239;
19397  else return 2240;
19398  else if (South == South::Side)
19399  if (West == West::Up) return 2241;
19400  else if (West == West::Side) return 2242;
19401  else return 2243;
19402  else
19403  if (West == West::Up) return 2244;
19404  else if (West == West::Side) return 2245;
19405  else return 2246;
19406  else if (Power == 5)
19407  if (South == South::Up)
19408  if (West == West::Up) return 2247;
19409  else if (West == West::Side) return 2248;
19410  else return 2249;
19411  else if (South == South::Side)
19412  if (West == West::Up) return 2250;
19413  else if (West == West::Side) return 2251;
19414  else return 2252;
19415  else
19416  if (West == West::Up) return 2253;
19417  else if (West == West::Side) return 2254;
19418  else return 2255;
19419  else if (Power == 6)
19420  if (South == South::Up)
19421  if (West == West::Up) return 2256;
19422  else if (West == West::Side) return 2257;
19423  else return 2258;
19424  else if (South == South::Side)
19425  if (West == West::Up) return 2259;
19426  else if (West == West::Side) return 2260;
19427  else return 2261;
19428  else
19429  if (West == West::Up) return 2262;
19430  else if (West == West::Side) return 2263;
19431  else return 2264;
19432  else if (Power == 7)
19433  if (South == South::Up)
19434  if (West == West::Up) return 2265;
19435  else if (West == West::Side) return 2266;
19436  else return 2267;
19437  else if (South == South::Side)
19438  if (West == West::Up) return 2268;
19439  else if (West == West::Side) return 2269;
19440  else return 2270;
19441  else
19442  if (West == West::Up) return 2271;
19443  else if (West == West::Side) return 2272;
19444  else return 2273;
19445  else if (Power == 8)
19446  if (South == South::Up)
19447  if (West == West::Up) return 2274;
19448  else if (West == West::Side) return 2275;
19449  else return 2276;
19450  else if (South == South::Side)
19451  if (West == West::Up) return 2277;
19452  else if (West == West::Side) return 2278;
19453  else return 2279;
19454  else
19455  if (West == West::Up) return 2280;
19456  else if (West == West::Side) return 2281;
19457  else return 2282;
19458  else if (Power == 9)
19459  if (South == South::Up)
19460  if (West == West::Up) return 2283;
19461  else if (West == West::Side) return 2284;
19462  else return 2285;
19463  else if (South == South::Side)
19464  if (West == West::Up) return 2286;
19465  else if (West == West::Side) return 2287;
19466  else return 2288;
19467  else
19468  if (West == West::Up) return 2289;
19469  else if (West == West::Side) return 2290;
19470  else return 2291;
19471  else if (Power == 10)
19472  if (South == South::Up)
19473  if (West == West::Up) return 2292;
19474  else if (West == West::Side) return 2293;
19475  else return 2294;
19476  else if (South == South::Side)
19477  if (West == West::Up) return 2295;
19478  else if (West == West::Side) return 2296;
19479  else return 2297;
19480  else
19481  if (West == West::Up) return 2298;
19482  else if (West == West::Side) return 2299;
19483  else return 2300;
19484  else if (Power == 11)
19485  if (South == South::Up)
19486  if (West == West::Up) return 2301;
19487  else if (West == West::Side) return 2302;
19488  else return 2303;
19489  else if (South == South::Side)
19490  if (West == West::Up) return 2304;
19491  else if (West == West::Side) return 2305;
19492  else return 2306;
19493  else
19494  if (West == West::Up) return 2307;
19495  else if (West == West::Side) return 2308;
19496  else return 2309;
19497  else if (Power == 12)
19498  if (South == South::Up)
19499  if (West == West::Up) return 2310;
19500  else if (West == West::Side) return 2311;
19501  else return 2312;
19502  else if (South == South::Side)
19503  if (West == West::Up) return 2313;
19504  else if (West == West::Side) return 2314;
19505  else return 2315;
19506  else
19507  if (West == West::Up) return 2316;
19508  else if (West == West::Side) return 2317;
19509  else return 2318;
19510  else if (Power == 13)
19511  if (South == South::Up)
19512  if (West == West::Up) return 2319;
19513  else if (West == West::Side) return 2320;
19514  else return 2321;
19515  else if (South == South::Side)
19516  if (West == West::Up) return 2322;
19517  else if (West == West::Side) return 2323;
19518  else return 2324;
19519  else
19520  if (West == West::Up) return 2325;
19521  else if (West == West::Side) return 2326;
19522  else return 2327;
19523  else if (Power == 14)
19524  if (South == South::Up)
19525  if (West == West::Up) return 2328;
19526  else if (West == West::Side) return 2329;
19527  else return 2330;
19528  else if (South == South::Side)
19529  if (West == West::Up) return 2331;
19530  else if (West == West::Side) return 2332;
19531  else return 2333;
19532  else
19533  if (West == West::Up) return 2334;
19534  else if (West == West::Side) return 2335;
19535  else return 2336;
19536  else
19537  if (South == South::Up)
19538  if (West == West::Up) return 2337;
19539  else if (West == West::Side) return 2338;
19540  else return 2339;
19541  else if (South == South::Side)
19542  if (West == West::Up) return 2340;
19543  else if (West == West::Side) return 2341;
19544  else return 2342;
19545  else
19546  if (West == West::Up) return 2343;
19547  else if (West == West::Side) return 2344;
19548  else return 2345;
19549  else
19550  if (Power == 0)
19551  if (South == South::Up)
19552  if (West == West::Up) return 2346;
19553  else if (West == West::Side) return 2347;
19554  else return 2348;
19555  else if (South == South::Side)
19556  if (West == West::Up) return 2349;
19557  else if (West == West::Side) return 2350;
19558  else return 2351;
19559  else
19560  if (West == West::Up) return 2352;
19561  else if (West == West::Side) return 2353;
19562  else return 2354;
19563  else if (Power == 1)
19564  if (South == South::Up)
19565  if (West == West::Up) return 2355;
19566  else if (West == West::Side) return 2356;
19567  else return 2357;
19568  else if (South == South::Side)
19569  if (West == West::Up) return 2358;
19570  else if (West == West::Side) return 2359;
19571  else return 2360;
19572  else
19573  if (West == West::Up) return 2361;
19574  else if (West == West::Side) return 2362;
19575  else return 2363;
19576  else if (Power == 2)
19577  if (South == South::Up)
19578  if (West == West::Up) return 2364;
19579  else if (West == West::Side) return 2365;
19580  else return 2366;
19581  else if (South == South::Side)
19582  if (West == West::Up) return 2367;
19583  else if (West == West::Side) return 2368;
19584  else return 2369;
19585  else
19586  if (West == West::Up) return 2370;
19587  else if (West == West::Side) return 2371;
19588  else return 2372;
19589  else if (Power == 3)
19590  if (South == South::Up)
19591  if (West == West::Up) return 2373;
19592  else if (West == West::Side) return 2374;
19593  else return 2375;
19594  else if (South == South::Side)
19595  if (West == West::Up) return 2376;
19596  else if (West == West::Side) return 2377;
19597  else return 2378;
19598  else
19599  if (West == West::Up) return 2379;
19600  else if (West == West::Side) return 2380;
19601  else return 2381;
19602  else if (Power == 4)
19603  if (South == South::Up)
19604  if (West == West::Up) return 2382;
19605  else if (West == West::Side) return 2383;
19606  else return 2384;
19607  else if (South == South::Side)
19608  if (West == West::Up) return 2385;
19609  else if (West == West::Side) return 2386;
19610  else return 2387;
19611  else
19612  if (West == West::Up) return 2388;
19613  else if (West == West::Side) return 2389;
19614  else return 2390;
19615  else if (Power == 5)
19616  if (South == South::Up)
19617  if (West == West::Up) return 2391;
19618  else if (West == West::Side) return 2392;
19619  else return 2393;
19620  else if (South == South::Side)
19621  if (West == West::Up) return 2394;
19622  else if (West == West::Side) return 2395;
19623  else return 2396;
19624  else
19625  if (West == West::Up) return 2397;
19626  else if (West == West::Side) return 2398;
19627  else return 2399;
19628  else if (Power == 6)
19629  if (South == South::Up)
19630  if (West == West::Up) return 2400;
19631  else if (West == West::Side) return 2401;
19632  else return 2402;
19633  else if (South == South::Side)
19634  if (West == West::Up) return 2403;
19635  else if (West == West::Side) return 2404;
19636  else return 2405;
19637  else
19638  if (West == West::Up) return 2406;
19639  else if (West == West::Side) return 2407;
19640  else return 2408;
19641  else if (Power == 7)
19642  if (South == South::Up)
19643  if (West == West::Up) return 2409;
19644  else if (West == West::Side) return 2410;
19645  else return 2411;
19646  else if (South == South::Side)
19647  if (West == West::Up) return 2412;
19648  else if (West == West::Side) return 2413;
19649  else return 2414;
19650  else
19651  if (West == West::Up) return 2415;
19652  else if (West == West::Side) return 2416;
19653  else return 2417;
19654  else if (Power == 8)
19655  if (South == South::Up)
19656  if (West == West::Up) return 2418;
19657  else if (West == West::Side) return 2419;
19658  else return 2420;
19659  else if (South == South::Side)
19660  if (West == West::Up) return 2421;
19661  else if (West == West::Side) return 2422;
19662  else return 2423;
19663  else
19664  if (West == West::Up) return 2424;
19665  else if (West == West::Side) return 2425;
19666  else return 2426;
19667  else if (Power == 9)
19668  if (South == South::Up)
19669  if (West == West::Up) return 2427;
19670  else if (West == West::Side) return 2428;
19671  else return 2429;
19672  else if (South == South::Side)
19673  if (West == West::Up) return 2430;
19674  else if (West == West::Side) return 2431;
19675  else return 2432;
19676  else
19677  if (West == West::Up) return 2433;
19678  else if (West == West::Side) return 2434;
19679  else return 2435;
19680  else if (Power == 10)
19681  if (South == South::Up)
19682  if (West == West::Up) return 2436;
19683  else if (West == West::Side) return 2437;
19684  else return 2438;
19685  else if (South == South::Side)
19686  if (West == West::Up) return 2439;
19687  else if (West == West::Side) return 2440;
19688  else return 2441;
19689  else
19690  if (West == West::Up) return 2442;
19691  else if (West == West::Side) return 2443;
19692  else return 2444;
19693  else if (Power == 11)
19694  if (South == South::Up)
19695  if (West == West::Up) return 2445;
19696  else if (West == West::Side) return 2446;
19697  else return 2447;
19698  else if (South == South::Side)
19699  if (West == West::Up) return 2448;
19700  else if (West == West::Side) return 2449;
19701  else return 2450;
19702  else
19703  if (West == West::Up) return 2451;
19704  else if (West == West::Side) return 2452;
19705  else return 2453;
19706  else if (Power == 12)
19707  if (South == South::Up)
19708  if (West == West::Up) return 2454;
19709  else if (West == West::Side) return 2455;
19710  else return 2456;
19711  else if (South == South::Side)
19712  if (West == West::Up) return 2457;
19713  else if (West == West::Side) return 2458;
19714  else return 2459;
19715  else
19716  if (West == West::Up) return 2460;
19717  else if (West == West::Side) return 2461;
19718  else return 2462;
19719  else if (Power == 13)
19720  if (South == South::Up)
19721  if (West == West::Up) return 2463;
19722  else if (West == West::Side) return 2464;
19723  else return 2465;
19724  else if (South == South::Side)
19725  if (West == West::Up) return 2466;
19726  else if (West == West::Side) return 2467;
19727  else return 2468;
19728  else
19729  if (West == West::Up) return 2469;
19730  else if (West == West::Side) return 2470;
19731  else return 2471;
19732  else if (Power == 14)
19733  if (South == South::Up)
19734  if (West == West::Up) return 2472;
19735  else if (West == West::Side) return 2473;
19736  else return 2474;
19737  else if (South == South::Side)
19738  if (West == West::Up) return 2475;
19739  else if (West == West::Side) return 2476;
19740  else return 2477;
19741  else
19742  if (West == West::Up) return 2478;
19743  else if (West == West::Side) return 2479;
19744  else return 2480;
19745  else
19746  if (South == South::Up)
19747  if (West == West::Up) return 2481;
19748  else if (West == West::Side) return 2482;
19749  else return 2483;
19750  else if (South == South::Side)
19751  if (West == West::Up) return 2484;
19752  else if (West == West::Side) return 2485;
19753  else return 2486;
19754  else
19755  if (West == West::Up) return 2487;
19756  else if (West == West::Side) return 2488;
19757  else return 2489;
19758  else if (East == East::Side)
19759  if (North == North::Up)
19760  if (Power == 0)
19761  if (South == South::Up)
19762  if (West == West::Up) return 2490;
19763  else if (West == West::Side) return 2491;
19764  else return 2492;
19765  else if (South == South::Side)
19766  if (West == West::Up) return 2493;
19767  else if (West == West::Side) return 2494;
19768  else return 2495;
19769  else
19770  if (West == West::Up) return 2496;
19771  else if (West == West::Side) return 2497;
19772  else return 2498;
19773  else if (Power == 1)
19774  if (South == South::Up)
19775  if (West == West::Up) return 2499;
19776  else if (West == West::Side) return 2500;
19777  else return 2501;
19778  else if (South == South::Side)
19779  if (West == West::Up) return 2502;
19780  else if (West == West::Side) return 2503;
19781  else return 2504;
19782  else
19783  if (West == West::Up) return 2505;
19784  else if (West == West::Side) return 2506;
19785  else return 2507;
19786  else if (Power == 2)
19787  if (South == South::Up)
19788  if (West == West::Up) return 2508;
19789  else if (West == West::Side) return 2509;
19790  else return 2510;
19791  else if (South == South::Side)
19792  if (West == West::Up) return 2511;
19793  else if (West == West::Side) return 2512;
19794  else return 2513;
19795  else
19796  if (West == West::Up) return 2514;
19797  else if (West == West::Side) return 2515;
19798  else return 2516;
19799  else if (Power == 3)
19800  if (South == South::Up)
19801  if (West == West::Up) return 2517;
19802  else if (West == West::Side) return 2518;
19803  else return 2519;
19804  else if (South == South::Side)
19805  if (West == West::Up) return 2520;
19806  else if (West == West::Side) return 2521;
19807  else return 2522;
19808  else
19809  if (West == West::Up) return 2523;
19810  else if (West == West::Side) return 2524;
19811  else return 2525;
19812  else if (Power == 4)
19813  if (South == South::Up)
19814  if (West == West::Up) return 2526;
19815  else if (West == West::Side) return 2527;
19816  else return 2528;
19817  else if (South == South::Side)
19818  if (West == West::Up) return 2529;
19819  else if (West == West::Side) return 2530;
19820  else return 2531;
19821  else
19822  if (West == West::Up) return 2532;
19823  else if (West == West::Side) return 2533;
19824  else return 2534;
19825  else if (Power == 5)
19826  if (South == South::Up)
19827  if (West == West::Up) return 2535;
19828  else if (West == West::Side) return 2536;
19829  else return 2537;
19830  else if (South == South::Side)
19831  if (West == West::Up) return 2538;
19832  else if (West == West::Side) return 2539;
19833  else return 2540;
19834  else
19835  if (West == West::Up) return 2541;
19836  else if (West == West::Side) return 2542;
19837  else return 2543;
19838  else if (Power == 6)
19839  if (South == South::Up)
19840  if (West == West::Up) return 2544;
19841  else if (West == West::Side) return 2545;
19842  else return 2546;
19843  else if (South == South::Side)
19844  if (West == West::Up) return 2547;
19845  else if (West == West::Side) return 2548;
19846  else return 2549;
19847  else
19848  if (West == West::Up) return 2550;
19849  else if (West == West::Side) return 2551;
19850  else return 2552;
19851  else if (Power == 7)
19852  if (South == South::Up)
19853  if (West == West::Up) return 2553;
19854  else if (West == West::Side) return 2554;
19855  else return 2555;
19856  else if (South == South::Side)
19857  if (West == West::Up) return 2556;
19858  else if (West == West::Side) return 2557;
19859  else return 2558;
19860  else
19861  if (West == West::Up) return 2559;
19862  else if (West == West::Side) return 2560;
19863  else return 2561;
19864  else if (Power == 8)
19865  if (South == South::Up)
19866  if (West == West::Up) return 2562;
19867  else if (West == West::Side) return 2563;
19868  else return 2564;
19869  else if (South == South::Side)
19870  if (West == West::Up) return 2565;
19871  else if (West == West::Side) return 2566;
19872  else return 2567;
19873  else
19874  if (West == West::Up) return 2568;
19875  else if (West == West::Side) return 2569;
19876  else return 2570;
19877  else if (Power == 9)
19878  if (South == South::Up)
19879  if (West == West::Up) return 2571;
19880  else if (West == West::Side) return 2572;
19881  else return 2573;
19882  else if (South == South::Side)
19883  if (West == West::Up) return 2574;
19884  else if (West == West::Side) return 2575;
19885  else return 2576;
19886  else
19887  if (West == West::Up) return 2577;
19888  else if (West == West::Side) return 2578;
19889  else return 2579;
19890  else if (Power == 10)
19891  if (South == South::Up)
19892  if (West == West::Up) return 2580;
19893  else if (West == West::Side) return 2581;
19894  else return 2582;
19895  else if (South == South::Side)
19896  if (West == West::Up) return 2583;
19897  else if (West == West::Side) return 2584;
19898  else return 2585;
19899  else
19900  if (West == West::Up) return 2586;
19901  else if (West == West::Side) return 2587;
19902  else return 2588;
19903  else if (Power == 11)
19904  if (South == South::Up)
19905  if (West == West::Up) return 2589;
19906  else if (West == West::Side) return 2590;
19907  else return 2591;
19908  else if (South == South::Side)
19909  if (West == West::Up) return 2592;
19910  else if (West == West::Side) return 2593;
19911  else return 2594;
19912  else
19913  if (West == West::Up) return 2595;
19914  else if (West == West::Side) return 2596;
19915  else return 2597;
19916  else if (Power == 12)
19917  if (South == South::Up)
19918  if (West == West::Up) return 2598;
19919  else if (West == West::Side) return 2599;
19920  else return 2600;
19921  else if (South == South::Side)
19922  if (West == West::Up) return 2601;
19923  else if (West == West::Side) return 2602;
19924  else return 2603;
19925  else
19926  if (West == West::Up) return 2604;
19927  else if (West == West::Side) return 2605;
19928  else return 2606;
19929  else if (Power == 13)
19930  if (South == South::Up)
19931  if (West == West::Up) return 2607;
19932  else if (West == West::Side) return 2608;
19933  else return 2609;
19934  else if (South == South::Side)
19935  if (West == West::Up) return 2610;
19936  else if (West == West::Side) return 2611;
19937  else return 2612;
19938  else
19939  if (West == West::Up) return 2613;
19940  else if (West == West::Side) return 2614;
19941  else return 2615;
19942  else if (Power == 14)
19943  if (South == South::Up)
19944  if (West == West::Up) return 2616;
19945  else if (West == West::Side) return 2617;
19946  else return 2618;
19947  else if (South == South::Side)
19948  if (West == West::Up) return 2619;
19949  else if (West == West::Side) return 2620;
19950  else return 2621;
19951  else
19952  if (West == West::Up) return 2622;
19953  else if (West == West::Side) return 2623;
19954  else return 2624;
19955  else
19956  if (South == South::Up)
19957  if (West == West::Up) return 2625;
19958  else if (West == West::Side) return 2626;
19959  else return 2627;
19960  else if (South == South::Side)
19961  if (West == West::Up) return 2628;
19962  else if (West == West::Side) return 2629;
19963  else return 2630;
19964  else
19965  if (West == West::Up) return 2631;
19966  else if (West == West::Side) return 2632;
19967  else return 2633;
19968  else if (North == North::Side)
19969  if (Power == 0)
19970  if (South == South::Up)
19971  if (West == West::Up) return 2634;
19972  else if (West == West::Side) return 2635;
19973  else return 2636;
19974  else if (South == South::Side)
19975  if (West == West::Up) return 2637;
19976  else if (West == West::Side) return 2638;
19977  else return 2639;
19978  else
19979  if (West == West::Up) return 2640;
19980  else if (West == West::Side) return 2641;
19981  else return 2642;
19982  else if (Power == 1)
19983  if (South == South::Up)
19984  if (West == West::Up) return 2643;
19985  else if (West == West::Side) return 2644;
19986  else return 2645;
19987  else if (South == South::Side)
19988  if (West == West::Up) return 2646;
19989  else if (West == West::Side) return 2647;
19990  else return 2648;
19991  else
19992  if (West == West::Up) return 2649;
19993  else if (West == West::Side) return 2650;
19994  else return 2651;
19995  else if (Power == 2)
19996  if (South == South::Up)
19997  if (West == West::Up) return 2652;
19998  else if (West == West::Side) return 2653;
19999  else return 2654;
20000  else if (South == South::Side)
20001  if (West == West::Up) return 2655;
20002  else if (West == West::Side) return 2656;
20003  else return 2657;
20004  else
20005  if (West == West::Up) return 2658;
20006  else if (West == West::Side) return 2659;
20007  else return 2660;
20008  else if (Power == 3)
20009  if (South == South::Up)
20010  if (West == West::Up) return 2661;
20011  else if (West == West::Side) return 2662;
20012  else return 2663;
20013  else if (South == South::Side)
20014  if (West == West::Up) return 2664;
20015  else if (West == West::Side) return 2665;
20016  else return 2666;
20017  else
20018  if (West == West::Up) return 2667;
20019  else if (West == West::Side) return 2668;
20020  else return 2669;
20021  else if (Power == 4)
20022  if (South == South::Up)
20023  if (West == West::Up) return 2670;
20024  else if (West == West::Side) return 2671;
20025  else return 2672;
20026  else if (South == South::Side)
20027  if (West == West::Up) return 2673;
20028  else if (West == West::Side) return 2674;
20029  else return 2675;
20030  else
20031  if (West == West::Up) return 2676;
20032  else if (West == West::Side) return 2677;
20033  else return 2678;
20034  else if (Power == 5)
20035  if (South == South::Up)
20036  if (West == West::Up) return 2679;
20037  else if (West == West::Side) return 2680;
20038  else return 2681;
20039  else if (South == South::Side)
20040  if (West == West::Up) return 2682;
20041  else if (West == West::Side) return 2683;
20042  else return 2684;
20043  else
20044  if (West == West::Up) return 2685;
20045  else if (West == West::Side) return 2686;
20046  else return 2687;
20047  else if (Power == 6)
20048  if (South == South::Up)
20049  if (West == West::Up) return 2688;
20050  else if (West == West::Side) return 2689;
20051  else return 2690;
20052  else if (South == South::Side)
20053  if (West == West::Up) return 2691;
20054  else if (West == West::Side) return 2692;
20055  else return 2693;
20056  else
20057  if (West == West::Up) return 2694;
20058  else if (West == West::Side) return 2695;
20059  else return 2696;
20060  else if (Power == 7)
20061  if (South == South::Up)
20062  if (West == West::Up) return 2697;
20063  else if (West == West::Side) return 2698;
20064  else return 2699;
20065  else if (South == South::Side)
20066  if (West == West::Up) return 2700;
20067  else if (West == West::Side) return 2701;
20068  else return 2702;
20069  else
20070  if (West == West::Up) return 2703;
20071  else if (West == West::Side) return 2704;
20072  else return 2705;
20073  else if (Power == 8)
20074  if (South == South::Up)
20075  if (West == West::Up) return 2706;
20076  else if (West == West::Side) return 2707;
20077  else return 2708;
20078  else if (South == South::Side)
20079  if (West == West::Up) return 2709;
20080  else if (West == West::Side) return 2710;
20081  else return 2711;
20082  else
20083  if (West == West::Up) return 2712;
20084  else if (West == West::Side) return 2713;
20085  else return 2714;
20086  else if (Power == 9)
20087  if (South == South::Up)
20088  if (West == West::Up) return 2715;
20089  else if (West == West::Side) return 2716;
20090  else return 2717;
20091  else if (South == South::Side)
20092  if (West == West::Up) return 2718;
20093  else if (West == West::Side) return 2719;
20094  else return 2720;
20095  else
20096  if (West == West::Up) return 2721;
20097  else if (West == West::Side) return 2722;
20098  else return 2723;
20099  else if (Power == 10)
20100  if (South == South::Up)
20101  if (West == West::Up) return 2724;
20102  else if (West == West::Side) return 2725;
20103  else return 2726;
20104  else if (South == South::Side)
20105  if (West == West::Up) return 2727;
20106  else if (West == West::Side) return 2728;
20107  else return 2729;
20108  else
20109  if (West == West::Up) return 2730;
20110  else if (West == West::Side) return 2731;
20111  else return 2732;
20112  else if (Power == 11)
20113  if (South == South::Up)
20114  if (West == West::Up) return 2733;
20115  else if (West == West::Side) return 2734;
20116  else return 2735;
20117  else if (South == South::Side)
20118  if (West == West::Up) return 2736;
20119  else if (West == West::Side) return 2737;
20120  else return 2738;
20121  else
20122  if (West == West::Up) return 2739;
20123  else if (West == West::Side) return 2740;
20124  else return 2741;
20125  else if (Power == 12)
20126  if (South == South::Up)
20127  if (West == West::Up) return 2742;
20128  else if (West == West::Side) return 2743;
20129  else return 2744;
20130  else if (South == South::Side)
20131  if (West == West::Up) return 2745;
20132  else if (West == West::Side) return 2746;
20133  else return 2747;
20134  else
20135  if (West == West::Up) return 2748;
20136  else if (West == West::Side) return 2749;
20137  else return 2750;
20138  else if (Power == 13)
20139  if (South == South::Up)
20140  if (West == West::Up) return 2751;
20141  else if (West == West::Side) return 2752;
20142  else return 2753;
20143  else if (South == South::Side)
20144  if (West == West::Up) return 2754;
20145  else if (West == West::Side) return 2755;
20146  else return 2756;
20147  else
20148  if (West == West::Up) return 2757;
20149  else if (West == West::Side) return 2758;
20150  else return 2759;
20151  else if (Power == 14)
20152  if (South == South::Up)
20153  if (West == West::Up) return 2760;
20154  else if (West == West::Side) return 2761;
20155  else return 2762;
20156  else if (South == South::Side)
20157  if (West == West::Up) return 2763;
20158  else if (West == West::Side) return 2764;
20159  else return 2765;
20160  else
20161  if (West == West::Up) return 2766;
20162  else if (West == West::Side) return 2767;
20163  else return 2768;
20164  else
20165  if (South == South::Up)
20166  if (West == West::Up) return 2769;
20167  else if (West == West::Side) return 2770;
20168  else return 2771;
20169  else if (South == South::Side)
20170  if (West == West::Up) return 2772;
20171  else if (West == West::Side) return 2773;
20172  else return 2774;
20173  else
20174  if (West == West::Up) return 2775;
20175  else if (West == West::Side) return 2776;
20176  else return 2777;
20177  else
20178  if (Power == 0)
20179  if (South == South::Up)
20180  if (West == West::Up) return 2778;
20181  else if (West == West::Side) return 2779;
20182  else return 2780;
20183  else if (South == South::Side)
20184  if (West == West::Up) return 2781;
20185  else if (West == West::Side) return 2782;
20186  else return 2783;
20187  else
20188  if (West == West::Up) return 2784;
20189  else if (West == West::Side) return 2785;
20190  else return 2786;
20191  else if (Power == 1)
20192  if (South == South::Up)
20193  if (West == West::Up) return 2787;
20194  else if (West == West::Side) return 2788;
20195  else return 2789;
20196  else if (South == South::Side)
20197  if (West == West::Up) return 2790;
20198  else if (West == West::Side) return 2791;
20199  else return 2792;
20200  else
20201  if (West == West::Up) return 2793;
20202  else if (West == West::Side) return 2794;
20203  else return 2795;
20204  else if (Power == 2)
20205  if (South == South::Up)
20206  if (West == West::Up) return 2796;
20207  else if (West == West::Side) return 2797;
20208  else return 2798;
20209  else if (South == South::Side)
20210  if (West == West::Up) return 2799;
20211  else if (West == West::Side) return 2800;
20212  else return 2801;
20213  else
20214  if (West == West::Up) return 2802;
20215  else if (West == West::Side) return 2803;
20216  else return 2804;
20217  else if (Power == 3)
20218  if (South == South::Up)
20219  if (West == West::Up) return 2805;
20220  else if (West == West::Side) return 2806;
20221  else return 2807;
20222  else if (South == South::Side)
20223  if (West == West::Up) return 2808;
20224  else if (West == West::Side) return 2809;
20225  else return 2810;
20226  else
20227  if (West == West::Up) return 2811;
20228  else if (West == West::Side) return 2812;
20229  else return 2813;
20230  else if (Power == 4)
20231  if (South == South::Up)
20232  if (West == West::Up) return 2814;
20233  else if (West == West::Side) return 2815;
20234  else return 2816;
20235  else if (South == South::Side)
20236  if (West == West::Up) return 2817;
20237  else if (West == West::Side) return 2818;
20238  else return 2819;
20239  else
20240  if (West == West::Up) return 2820;
20241  else if (West == West::Side) return 2821;
20242  else return 2822;
20243  else if (Power == 5)
20244  if (South == South::Up)
20245  if (West == West::Up) return 2823;
20246  else if (West == West::Side) return 2824;
20247  else return 2825;
20248  else if (South == South::Side)
20249  if (West == West::Up) return 2826;
20250  else if (West == West::Side) return 2827;
20251  else return 2828;
20252  else
20253  if (West == West::Up) return 2829;
20254  else if (West == West::Side) return 2830;
20255  else return 2831;
20256  else if (Power == 6)
20257  if (South == South::Up)
20258  if (West == West::Up) return 2832;
20259  else if (West == West::Side) return 2833;
20260  else return 2834;
20261  else if (South == South::Side)
20262  if (West == West::Up) return 2835;
20263  else if (West == West::Side) return 2836;
20264  else return 2837;
20265  else
20266  if (West == West::Up) return 2838;
20267  else if (West == West::Side) return 2839;
20268  else return 2840;
20269  else if (Power == 7)
20270  if (South == South::Up)
20271  if (West == West::Up) return 2841;
20272  else if (West == West::Side) return 2842;
20273  else return 2843;
20274  else if (South == South::Side)
20275  if (West == West::Up) return 2844;
20276  else if (West == West::Side) return 2845;
20277  else return 2846;
20278  else
20279  if (West == West::Up) return 2847;
20280  else if (West == West::Side) return 2848;
20281  else return 2849;
20282  else if (Power == 8)
20283  if (South == South::Up)
20284  if (West == West::Up) return 2850;
20285  else if (West == West::Side) return 2851;
20286  else return 2852;
20287  else if (South == South::Side)
20288  if (West == West::Up) return 2853;
20289  else if (West == West::Side) return 2854;
20290  else return 2855;
20291  else
20292  if (West == West::Up) return 2856;
20293  else if (West == West::Side) return 2857;
20294  else return 2858;
20295  else if (Power == 9)
20296  if (South == South::Up)
20297  if (West == West::Up) return 2859;
20298  else if (West == West::Side) return 2860;
20299  else return 2861;
20300  else if (South == South::Side)
20301  if (West == West::Up) return 2862;
20302  else if (West == West::Side) return 2863;
20303  else return 2864;
20304  else
20305  if (West == West::Up) return 2865;
20306  else if (West == West::Side) return 2866;
20307  else return 2867;
20308  else if (Power == 10)
20309  if (South == South::Up)
20310  if (West == West::Up) return 2868;
20311  else if (West == West::Side) return 2869;
20312  else return 2870;
20313  else if (South == South::Side)
20314  if (West == West::Up) return 2871;
20315  else if (West == West::Side) return 2872;
20316  else return 2873;
20317  else
20318  if (West == West::Up) return 2874;
20319  else if (West == West::Side) return 2875;
20320  else return 2876;
20321  else if (Power == 11)
20322  if (South == South::Up)
20323  if (West == West::Up) return 2877;
20324  else if (West == West::Side) return 2878;
20325  else return 2879;
20326  else if (South == South::Side)
20327  if (West == West::Up) return 2880;
20328  else if (West == West::Side) return 2881;
20329  else return 2882;
20330  else
20331  if (West == West::Up) return 2883;
20332  else if (West == West::Side) return 2884;
20333  else return 2885;
20334  else if (Power == 12)
20335  if (South == South::Up)
20336  if (West == West::Up) return 2886;
20337  else if (West == West::Side) return 2887;
20338  else return 2888;
20339  else if (South == South::Side)
20340  if (West == West::Up) return 2889;
20341  else if (West == West::Side) return 2890;
20342  else return 2891;
20343  else
20344  if (West == West::Up) return 2892;
20345  else if (West == West::Side) return 2893;
20346  else return 2894;
20347  else if (Power == 13)
20348  if (South == South::Up)
20349  if (West == West::Up) return 2895;
20350  else if (West == West::Side) return 2896;
20351  else return 2897;
20352  else if (South == South::Side)
20353  if (West == West::Up) return 2898;
20354  else if (West == West::Side) return 2899;
20355  else return 2900;
20356  else
20357  if (West == West::Up) return 2901;
20358  else if (West == West::Side) return 2902;
20359  else return 2903;
20360  else if (Power == 14)
20361  if (South == South::Up)
20362  if (West == West::Up) return 2904;
20363  else if (West == West::Side) return 2905;
20364  else return 2906;
20365  else if (South == South::Side)
20366  if (West == West::Up) return 2907;
20367  else if (West == West::Side) return 2908;
20368  else return 2909;
20369  else
20370  if (West == West::Up) return 2910;
20371  else if (West == West::Side) return 2911;
20372  else return 2912;
20373  else
20374  if (South == South::Up)
20375  if (West == West::Up) return 2913;
20376  else if (West == West::Side) return 2914;
20377  else return 2915;
20378  else if (South == South::Side)
20379  if (West == West::Up) return 2916;
20380  else if (West == West::Side) return 2917;
20381  else return 2918;
20382  else
20383  if (West == West::Up) return 2919;
20384  else if (West == West::Side) return 2920;
20385  else return 2921;
20386  else
20387  if (North == North::Up)
20388  if (Power == 0)
20389  if (South == South::Up)
20390  if (West == West::Up) return 2922;
20391  else if (West == West::Side) return 2923;
20392  else return 2924;
20393  else if (South == South::Side)
20394  if (West == West::Up) return 2925;
20395  else if (West == West::Side) return 2926;
20396  else return 2927;
20397  else
20398  if (West == West::Up) return 2928;
20399  else if (West == West::Side) return 2929;
20400  else return 2930;
20401  else if (Power == 1)
20402  if (South == South::Up)
20403  if (West == West::Up) return 2931;
20404  else if (West == West::Side) return 2932;
20405  else return 2933;
20406  else if (South == South::Side)
20407  if (West == West::Up) return 2934;
20408  else if (West == West::Side) return 2935;
20409  else return 2936;
20410  else
20411  if (West == West::Up) return 2937;
20412  else if (West == West::Side) return 2938;
20413  else return 2939;
20414  else if (Power == 2)
20415  if (South == South::Up)
20416  if (West == West::Up) return 2940;
20417  else if (West == West::Side) return 2941;
20418  else return 2942;
20419  else if (South == South::Side)
20420  if (West == West::Up) return 2943;
20421  else if (West == West::Side) return 2944;
20422  else return 2945;
20423  else
20424  if (West == West::Up) return 2946;
20425  else if (West == West::Side) return 2947;
20426  else return 2948;
20427  else if (Power == 3)
20428  if (South == South::Up)
20429  if (West == West::Up) return 2949;
20430  else if (West == West::Side) return 2950;
20431  else return 2951;
20432  else if (South == South::Side)
20433  if (West == West::Up) return 2952;
20434  else if (West == West::Side) return 2953;
20435  else return 2954;
20436  else
20437  if (West == West::Up) return 2955;
20438  else if (West == West::Side) return 2956;
20439  else return 2957;
20440  else if (Power == 4)
20441  if (South == South::Up)
20442  if (West == West::Up) return 2958;
20443  else if (West == West::Side) return 2959;
20444  else return 2960;
20445  else if (South == South::Side)
20446  if (West == West::Up) return 2961;
20447  else if (West == West::Side) return 2962;
20448  else return 2963;
20449  else
20450  if (West == West::Up) return 2964;
20451  else if (West == West::Side) return 2965;
20452  else return 2966;
20453  else if (Power == 5)
20454  if (South == South::Up)
20455  if (West == West::Up) return 2967;
20456  else if (West == West::Side) return 2968;
20457  else return 2969;
20458  else if (South == South::Side)
20459  if (West == West::Up) return 2970;
20460  else if (West == West::Side) return 2971;
20461  else return 2972;
20462  else
20463  if (West == West::Up) return 2973;
20464  else if (West == West::Side) return 2974;
20465  else return 2975;
20466  else if (Power == 6)
20467  if (South == South::Up)
20468  if (West == West::Up) return 2976;
20469  else if (West == West::Side) return 2977;
20470  else return 2978;
20471  else if (South == South::Side)
20472  if (West == West::Up) return 2979;
20473  else if (West == West::Side) return 2980;
20474  else return 2981;
20475  else
20476  if (West == West::Up) return 2982;
20477  else if (West == West::Side) return 2983;
20478  else return 2984;
20479  else if (Power == 7)
20480  if (South == South::Up)
20481  if (West == West::Up) return 2985;
20482  else if (West == West::Side) return 2986;
20483  else return 2987;
20484  else if (South == South::Side)
20485  if (West == West::Up) return 2988;
20486  else if (West == West::Side) return 2989;
20487  else return 2990;
20488  else
20489  if (West == West::Up) return 2991;
20490  else if (West == West::Side) return 2992;
20491  else return 2993;
20492  else if (Power == 8)
20493  if (South == South::Up)
20494  if (West == West::Up) return 2994;
20495  else if (West == West::Side) return 2995;
20496  else return 2996;
20497  else if (South == South::Side)
20498  if (West == West::Up) return 2997;
20499  else if (West == West::Side) return 2998;
20500  else return 2999;
20501  else
20502  if (West == West::Up) return 3000;
20503  else if (West == West::Side) return 3001;
20504  else return 3002;
20505  else if (Power == 9)
20506  if (South == South::Up)
20507  if (West == West::Up) return 3003;
20508  else if (West == West::Side) return 3004;
20509  else return 3005;
20510  else if (South == South::Side)
20511  if (West == West::Up) return 3006;
20512  else if (West == West::Side) return 3007;
20513  else return 3008;
20514  else
20515  if (West == West::Up) return 3009;
20516  else if (West == West::Side) return 3010;
20517  else return 3011;
20518  else if (Power == 10)
20519  if (South == South::Up)
20520  if (West == West::Up) return 3012;
20521  else if (West == West::Side) return 3013;
20522  else return 3014;
20523  else if (South == South::Side)
20524  if (West == West::Up) return 3015;
20525  else if (West == West::Side) return 3016;
20526  else return 3017;
20527  else
20528  if (West == West::Up) return 3018;
20529  else if (West == West::Side) return 3019;
20530  else return 3020;
20531  else if (Power == 11)
20532  if (South == South::Up)
20533  if (West == West::Up) return 3021;
20534  else if (West == West::Side) return 3022;
20535  else return 3023;
20536  else if (South == South::Side)
20537  if (West == West::Up) return 3024;
20538  else if (West == West::Side) return 3025;
20539  else return 3026;
20540  else
20541  if (West == West::Up) return 3027;
20542  else if (West == West::Side) return 3028;
20543  else return 3029;
20544  else if (Power == 12)
20545  if (South == South::Up)
20546  if (West == West::Up) return 3030;
20547  else if (West == West::Side) return 3031;
20548  else return 3032;
20549  else if (South == South::Side)
20550  if (West == West::Up) return 3033;
20551  else if (West == West::Side) return 3034;
20552  else return 3035;
20553  else
20554  if (West == West::Up) return 3036;
20555  else if (West == West::Side) return 3037;
20556  else return 3038;
20557  else if (Power == 13)
20558  if (South == South::Up)
20559  if (West == West::Up) return 3039;
20560  else if (West == West::Side) return 3040;
20561  else return 3041;
20562  else if (South == South::Side)
20563  if (West == West::Up) return 3042;
20564  else if (West == West::Side) return 3043;
20565  else return 3044;
20566  else
20567  if (West == West::Up) return 3045;
20568  else if (West == West::Side) return 3046;
20569  else return 3047;
20570  else if (Power == 14)
20571  if (South == South::Up)
20572  if (West == West::Up) return 3048;
20573  else if (West == West::Side) return 3049;
20574  else return 3050;
20575  else if (South == South::Side)
20576  if (West == West::Up) return 3051;
20577  else if (West == West::Side) return 3052;
20578  else return 3053;
20579  else
20580  if (West == West::Up) return 3054;
20581  else if (West == West::Side) return 3055;
20582  else return 3056;
20583  else
20584  if (South == South::Up)
20585  if (West == West::Up) return 3057;
20586  else if (West == West::Side) return 3058;
20587  else return 3059;
20588  else if (South == South::Side)
20589  if (West == West::Up) return 3060;
20590  else if (West == West::Side) return 3061;
20591  else return 3062;
20592  else
20593  if (West == West::Up) return 3063;
20594  else if (West == West::Side) return 3064;
20595  else return 3065;
20596  else if (North == North::Side)
20597  if (Power == 0)
20598  if (South == South::Up)
20599  if (West == West::Up) return 3066;
20600  else if (West == West::Side) return 3067;
20601  else return 3068;
20602  else if (South == South::Side)
20603  if (West == West::Up) return 3069;
20604  else if (West == West::Side) return 3070;
20605  else return 3071;
20606  else
20607  if (West == West::Up) return 3072;
20608  else if (West == West::Side) return 3073;
20609  else return 3074;
20610  else if (Power == 1)
20611  if (South == South::Up)
20612  if (West == West::Up) return 3075;
20613  else if (West == West::Side) return 3076;
20614  else return 3077;
20615  else if (South == South::Side)
20616  if (West == West::Up) return 3078;
20617  else if (West == West::Side) return 3079;
20618  else return 3080;
20619  else
20620  if (West == West::Up) return 3081;
20621  else if (West == West::Side) return 3082;
20622  else return 3083;
20623  else if (Power == 2)
20624  if (South == South::Up)
20625  if (West == West::Up) return 3084;
20626  else if (West == West::Side) return 3085;
20627  else return 3086;
20628  else if (South == South::Side)
20629  if (West == West::Up) return 3087;
20630  else if (West == West::Side) return 3088;
20631  else return 3089;
20632  else
20633  if (West == West::Up) return 3090;
20634  else if (West == West::Side) return 3091;
20635  else return 3092;
20636  else if (Power == 3)
20637  if (South == South::Up)
20638  if (West == West::Up) return 3093;
20639  else if (West == West::Side) return 3094;
20640  else return 3095;
20641  else if (South == South::Side)
20642  if (West == West::Up) return 3096;
20643  else if (West == West::Side) return 3097;
20644  else return 3098;
20645  else
20646  if (West == West::Up) return 3099;
20647  else if (West == West::Side) return 3100;
20648  else return 3101;
20649  else if (Power == 4)
20650  if (South == South::Up)
20651  if (West == West::Up) return 3102;
20652  else if (West == West::Side) return 3103;
20653  else return 3104;
20654  else if (South == South::Side)
20655  if (West == West::Up) return 3105;
20656  else if (West == West::Side) return 3106;
20657  else return 3107;
20658  else
20659  if (West == West::Up) return 3108;
20660  else if (West == West::Side) return 3109;
20661  else return 3110;
20662  else if (Power == 5)
20663  if (South == South::Up)
20664  if (West == West::Up) return 3111;
20665  else if (West == West::Side) return 3112;
20666  else return 3113;
20667  else if (South == South::Side)
20668  if (West == West::Up) return 3114;
20669  else if (West == West::Side) return 3115;
20670  else return 3116;
20671  else
20672  if (West == West::Up) return 3117;
20673  else if (West == West::Side) return 3118;
20674  else return 3119;
20675  else if (Power == 6)
20676  if (South == South::Up)
20677  if (West == West::Up) return 3120;
20678  else if (West == West::Side) return 3121;
20679  else return 3122;
20680  else if (South == South::Side)
20681  if (West == West::Up) return 3123;
20682  else if (West == West::Side) return 3124;
20683  else return 3125;
20684  else
20685  if (West == West::Up) return 3126;
20686  else if (West == West::Side) return 3127;
20687  else return 3128;
20688  else if (Power == 7)
20689  if (South == South::Up)
20690  if (West == West::Up) return 3129;
20691  else if (West == West::Side) return 3130;
20692  else return 3131;
20693  else if (South == South::Side)
20694  if (West == West::Up) return 3132;
20695  else if (West == West::Side) return 3133;
20696  else return 3134;
20697  else
20698  if (West == West::Up) return 3135;
20699  else if (West == West::Side) return 3136;
20700  else return 3137;
20701  else if (Power == 8)
20702  if (South == South::Up)
20703  if (West == West::Up) return 3138;
20704  else if (West == West::Side) return 3139;
20705  else return 3140;
20706  else if (South == South::Side)
20707  if (West == West::Up) return 3141;
20708  else if (West == West::Side) return 3142;
20709  else return 3143;
20710  else
20711  if (West == West::Up) return 3144;
20712  else if (West == West::Side) return 3145;
20713  else return 3146;
20714  else if (Power == 9)
20715  if (South == South::Up)
20716  if (West == West::Up) return 3147;
20717  else if (West == West::Side) return 3148;
20718  else return 3149;
20719  else if (South == South::Side)
20720  if (West == West::Up) return 3150;
20721  else if (West == West::Side) return 3151;
20722  else return 3152;
20723  else
20724  if (West == West::Up) return 3153;
20725  else if (West == West::Side) return 3154;
20726  else return 3155;
20727  else if (Power == 10)
20728  if (South == South::Up)
20729  if (West == West::Up) return 3156;
20730  else if (West == West::Side) return 3157;
20731  else return 3158;
20732  else if (South == South::Side)
20733  if (West == West::Up) return 3159;
20734  else if (West == West::Side) return 3160;
20735  else return 3161;
20736  else
20737  if (West == West::Up) return 3162;
20738  else if (West == West::Side) return 3163;
20739  else return 3164;
20740  else if (Power == 11)
20741  if (South == South::Up)
20742  if (West == West::Up) return 3165;
20743  else if (West == West::Side) return 3166;
20744  else return 3167;
20745  else if (South == South::Side)
20746  if (West == West::Up) return 3168;
20747  else if (West == West::Side) return 3169;
20748  else return 3170;
20749  else
20750  if (West == West::Up) return 3171;
20751  else if (West == West::Side) return 3172;
20752  else return 3173;
20753  else if (Power == 12)
20754  if (South == South::Up)
20755  if (West == West::Up) return 3174;
20756  else if (West == West::Side) return 3175;
20757  else return 3176;
20758  else if (South == South::Side)
20759  if (West == West::Up) return 3177;
20760  else if (West == West::Side) return 3178;
20761  else return 3179;
20762  else
20763  if (West == West::Up) return 3180;
20764  else if (West == West::Side) return 3181;
20765  else return 3182;
20766  else if (Power == 13)
20767  if (South == South::Up)
20768  if (West == West::Up) return 3183;
20769  else if (West == West::Side) return 3184;
20770  else return 3185;
20771  else if (South == South::Side)
20772  if (West == West::Up) return 3186;
20773  else if (West == West::Side) return 3187;
20774  else return 3188;
20775  else
20776  if (West == West::Up) return 3189;
20777  else if (West == West::Side) return 3190;
20778  else return 3191;
20779  else if (Power == 14)
20780  if (South == South::Up)
20781  if (West == West::Up) return 3192;
20782  else if (West == West::Side) return 3193;
20783  else return 3194;
20784  else if (South == South::Side)
20785  if (West == West::Up) return 3195;
20786  else if (West == West::Side) return 3196;
20787  else return 3197;
20788  else
20789  if (West == West::Up) return 3198;
20790  else if (West == West::Side) return 3199;
20791  else return 3200;
20792  else
20793  if (South == South::Up)
20794  if (West == West::Up) return 3201;
20795  else if (West == West::Side) return 3202;
20796  else return 3203;
20797  else if (South == South::Side)
20798  if (West == West::Up) return 3204;
20799  else if (West == West::Side) return 3205;
20800  else return 3206;
20801  else
20802  if (West == West::Up) return 3207;
20803  else if (West == West::Side) return 3208;
20804  else return 3209;
20805  else
20806  if (Power == 0)
20807  if (South == South::Up)
20808  if (West == West::Up) return 3210;
20809  else if (West == West::Side) return 3211;
20810  else return 3212;
20811  else if (South == South::Side)
20812  if (West == West::Up) return 3213;
20813  else if (West == West::Side) return 3214;
20814  else return 3215;
20815  else
20816  if (West == West::Up) return 3216;
20817  else if (West == West::Side) return 3217;
20818  else return 3218;
20819  else if (Power == 1)
20820  if (South == South::Up)
20821  if (West == West::Up) return 3219;
20822  else if (West == West::Side) return 3220;
20823  else return 3221;
20824  else if (South == South::Side)
20825  if (West == West::Up) return 3222;
20826  else if (West == West::Side) return 3223;
20827  else return 3224;
20828  else
20829  if (West == West::Up) return 3225;
20830  else if (West == West::Side) return 3226;
20831  else return 3227;
20832  else if (Power == 2)
20833  if (South == South::Up)
20834  if (West == West::Up) return 3228;
20835  else if (West == West::Side) return 3229;
20836  else return 3230;
20837  else if (South == South::Side)
20838  if (West == West::Up) return 3231;
20839  else if (West == West::Side) return 3232;
20840  else return 3233;
20841  else
20842  if (West == West::Up) return 3234;
20843  else if (West == West::Side) return 3235;
20844  else return 3236;
20845  else if (Power == 3)
20846  if (South == South::Up)
20847  if (West == West::Up) return 3237;
20848  else if (West == West::Side) return 3238;
20849  else return 3239;
20850  else if (South == South::Side)
20851  if (West == West::Up) return 3240;
20852  else if (West == West::Side) return 3241;
20853  else return 3242;
20854  else
20855  if (West == West::Up) return 3243;
20856  else if (West == West::Side) return 3244;
20857  else return 3245;
20858  else if (Power == 4)
20859  if (South == South::Up)
20860  if (West == West::Up) return 3246;
20861  else if (West == West::Side) return 3247;
20862  else return 3248;
20863  else if (South == South::Side)
20864  if (West == West::Up) return 3249;
20865  else if (West == West::Side) return 3250;
20866  else return 3251;
20867  else
20868  if (West == West::Up) return 3252;
20869  else if (West == West::Side) return 3253;
20870  else return 3254;
20871  else if (Power == 5)
20872  if (South == South::Up)
20873  if (West == West::Up) return 3255;
20874  else if (West == West::Side) return 3256;
20875  else return 3257;
20876  else if (South == South::Side)
20877  if (West == West::Up) return 3258;
20878  else if (West == West::Side) return 3259;
20879  else return 3260;
20880  else
20881  if (West == West::Up) return 3261;
20882  else if (West == West::Side) return 3262;
20883  else return 3263;
20884  else if (Power == 6)
20885  if (South == South::Up)
20886  if (West == West::Up) return 3264;
20887  else if (West == West::Side) return 3265;
20888  else return 3266;
20889  else if (South == South::Side)
20890  if (West == West::Up) return 3267;
20891  else if (West == West::Side) return 3268;
20892  else return 3269;
20893  else
20894  if (West == West::Up) return 3270;
20895  else if (West == West::Side) return 3271;
20896  else return 3272;
20897  else if (Power == 7)
20898  if (South == South::Up)
20899  if (West == West::Up) return 3273;
20900  else if (West == West::Side) return 3274;
20901  else return 3275;
20902  else if (South == South::Side)
20903  if (West == West::Up) return 3276;
20904  else if (West == West::Side) return 3277;
20905  else return 3278;
20906  else
20907  if (West == West::Up) return 3279;
20908  else if (West == West::Side) return 3280;
20909  else return 3281;
20910  else if (Power == 8)
20911  if (South == South::Up)
20912  if (West == West::Up) return 3282;
20913  else if (West == West::Side) return 3283;
20914  else return 3284;
20915  else if (South == South::Side)
20916  if (West == West::Up) return 3285;
20917  else if (West == West::Side) return 3286;
20918  else return 3287;
20919  else
20920  if (West == West::Up) return 3288;
20921  else if (West == West::Side) return 3289;
20922  else return 3290;
20923  else if (Power == 9)
20924  if (South == South::Up)
20925  if (West == West::Up) return 3291;
20926  else if (West == West::Side) return 3292;
20927  else return 3293;
20928  else if (South == South::Side)
20929  if (West == West::Up) return 3294;
20930  else if (West == West::Side) return 3295;
20931  else return 3296;
20932  else
20933  if (West == West::Up) return 3297;
20934  else if (West == West::Side) return 3298;
20935  else return 3299;
20936  else if (Power == 10)
20937  if (South == South::Up)
20938  if (West == West::Up) return 3300;
20939  else if (West == West::Side) return 3301;
20940  else return 3302;
20941  else if (South == South::Side)
20942  if (West == West::Up) return 3303;
20943  else if (West == West::Side) return 3304;
20944  else return 3305;
20945  else
20946  if (West == West::Up) return 3306;
20947  else if (West == West::Side) return 3307;
20948  else return 3308;
20949  else if (Power == 11)
20950  if (South == South::Up)
20951  if (West == West::Up) return 3309;
20952  else if (West == West::Side) return 3310;
20953  else return 3311;
20954  else if (South == South::Side)
20955  if (West == West::Up) return 3312;
20956  else if (West == West::Side) return 3313;
20957  else return 3314;
20958  else
20959  if (West == West::Up) return 3315;
20960  else if (West == West::Side) return 3316;
20961  else return 3317;
20962  else if (Power == 12)
20963  if (South == South::Up)
20964  if (West == West::Up) return 3318;
20965  else if (West == West::Side) return 3319;
20966  else return 3320;
20967  else if (South == South::Side)
20968  if (West == West::Up) return 3321;
20969  else if (West == West::Side) return 3322;
20970  else return 3323;
20971  else
20972  if (West == West::Up) return 3324;
20973  else if (West == West::Side) return 3325;
20974  else return 3326;
20975  else if (Power == 13)
20976  if (South == South::Up)
20977  if (West == West::Up) return 3327;
20978  else if (West == West::Side) return 3328;
20979  else return 3329;
20980  else if (South == South::Side)
20981  if (West == West::Up) return 3330;
20982  else if (West == West::Side) return 3331;
20983  else return 3332;
20984  else
20985  if (West == West::Up) return 3333;
20986  else if (West == West::Side) return 3334;
20987  else return 3335;
20988  else if (Power == 14)
20989  if (South == South::Up)
20990  if (West == West::Up) return 3336;
20991  else if (West == West::Side) return 3337;
20992  else return 3338;
20993  else if (South == South::Side)
20994  if (West == West::Up) return 3339;
20995  else if (West == West::Side) return 3340;
20996  else return 3341;
20997  else
20998  if (West == West::Up) return 3342;
20999  else if (West == West::Side) return 3343;
21000  else return 3344;
21001  else
21002  if (South == South::Up)
21003  if (West == West::Up) return 3345;
21004  else if (West == West::Side) return 3346;
21005  else return 3347;
21006  else if (South == South::Side)
21007  if (West == West::Up) return 3348;
21008  else if (West == West::Side) return 3349;
21009  else return 3350;
21010  else
21011  if (West == West::Up) return 3351;
21012  else if (West == West::Side) return 3352;
21013  else return 3353;
21014  }
21016  enum East East(BlockState Block);
21017  enum North North(BlockState Block);
21018  unsigned char Power(BlockState Block);
21019  enum South South(BlockState Block);
21020  enum West West(BlockState Block);
21021  }
21022  namespace Repeater
21023  {
21024  constexpr BlockState Repeater(const unsigned char Delay, const eBlockFace Facing, const bool Locked, const bool Powered)
21025  {
21026  if (Delay == 1)
21028  if (Locked)
21029  if (Powered) return 4031;
21030  else return 4032;
21031  else
21032  if (Powered) return 4033;
21033  else return 4034;
21034  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
21035  if (Locked)
21036  if (Powered) return 4035;
21037  else return 4036;
21038  else
21039  if (Powered) return 4037;
21040  else return 4038;
21041  else if (Facing == eBlockFace::BLOCK_FACE_XM)
21042  if (Locked)
21043  if (Powered) return 4039;
21044  else return 4040;
21045  else
21046  if (Powered) return 4041;
21047  else return 4042;
21048  else
21049  if (Locked)
21050  if (Powered) return 4043;
21051  else return 4044;
21052  else
21053  if (Powered) return 4045;
21054  else return 4046;
21055  else if (Delay == 2)
21057  if (Locked)
21058  if (Powered) return 4047;
21059  else return 4048;
21060  else
21061  if (Powered) return 4049;
21062  else return 4050;
21063  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
21064  if (Locked)
21065  if (Powered) return 4051;
21066  else return 4052;
21067  else
21068  if (Powered) return 4053;
21069  else return 4054;
21070  else if (Facing == eBlockFace::BLOCK_FACE_XM)
21071  if (Locked)
21072  if (Powered) return 4055;
21073  else return 4056;
21074  else
21075  if (Powered) return 4057;
21076  else return 4058;
21077  else
21078  if (Locked)
21079  if (Powered) return 4059;
21080  else return 4060;
21081  else
21082  if (Powered) return 4061;
21083  else return 4062;
21084  else if (Delay == 3)
21086  if (Locked)
21087  if (Powered) return 4063;
21088  else return 4064;
21089  else
21090  if (Powered) return 4065;
21091  else return 4066;
21092  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
21093  if (Locked)
21094  if (Powered) return 4067;
21095  else return 4068;
21096  else
21097  if (Powered) return 4069;
21098  else return 4070;
21099  else if (Facing == eBlockFace::BLOCK_FACE_XM)
21100  if (Locked)
21101  if (Powered) return 4071;
21102  else return 4072;
21103  else
21104  if (Powered) return 4073;
21105  else return 4074;
21106  else
21107  if (Locked)
21108  if (Powered) return 4075;
21109  else return 4076;
21110  else
21111  if (Powered) return 4077;
21112  else return 4078;
21113  else
21115  if (Locked)
21116  if (Powered) return 4079;
21117  else return 4080;
21118  else
21119  if (Powered) return 4081;
21120  else return 4082;
21121  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
21122  if (Locked)
21123  if (Powered) return 4083;
21124  else return 4084;
21125  else
21126  if (Powered) return 4085;
21127  else return 4086;
21128  else if (Facing == eBlockFace::BLOCK_FACE_XM)
21129  if (Locked)
21130  if (Powered) return 4087;
21131  else return 4088;
21132  else
21133  if (Powered) return 4089;
21134  else return 4090;
21135  else
21136  if (Locked)
21137  if (Powered) return 4091;
21138  else return 4092;
21139  else
21140  if (Powered) return 4093;
21141  else return 4094;
21142  }
21143  BlockState Repeater();
21144  unsigned char Delay(BlockState Block);
21146  bool Locked(BlockState Block);
21147  bool Powered(BlockState Block);
21148  }
21149  namespace RepeatingCommandBlock
21150  {
21152  {
21153  if (Conditional)
21154  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9225;
21155  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9226;
21156  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9227;
21157  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9228;
21158  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9229;
21159  else return 9230;
21160  else
21161  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9231;
21162  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9232;
21163  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9233;
21164  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9234;
21165  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9235;
21166  else return 9236;
21167  }
21171  }
21172  namespace RespawnAnchor
21173  {
21174  constexpr BlockState RespawnAnchor(const unsigned char Charges)
21175  {
21176  if (Charges == 0) return 15829;
21177  else if (Charges == 1) return 15830;
21178  else if (Charges == 2) return 15831;
21179  else if (Charges == 3) return 15832;
21180  else return 15833;
21181  }
21183  unsigned char Charges(BlockState Block);
21184  }
21185  namespace RoseBush
21186  {
21187  enum class Half
21188  {
21189  Upper,
21190  Lower
21191  };
21192  constexpr BlockState RoseBush(const enum Half Half)
21193  {
21194  if (Half == Half::Upper) return 7889;
21195  else return 7890;
21196  }
21197  BlockState RoseBush();
21198  enum Half Half(BlockState Block);
21199  }
21200  namespace Sand
21201  {
21202  constexpr BlockState Sand()
21203  {
21204  return 66;
21205  }
21206  }
21207  namespace Sandstone
21208  {
21209  constexpr BlockState Sandstone()
21210  {
21211  return 246;
21212  }
21213  }
21214  namespace SandstoneSlab
21215  {
21216  enum class Type
21217  {
21218  Top,
21219  Bottom,
21220  Double
21221  };
21222  constexpr BlockState SandstoneSlab(const enum Type Type)
21223  {
21224  if (Type == Type::Top) return 8349;
21225  else if (Type == Type::Bottom) return 8351;
21226  else return 8353;
21227  }
21229  enum Type Type(BlockState Block);
21230  }
21231  namespace SandstoneStairs
21232  {
21233  enum class Half
21234  {
21235  Top,
21236  Bottom
21237  };
21238  enum class Shape
21239  {
21240  Straight,
21241  InnerLeft,
21242  InnerRight,
21243  OuterLeft,
21244  OuterRight
21245  };
21246  constexpr BlockState SandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
21247  {
21249  if (Half == Half::Top)
21250  if (Shape == Shape::Straight) return 5171;
21251  else if (Shape == Shape::InnerLeft) return 5173;
21252  else if (Shape == Shape::InnerRight) return 5175;
21253  else if (Shape == Shape::OuterLeft) return 5177;
21254  else return 5179;
21255  else
21256  if (Shape == Shape::Straight) return 5181;
21257  else if (Shape == Shape::InnerLeft) return 5183;
21258  else if (Shape == Shape::InnerRight) return 5185;
21259  else if (Shape == Shape::OuterLeft) return 5187;
21260  else return 5189;
21261  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
21262  if (Half == Half::Top)
21263  if (Shape == Shape::Straight) return 5191;
21264  else if (Shape == Shape::InnerLeft) return 5193;
21265  else if (Shape == Shape::InnerRight) return 5195;
21266  else if (Shape == Shape::OuterLeft) return 5197;
21267  else return 5199;
21268  else
21269  if (Shape == Shape::Straight) return 5201;
21270  else if (Shape == Shape::InnerLeft) return 5203;
21271  else if (Shape == Shape::InnerRight) return 5205;
21272  else if (Shape == Shape::OuterLeft) return 5207;
21273  else return 5209;
21274  else if (Facing == eBlockFace::BLOCK_FACE_XM)
21275  if (Half == Half::Top)
21276  if (Shape == Shape::Straight) return 5211;
21277  else if (Shape == Shape::InnerLeft) return 5213;
21278  else if (Shape == Shape::InnerRight) return 5215;
21279  else if (Shape == Shape::OuterLeft) return 5217;
21280  else return 5219;
21281  else
21282  if (Shape == Shape::Straight) return 5221;
21283  else if (Shape == Shape::InnerLeft) return 5223;
21284  else if (Shape == Shape::InnerRight) return 5225;
21285  else if (Shape == Shape::OuterLeft) return 5227;
21286  else return 5229;
21287  else
21288  if (Half == Half::Top)
21289  if (Shape == Shape::Straight) return 5231;
21290  else if (Shape == Shape::InnerLeft) return 5233;
21291  else if (Shape == Shape::InnerRight) return 5235;
21292  else if (Shape == Shape::OuterLeft) return 5237;
21293  else return 5239;
21294  else
21295  if (Shape == Shape::Straight) return 5241;
21296  else if (Shape == Shape::InnerLeft) return 5243;
21297  else if (Shape == Shape::InnerRight) return 5245;
21298  else if (Shape == Shape::OuterLeft) return 5247;
21299  else return 5249;
21300  }
21303  enum Half Half(BlockState Block);
21304  enum Shape Shape(BlockState Block);
21305  }
21306  namespace SandstoneWall
21307  {
21308  enum class East
21309  {
21310  None,
21311  Low,
21312  Tall
21313  };
21314  enum class North
21315  {
21316  None,
21317  Low,
21318  Tall
21319  };
21320  enum class South
21321  {
21322  None,
21323  Low,
21324  Tall
21325  };
21326  enum class West
21327  {
21328  None,
21329  Low,
21330  Tall
21331  };
21332  constexpr BlockState SandstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
21333  {
21334  if (East == East::None)
21335  if (North == North::None)
21336  if (South == South::None)
21337  if (Up)
21338  if (West == West::None) return 13786;
21339  else if (West == West::Low) return 13787;
21340  else return 13788;
21341  else
21342  if (West == West::None) return 13792;
21343  else if (West == West::Low) return 13793;
21344  else return 13794;
21345  else if (South == South::Low)
21346  if (Up)
21347  if (West == West::None) return 13798;
21348  else if (West == West::Low) return 13799;
21349  else return 13800;
21350  else
21351  if (West == West::None) return 13804;
21352  else if (West == West::Low) return 13805;
21353  else return 13806;
21354  else
21355  if (Up)
21356  if (West == West::None) return 13810;
21357  else if (West == West::Low) return 13811;
21358  else return 13812;
21359  else
21360  if (West == West::None) return 13816;
21361  else if (West == West::Low) return 13817;
21362  else return 13818;
21363  else if (North == North::Low)
21364  if (South == South::None)
21365  if (Up)
21366  if (West == West::None) return 13822;
21367  else if (West == West::Low) return 13823;
21368  else return 13824;
21369  else
21370  if (West == West::None) return 13828;
21371  else if (West == West::Low) return 13829;
21372  else return 13830;
21373  else if (South == South::Low)
21374  if (Up)
21375  if (West == West::None) return 13834;
21376  else if (West == West::Low) return 13835;
21377  else return 13836;
21378  else
21379  if (West == West::None) return 13840;
21380  else if (West == West::Low) return 13841;
21381  else return 13842;
21382  else
21383  if (Up)
21384  if (West == West::None) return 13846;
21385  else if (West == West::Low) return 13847;
21386  else return 13848;
21387  else
21388  if (West == West::None) return 13852;
21389  else if (West == West::Low) return 13853;
21390  else return 13854;
21391  else
21392  if (South == South::None)
21393  if (Up)
21394  if (West == West::None) return 13858;
21395  else if (West == West::Low) return 13859;
21396  else return 13860;
21397  else
21398  if (West == West::None) return 13864;
21399  else if (West == West::Low) return 13865;
21400  else return 13866;
21401  else if (South == South::Low)
21402  if (Up)
21403  if (West == West::None) return 13870;
21404  else if (West == West::Low) return 13871;
21405  else return 13872;
21406  else
21407  if (West == West::None) return 13876;
21408  else if (West == West::Low) return 13877;
21409  else return 13878;
21410  else
21411  if (Up)
21412  if (West == West::None) return 13882;
21413  else if (West == West::Low) return 13883;
21414  else return 13884;
21415  else
21416  if (West == West::None) return 13888;
21417  else if (West == West::Low) return 13889;
21418  else return 13890;
21419  else if (East == East::Low)
21420  if (North == North::None)
21421  if (South == South::None)
21422  if (Up)
21423  if (West == West::None) return 13894;
21424  else if (West == West::Low) return 13895;
21425  else return 13896;
21426  else
21427  if (West == West::None) return 13900;
21428  else if (West == West::Low) return 13901;
21429  else return 13902;
21430  else if (South == South::Low)
21431  if (Up)
21432  if (West == West::None) return 13906;
21433  else if (West == West::Low) return 13907;
21434  else return 13908;
21435  else
21436  if (West == West::None) return 13912;
21437  else if (West == West::Low) return 13913;
21438  else return 13914;
21439  else
21440  if (Up)
21441  if (West == West::None) return 13918;
21442  else if (West == West::Low) return 13919;
21443  else return 13920;
21444  else
21445  if (West == West::None) return 13924;
21446  else if (West == West::Low) return 13925;
21447  else return 13926;
21448  else if (North == North::Low)
21449  if (South == South::None)
21450  if (Up)
21451  if (West == West::None) return 13930;
21452  else if (West == West::Low) return 13931;
21453  else return 13932;
21454  else
21455  if (West == West::None) return 13936;
21456  else if (West == West::Low) return 13937;
21457  else return 13938;
21458  else if (South == South::Low)
21459  if (Up)
21460  if (West == West::None) return 13942;
21461  else if (West == West::Low) return 13943;
21462  else return 13944;
21463  else
21464  if (West == West::None) return 13948;
21465  else if (West == West::Low) return 13949;
21466  else return 13950;
21467  else
21468  if (Up)
21469  if (West == West::None) return 13954;
21470  else if (West == West::Low) return 13955;
21471  else return 13956;
21472  else
21473  if (West == West::None) return 13960;
21474  else if (West == West::Low) return 13961;
21475  else return 13962;
21476  else
21477  if (South == South::None)
21478  if (Up)
21479  if (West == West::None) return 13966;
21480  else if (West == West::Low) return 13967;
21481  else return 13968;
21482  else
21483  if (West == West::None) return 13972;
21484  else if (West == West::Low) return 13973;
21485  else return 13974;
21486  else if (South == South::Low)
21487  if (Up)
21488  if (West == West::None) return 13978;
21489  else if (West == West::Low) return 13979;
21490  else return 13980;
21491  else
21492  if (West == West::None) return 13984;
21493  else if (West == West::Low) return 13985;
21494  else return 13986;
21495  else
21496  if (Up)
21497  if (West == West::None) return 13990;
21498  else if (West == West::Low) return 13991;
21499  else return 13992;
21500  else
21501  if (West == West::None) return 13996;
21502  else if (West == West::Low) return 13997;
21503  else return 13998;
21504  else
21505  if (North == North::None)
21506  if (South == South::None)
21507  if (Up)
21508  if (West == West::None) return 14002;
21509  else if (West == West::Low) return 14003;
21510  else return 14004;
21511  else
21512  if (West == West::None) return 14008;
21513  else if (West == West::Low) return 14009;
21514  else return 14010;
21515  else if (South == South::Low)
21516  if (Up)
21517  if (West == West::None) return 14014;
21518  else if (West == West::Low) return 14015;
21519  else return 14016;
21520  else
21521  if (West == West::None) return 14020;
21522  else if (West == West::Low) return 14021;
21523  else return 14022;
21524  else
21525  if (Up)
21526  if (West == West::None) return 14026;
21527  else if (West == West::Low) return 14027;
21528  else return 14028;
21529  else
21530  if (West == West::None) return 14032;
21531  else if (West == West::Low) return 14033;
21532  else return 14034;
21533  else if (North == North::Low)
21534  if (South == South::None)
21535  if (Up)
21536  if (West == West::None) return 14038;
21537  else if (West == West::Low) return 14039;
21538  else return 14040;
21539  else
21540  if (West == West::None) return 14044;
21541  else if (West == West::Low) return 14045;
21542  else return 14046;
21543  else if (South == South::Low)
21544  if (Up)
21545  if (West == West::None) return 14050;
21546  else if (West == West::Low) return 14051;
21547  else return 14052;
21548  else
21549  if (West == West::None) return 14056;
21550  else if (West == West::Low) return 14057;
21551  else return 14058;
21552  else
21553  if (Up)
21554  if (West == West::None) return 14062;
21555  else if (West == West::Low) return 14063;
21556  else return 14064;
21557  else
21558  if (West == West::None) return 14068;
21559  else if (West == West::Low) return 14069;
21560  else return 14070;
21561  else
21562  if (South == South::None)
21563  if (Up)
21564  if (West == West::None) return 14074;
21565  else if (West == West::Low) return 14075;
21566  else return 14076;
21567  else
21568  if (West == West::None) return 14080;
21569  else if (West == West::Low) return 14081;
21570  else return 14082;
21571  else if (South == South::Low)
21572  if (Up)
21573  if (West == West::None) return 14086;
21574  else if (West == West::Low) return 14087;
21575  else return 14088;
21576  else
21577  if (West == West::None) return 14092;
21578  else if (West == West::Low) return 14093;
21579  else return 14094;
21580  else
21581  if (Up)
21582  if (West == West::None) return 14098;
21583  else if (West == West::Low) return 14099;
21584  else return 14100;
21585  else
21586  if (West == West::None) return 14104;
21587  else if (West == West::Low) return 14105;
21588  else return 14106;
21589  }
21591  enum East East(BlockState Block);
21592  enum North North(BlockState Block);
21593  enum South South(BlockState Block);
21594  bool Up(BlockState Block);
21595  enum West West(BlockState Block);
21596  }
21597  namespace Scaffolding
21598  {
21599  constexpr BlockState Scaffolding(const bool Bottom, const unsigned char Distance)
21600  {
21601  if (Bottom)
21602  if (Distance == 0) return 14756;
21603  else if (Distance == 1) return 14758;
21604  else if (Distance == 2) return 14760;
21605  else if (Distance == 3) return 14762;
21606  else if (Distance == 4) return 14764;
21607  else if (Distance == 5) return 14766;
21608  else if (Distance == 6) return 14768;
21609  else return 14770;
21610  else
21611  if (Distance == 0) return 14772;
21612  else if (Distance == 1) return 14774;
21613  else if (Distance == 2) return 14776;
21614  else if (Distance == 3) return 14778;
21615  else if (Distance == 4) return 14780;
21616  else if (Distance == 5) return 14782;
21617  else if (Distance == 6) return 14784;
21618  else return 14786;
21619  }
21621  bool Bottom(BlockState Block);
21622  unsigned char Distance(BlockState Block);
21623  }
21624  namespace SeaLantern
21625  {
21627  {
21628  return 7862;
21629  }
21630  }
21631  namespace SeaPickle
21632  {
21633  constexpr BlockState SeaPickle(const unsigned char Pickles)
21634  {
21635  if (Pickles == 1) return 9641;
21636  else if (Pickles == 2) return 9643;
21637  else if (Pickles == 3) return 9645;
21638  else return 9647;
21639  }
21641  unsigned char Pickles(BlockState Block);
21642  }
21643  namespace Seagrass
21644  {
21645  constexpr BlockState Seagrass()
21646  {
21647  return 1345;
21648  }
21649  }
21650  namespace Shroomlight
21651  {
21653  {
21654  return 14989;
21655  }
21656  }
21657  namespace ShulkerBox
21658  {
21660  {
21661  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9272;
21662  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9273;
21663  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9274;
21664  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9275;
21665  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9276;
21666  else return 9277;
21667  }
21670  }
21671  namespace SkeletonSkull
21672  {
21673  constexpr BlockState SkeletonSkull(const unsigned char Rotation)
21674  {
21675  if (Rotation == 0) return 6490;
21676  else if (Rotation == 1) return 6491;
21677  else if (Rotation == 2) return 6492;
21678  else if (Rotation == 3) return 6493;
21679  else if (Rotation == 4) return 6494;
21680  else if (Rotation == 5) return 6495;
21681  else if (Rotation == 6) return 6496;
21682  else if (Rotation == 7) return 6497;
21683  else if (Rotation == 8) return 6498;
21684  else if (Rotation == 9) return 6499;
21685  else if (Rotation == 10) return 6500;
21686  else if (Rotation == 11) return 6501;
21687  else if (Rotation == 12) return 6502;
21688  else if (Rotation == 13) return 6503;
21689  else if (Rotation == 14) return 6504;
21690  else return 6505;
21691  }
21693  unsigned char Rotation(BlockState Block);
21694  }
21695  namespace SkeletonWallSkull
21696  {
21698  {
21699  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6506;
21700  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6507;
21701  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6508;
21702  else return 6509;
21703  }
21706  }
21707  namespace SlimeBlock
21708  {
21710  {
21711  return 7535;
21712  }
21713  }
21714  namespace SmithingTable
21715  {
21717  {
21718  return 14849;
21719  }
21720  }
21721  namespace Smoker
21722  {
21723  constexpr BlockState Smoker(const eBlockFace Facing, const bool Lit)
21724  {
21726  if (Lit) return 14803;
21727  else return 14804;
21728  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
21729  if (Lit) return 14805;
21730  else return 14806;
21731  else if (Facing == eBlockFace::BLOCK_FACE_XM)
21732  if (Lit) return 14807;
21733  else return 14808;
21734  else
21735  if (Lit) return 14809;
21736  else return 14810;
21737  }
21738  BlockState Smoker();
21740  bool Lit(BlockState Block);
21741  }
21742  namespace SmoothQuartz
21743  {
21745  {
21746  return 8416;
21747  }
21748  }
21749  namespace SmoothQuartzSlab
21750  {
21751  enum class Type
21752  {
21753  Top,
21754  Bottom,
21755  Double
21756  };
21757  constexpr BlockState SmoothQuartzSlab(const enum Type Type)
21758  {
21759  if (Type == Type::Top) return 10832;
21760  else if (Type == Type::Bottom) return 10834;
21761  else return 10836;
21762  }
21764  enum Type Type(BlockState Block);
21765  }
21766  namespace SmoothQuartzStairs
21767  {
21768  enum class Half
21769  {
21770  Top,
21771  Bottom
21772  };
21773  enum class Shape
21774  {
21775  Straight,
21776  InnerLeft,
21777  InnerRight,
21778  OuterLeft,
21779  OuterRight
21780  };
21781  constexpr BlockState SmoothQuartzStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
21782  {
21784  if (Half == Half::Top)
21785  if (Shape == Shape::Straight) return 10310;
21786  else if (Shape == Shape::InnerLeft) return 10312;
21787  else if (Shape == Shape::InnerRight) return 10314;
21788  else if (Shape == Shape::OuterLeft) return 10316;
21789  else return 10318;
21790  else
21791  if (Shape == Shape::Straight) return 10320;
21792  else if (Shape == Shape::InnerLeft) return 10322;
21793  else if (Shape == Shape::InnerRight) return 10324;
21794  else if (Shape == Shape::OuterLeft) return 10326;
21795  else return 10328;
21796  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
21797  if (Half == Half::Top)
21798  if (Shape == Shape::Straight) return 10330;
21799  else if (Shape == Shape::InnerLeft) return 10332;
21800  else if (Shape == Shape::InnerRight) return 10334;
21801  else if (Shape == Shape::OuterLeft) return 10336;
21802  else return 10338;
21803  else
21804  if (Shape == Shape::Straight) return 10340;
21805  else if (Shape == Shape::InnerLeft) return 10342;
21806  else if (Shape == Shape::InnerRight) return 10344;
21807  else if (Shape == Shape::OuterLeft) return 10346;
21808  else return 10348;
21809  else if (Facing == eBlockFace::BLOCK_FACE_XM)
21810  if (Half == Half::Top)
21811  if (Shape == Shape::Straight) return 10350;
21812  else if (Shape == Shape::InnerLeft) return 10352;
21813  else if (Shape == Shape::InnerRight) return 10354;
21814  else if (Shape == Shape::OuterLeft) return 10356;
21815  else return 10358;
21816  else
21817  if (Shape == Shape::Straight) return 10360;
21818  else if (Shape == Shape::InnerLeft) return 10362;
21819  else if (Shape == Shape::InnerRight) return 10364;
21820  else if (Shape == Shape::OuterLeft) return 10366;
21821  else return 10368;
21822  else
21823  if (Half == Half::Top)
21824  if (Shape == Shape::Straight) return 10370;
21825  else if (Shape == Shape::InnerLeft) return 10372;
21826  else if (Shape == Shape::InnerRight) return 10374;
21827  else if (Shape == Shape::OuterLeft) return 10376;
21828  else return 10378;
21829  else
21830  if (Shape == Shape::Straight) return 10380;
21831  else if (Shape == Shape::InnerLeft) return 10382;
21832  else if (Shape == Shape::InnerRight) return 10384;
21833  else if (Shape == Shape::OuterLeft) return 10386;
21834  else return 10388;
21835  }
21838  enum Half Half(BlockState Block);
21839  enum Shape Shape(BlockState Block);
21840  }
21841  namespace SmoothRedSandstone
21842  {
21844  {
21845  return 8417;
21846  }
21847  }
21848  namespace SmoothRedSandstoneSlab
21849  {
21850  enum class Type
21851  {
21852  Top,
21853  Bottom,
21854  Double
21855  };
21857  {
21858  if (Type == Type::Top) return 10796;
21859  else if (Type == Type::Bottom) return 10798;
21860  else return 10800;
21861  }
21863  enum Type Type(BlockState Block);
21864  }
21865  namespace SmoothRedSandstoneStairs
21866  {
21867  enum class Half
21868  {
21869  Top,
21870  Bottom
21871  };
21872  enum class Shape
21873  {
21874  Straight,
21875  InnerLeft,
21876  InnerRight,
21877  OuterLeft,
21878  OuterRight
21879  };
21880  constexpr BlockState SmoothRedSandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
21881  {
21883  if (Half == Half::Top)
21884  if (Shape == Shape::Straight) return 9750;
21885  else if (Shape == Shape::InnerLeft) return 9752;
21886  else if (Shape == Shape::InnerRight) return 9754;
21887  else if (Shape == Shape::OuterLeft) return 9756;
21888  else return 9758;
21889  else
21890  if (Shape == Shape::Straight) return 9760;
21891  else if (Shape == Shape::InnerLeft) return 9762;
21892  else if (Shape == Shape::InnerRight) return 9764;
21893  else if (Shape == Shape::OuterLeft) return 9766;
21894  else return 9768;
21895  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
21896  if (Half == Half::Top)
21897  if (Shape == Shape::Straight) return 9770;
21898  else if (Shape == Shape::InnerLeft) return 9772;
21899  else if (Shape == Shape::InnerRight) return 9774;
21900  else if (Shape == Shape::OuterLeft) return 9776;
21901  else return 9778;
21902  else
21903  if (Shape == Shape::Straight) return 9780;
21904  else if (Shape == Shape::InnerLeft) return 9782;
21905  else if (Shape == Shape::InnerRight) return 9784;
21906  else if (Shape == Shape::OuterLeft) return 9786;
21907  else return 9788;
21908  else if (Facing == eBlockFace::BLOCK_FACE_XM)
21909  if (Half == Half::Top)
21910  if (Shape == Shape::Straight) return 9790;
21911  else if (Shape == Shape::InnerLeft) return 9792;
21912  else if (Shape == Shape::InnerRight) return 9794;
21913  else if (Shape == Shape::OuterLeft) return 9796;
21914  else return 9798;
21915  else
21916  if (Shape == Shape::Straight) return 9800;
21917  else if (Shape == Shape::InnerLeft) return 9802;
21918  else if (Shape == Shape::InnerRight) return 9804;
21919  else if (Shape == Shape::OuterLeft) return 9806;
21920  else return 9808;
21921  else
21922  if (Half == Half::Top)
21923  if (Shape == Shape::Straight) return 9810;
21924  else if (Shape == Shape::InnerLeft) return 9812;
21925  else if (Shape == Shape::InnerRight) return 9814;
21926  else if (Shape == Shape::OuterLeft) return 9816;
21927  else return 9818;
21928  else
21929  if (Shape == Shape::Straight) return 9820;
21930  else if (Shape == Shape::InnerLeft) return 9822;
21931  else if (Shape == Shape::InnerRight) return 9824;
21932  else if (Shape == Shape::OuterLeft) return 9826;
21933  else return 9828;
21934  }
21937  enum Half Half(BlockState Block);
21938  enum Shape Shape(BlockState Block);
21939  }
21940  namespace SmoothSandstone
21941  {
21943  {
21944  return 8415;
21945  }
21946  }
21947  namespace SmoothSandstoneSlab
21948  {
21949  enum class Type
21950  {
21951  Top,
21952  Bottom,
21953  Double
21954  };
21955  constexpr BlockState SmoothSandstoneSlab(const enum Type Type)
21956  {
21957  if (Type == Type::Top) return 10826;
21958  else if (Type == Type::Bottom) return 10828;
21959  else return 10830;
21960  }
21962  enum Type Type(BlockState Block);
21963  }
21964  namespace SmoothSandstoneStairs
21965  {
21966  enum class Half
21967  {
21968  Top,
21969  Bottom
21970  };
21971  enum class Shape
21972  {
21973  Straight,
21974  InnerLeft,
21975  InnerRight,
21976  OuterLeft,
21977  OuterRight
21978  };
21979  constexpr BlockState SmoothSandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
21980  {
21982  if (Half == Half::Top)
21983  if (Shape == Shape::Straight) return 10230;
21984  else if (Shape == Shape::InnerLeft) return 10232;
21985  else if (Shape == Shape::InnerRight) return 10234;
21986  else if (Shape == Shape::OuterLeft) return 10236;
21987  else return 10238;
21988  else
21989  if (Shape == Shape::Straight) return 10240;
21990  else if (Shape == Shape::InnerLeft) return 10242;
21991  else if (Shape == Shape::InnerRight) return 10244;
21992  else if (Shape == Shape::OuterLeft) return 10246;
21993  else return 10248;
21994  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
21995  if (Half == Half::Top)
21996  if (Shape == Shape::Straight) return 10250;
21997  else if (Shape == Shape::InnerLeft) return 10252;
21998  else if (Shape == Shape::InnerRight) return 10254;
21999  else if (Shape == Shape::OuterLeft) return 10256;
22000  else return 10258;
22001  else
22002  if (Shape == Shape::Straight) return 10260;
22003  else if (Shape == Shape::InnerLeft) return 10262;
22004  else if (Shape == Shape::InnerRight) return 10264;
22005  else if (Shape == Shape::OuterLeft) return 10266;
22006  else return 10268;
22007  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22008  if (Half == Half::Top)
22009  if (Shape == Shape::Straight) return 10270;
22010  else if (Shape == Shape::InnerLeft) return 10272;
22011  else if (Shape == Shape::InnerRight) return 10274;
22012  else if (Shape == Shape::OuterLeft) return 10276;
22013  else return 10278;
22014  else
22015  if (Shape == Shape::Straight) return 10280;
22016  else if (Shape == Shape::InnerLeft) return 10282;
22017  else if (Shape == Shape::InnerRight) return 10284;
22018  else if (Shape == Shape::OuterLeft) return 10286;
22019  else return 10288;
22020  else
22021  if (Half == Half::Top)
22022  if (Shape == Shape::Straight) return 10290;
22023  else if (Shape == Shape::InnerLeft) return 10292;
22024  else if (Shape == Shape::InnerRight) return 10294;
22025  else if (Shape == Shape::OuterLeft) return 10296;
22026  else return 10298;
22027  else
22028  if (Shape == Shape::Straight) return 10300;
22029  else if (Shape == Shape::InnerLeft) return 10302;
22030  else if (Shape == Shape::InnerRight) return 10304;
22031  else if (Shape == Shape::OuterLeft) return 10306;
22032  else return 10308;
22033  }
22036  enum Half Half(BlockState Block);
22037  enum Shape Shape(BlockState Block);
22038  }
22039  namespace SmoothStone
22040  {
22042  {
22043  return 8414;
22044  }
22045  }
22046  namespace SmoothStoneSlab
22047  {
22048  enum class Type
22049  {
22050  Top,
22051  Bottom,
22052  Double
22053  };
22054  constexpr BlockState SmoothStoneSlab(const enum Type Type)
22055  {
22056  if (Type == Type::Top) return 8343;
22057  else if (Type == Type::Bottom) return 8345;
22058  else return 8347;
22059  }
22061  enum Type Type(BlockState Block);
22062  }
22063  namespace Snow
22064  {
22065  constexpr BlockState Snow(const unsigned char Layers)
22066  {
22067  if (Layers == 1) return 3921;
22068  else if (Layers == 2) return 3922;
22069  else if (Layers == 3) return 3923;
22070  else if (Layers == 4) return 3924;
22071  else if (Layers == 5) return 3925;
22072  else if (Layers == 6) return 3926;
22073  else if (Layers == 7) return 3927;
22074  else return 3928;
22075  }
22076  BlockState Snow();
22077  unsigned char Layers(BlockState Block);
22078  }
22079  namespace SnowBlock
22080  {
22081  constexpr BlockState SnowBlock()
22082  {
22083  return 3930;
22084  }
22085  }
22086  namespace SoulCampfire
22087  {
22088  constexpr BlockState SoulCampfire(const eBlockFace Facing, const bool Lit, const bool SignalFire)
22089  {
22091  if (Lit)
22092  if (SignalFire) return 14923;
22093  else return 14925;
22094  else
22095  if (SignalFire) return 14927;
22096  else return 14929;
22097  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
22098  if (Lit)
22099  if (SignalFire) return 14931;
22100  else return 14933;
22101  else
22102  if (SignalFire) return 14935;
22103  else return 14937;
22104  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22105  if (Lit)
22106  if (SignalFire) return 14939;
22107  else return 14941;
22108  else
22109  if (SignalFire) return 14943;
22110  else return 14945;
22111  else
22112  if (Lit)
22113  if (SignalFire) return 14947;
22114  else return 14949;
22115  else
22116  if (SignalFire) return 14951;
22117  else return 14953;
22118  }
22121  bool Lit(BlockState Block);
22122  bool SignalFire(BlockState Block);
22123  }
22124  namespace SoulFire
22125  {
22126  constexpr BlockState SoulFire()
22127  {
22128  return 1952;
22129  }
22130  }
22131  namespace SoulLantern
22132  {
22133  constexpr BlockState SoulLantern(const bool Hanging)
22134  {
22135  if (Hanging) return 14888;
22136  else return 14889;
22137  }
22139  bool Hanging(BlockState Block);
22140  }
22141  namespace SoulSand
22142  {
22143  constexpr BlockState SoulSand()
22144  {
22145  return 4000;
22146  }
22147  }
22148  namespace SoulSoil
22149  {
22150  constexpr BlockState SoulSoil()
22151  {
22152  return 4001;
22153  }
22154  }
22155  namespace SoulTorch
22156  {
22157  constexpr BlockState SoulTorch()
22158  {
22159  return 4008;
22160  }
22161  }
22162  namespace SoulWallTorch
22163  {
22165  {
22166  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4009;
22167  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4010;
22168  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4011;
22169  else return 4012;
22170  }
22173  }
22174  namespace Spawner
22175  {
22176  constexpr BlockState Spawner()
22177  {
22178  return 1953;
22179  }
22180  }
22181  namespace Sponge
22182  {
22183  constexpr BlockState Sponge()
22184  {
22185  return 229;
22186  }
22187  }
22188  namespace SpruceButton
22189  {
22190  enum class Face
22191  {
22192  Floor,
22193  Wall,
22194  Ceiling
22195  };
22196  constexpr BlockState SpruceButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
22197  {
22198  if (Face == Face::Floor)
22200  if (Powered) return 6370;
22201  else return 6371;
22202  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
22203  if (Powered) return 6372;
22204  else return 6373;
22205  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22206  if (Powered) return 6374;
22207  else return 6375;
22208  else
22209  if (Powered) return 6376;
22210  else return 6377;
22211  else if (Face == Face::Wall)
22213  if (Powered) return 6378;
22214  else return 6379;
22215  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
22216  if (Powered) return 6380;
22217  else return 6381;
22218  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22219  if (Powered) return 6382;
22220  else return 6383;
22221  else
22222  if (Powered) return 6384;
22223  else return 6385;
22224  else
22226  if (Powered) return 6386;
22227  else return 6387;
22228  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
22229  if (Powered) return 6388;
22230  else return 6389;
22231  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22232  if (Powered) return 6390;
22233  else return 6391;
22234  else
22235  if (Powered) return 6392;
22236  else return 6393;
22237  }
22239  enum Face Face(BlockState Block);
22241  bool Powered(BlockState Block);
22242  }
22243  namespace SpruceDoor
22244  {
22245  enum class Half
22246  {
22247  Upper,
22248  Lower
22249  };
22250  enum class Hinge
22251  {
22252  Left,
22253  Right
22254  };
22255  constexpr BlockState SpruceDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
22256  {
22258  if (Half == Half::Upper)
22259  if (Hinge == Hinge::Left)
22260  if (Open)
22261  if (Powered) return 8738;
22262  else return 8739;
22263  else
22264  if (Powered) return 8740;
22265  else return 8741;
22266  else
22267  if (Open)
22268  if (Powered) return 8742;
22269  else return 8743;
22270  else
22271  if (Powered) return 8744;
22272  else return 8745;
22273  else
22274  if (Hinge == Hinge::Left)
22275  if (Open)
22276  if (Powered) return 8746;
22277  else return 8747;
22278  else
22279  if (Powered) return 8748;
22280  else return 8749;
22281  else
22282  if (Open)
22283  if (Powered) return 8750;
22284  else return 8751;
22285  else
22286  if (Powered) return 8752;
22287  else return 8753;
22288  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
22289  if (Half == Half::Upper)
22290  if (Hinge == Hinge::Left)
22291  if (Open)
22292  if (Powered) return 8754;
22293  else return 8755;
22294  else
22295  if (Powered) return 8756;
22296  else return 8757;
22297  else
22298  if (Open)
22299  if (Powered) return 8758;
22300  else return 8759;
22301  else
22302  if (Powered) return 8760;
22303  else return 8761;
22304  else
22305  if (Hinge == Hinge::Left)
22306  if (Open)
22307  if (Powered) return 8762;
22308  else return 8763;
22309  else
22310  if (Powered) return 8764;
22311  else return 8765;
22312  else
22313  if (Open)
22314  if (Powered) return 8766;
22315  else return 8767;
22316  else
22317  if (Powered) return 8768;
22318  else return 8769;
22319  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22320  if (Half == Half::Upper)
22321  if (Hinge == Hinge::Left)
22322  if (Open)
22323  if (Powered) return 8770;
22324  else return 8771;
22325  else
22326  if (Powered) return 8772;
22327  else return 8773;
22328  else
22329  if (Open)
22330  if (Powered) return 8774;
22331  else return 8775;
22332  else
22333  if (Powered) return 8776;
22334  else return 8777;
22335  else
22336  if (Hinge == Hinge::Left)
22337  if (Open)
22338  if (Powered) return 8778;
22339  else return 8779;
22340  else
22341  if (Powered) return 8780;
22342  else return 8781;
22343  else
22344  if (Open)
22345  if (Powered) return 8782;
22346  else return 8783;
22347  else
22348  if (Powered) return 8784;
22349  else return 8785;
22350  else
22351  if (Half == Half::Upper)
22352  if (Hinge == Hinge::Left)
22353  if (Open)
22354  if (Powered) return 8786;
22355  else return 8787;
22356  else
22357  if (Powered) return 8788;
22358  else return 8789;
22359  else
22360  if (Open)
22361  if (Powered) return 8790;
22362  else return 8791;
22363  else
22364  if (Powered) return 8792;
22365  else return 8793;
22366  else
22367  if (Hinge == Hinge::Left)
22368  if (Open)
22369  if (Powered) return 8794;
22370  else return 8795;
22371  else
22372  if (Powered) return 8796;
22373  else return 8797;
22374  else
22375  if (Open)
22376  if (Powered) return 8798;
22377  else return 8799;
22378  else
22379  if (Powered) return 8800;
22380  else return 8801;
22381  }
22384  enum Half Half(BlockState Block);
22385  enum Hinge Hinge(BlockState Block);
22386  bool Open(BlockState Block);
22387  bool Powered(BlockState Block);
22388  }
22389  namespace SpruceFence
22390  {
22391  constexpr BlockState SpruceFence(const bool East, const bool North, const bool South, const bool West)
22392  {
22393  if (East)
22394  if (North)
22395  if (South)
22396  if (West) return 8580;
22397  else return 8581;
22398  else
22399  if (West) return 8584;
22400  else return 8585;
22401  else
22402  if (South)
22403  if (West) return 8588;
22404  else return 8589;
22405  else
22406  if (West) return 8592;
22407  else return 8593;
22408  else
22409  if (North)
22410  if (South)
22411  if (West) return 8596;
22412  else return 8597;
22413  else
22414  if (West) return 8600;
22415  else return 8601;
22416  else
22417  if (South)
22418  if (West) return 8604;
22419  else return 8605;
22420  else
22421  if (West) return 8608;
22422  else return 8609;
22423  }
22425  bool East(BlockState Block);
22426  bool North(BlockState Block);
22427  bool South(BlockState Block);
22428  bool West(BlockState Block);
22429  }
22430  namespace SpruceFenceGate
22431  {
22432  constexpr BlockState SpruceFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
22433  {
22435  if (InWall)
22436  if (Open)
22437  if (Powered) return 8418;
22438  else return 8419;
22439  else
22440  if (Powered) return 8420;
22441  else return 8421;
22442  else
22443  if (Open)
22444  if (Powered) return 8422;
22445  else return 8423;
22446  else
22447  if (Powered) return 8424;
22448  else return 8425;
22449  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
22450  if (InWall)
22451  if (Open)
22452  if (Powered) return 8426;
22453  else return 8427;
22454  else
22455  if (Powered) return 8428;
22456  else return 8429;
22457  else
22458  if (Open)
22459  if (Powered) return 8430;
22460  else return 8431;
22461  else
22462  if (Powered) return 8432;
22463  else return 8433;
22464  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22465  if (InWall)
22466  if (Open)
22467  if (Powered) return 8434;
22468  else return 8435;
22469  else
22470  if (Powered) return 8436;
22471  else return 8437;
22472  else
22473  if (Open)
22474  if (Powered) return 8438;
22475  else return 8439;
22476  else
22477  if (Powered) return 8440;
22478  else return 8441;
22479  else
22480  if (InWall)
22481  if (Open)
22482  if (Powered) return 8442;
22483  else return 8443;
22484  else
22485  if (Powered) return 8444;
22486  else return 8445;
22487  else
22488  if (Open)
22489  if (Powered) return 8446;
22490  else return 8447;
22491  else
22492  if (Powered) return 8448;
22493  else return 8449;
22494  }
22497  bool InWall(BlockState Block);
22498  bool Open(BlockState Block);
22499  bool Powered(BlockState Block);
22500  }
22501  namespace SpruceLeaves
22502  {
22503  constexpr BlockState SpruceLeaves(const unsigned char Distance, const bool Persistent)
22504  {
22505  if (Distance == 1)
22506  if (Persistent) return 159;
22507  else return 160;
22508  else if (Distance == 2)
22509  if (Persistent) return 161;
22510  else return 162;
22511  else if (Distance == 3)
22512  if (Persistent) return 163;
22513  else return 164;
22514  else if (Distance == 4)
22515  if (Persistent) return 165;
22516  else return 166;
22517  else if (Distance == 5)
22518  if (Persistent) return 167;
22519  else return 168;
22520  else if (Distance == 6)
22521  if (Persistent) return 169;
22522  else return 170;
22523  else
22524  if (Persistent) return 171;
22525  else return 172;
22526  }
22528  unsigned char Distance(BlockState Block);
22529  bool Persistent(BlockState Block);
22530  }
22531  namespace SpruceLog
22532  {
22533  enum class Axis
22534  {
22535  X,
22536  Y,
22537  Z
22538  };
22539  constexpr BlockState SpruceLog(const enum Axis Axis)
22540  {
22541  if (Axis == Axis::X) return 76;
22542  else if (Axis == Axis::Y) return 77;
22543  else return 78;
22544  }
22546  enum Axis Axis(BlockState Block);
22547  }
22548  namespace SprucePlanks
22549  {
22551  {
22552  return 16;
22553  }
22554  }
22555  namespace SprucePressurePlate
22556  {
22558  {
22559  if (Powered) return 3875;
22560  else return 3876;
22561  }
22563  bool Powered(BlockState Block);
22564  }
22565  namespace SpruceSapling
22566  {
22567  constexpr BlockState SpruceSapling(const unsigned char Stage)
22568  {
22569  if (Stage == 0) return 23;
22570  else return 24;
22571  }
22573  unsigned char Stage(BlockState Block);
22574  }
22575  namespace SpruceSign
22576  {
22577  constexpr BlockState SpruceSign(const unsigned char Rotation)
22578  {
22579  if (Rotation == 0) return 3414;
22580  else if (Rotation == 1) return 3416;
22581  else if (Rotation == 2) return 3418;
22582  else if (Rotation == 3) return 3420;
22583  else if (Rotation == 4) return 3422;
22584  else if (Rotation == 5) return 3424;
22585  else if (Rotation == 6) return 3426;
22586  else if (Rotation == 7) return 3428;
22587  else if (Rotation == 8) return 3430;
22588  else if (Rotation == 9) return 3432;
22589  else if (Rotation == 10) return 3434;
22590  else if (Rotation == 11) return 3436;
22591  else if (Rotation == 12) return 3438;
22592  else if (Rotation == 13) return 3440;
22593  else if (Rotation == 14) return 3442;
22594  else return 3444;
22595  }
22597  unsigned char Rotation(BlockState Block);
22598  }
22599  namespace SpruceSlab
22600  {
22601  enum class Type
22602  {
22603  Top,
22604  Bottom,
22605  Double
22606  };
22607  constexpr BlockState SpruceSlab(const enum Type Type)
22608  {
22609  if (Type == Type::Top) return 8307;
22610  else if (Type == Type::Bottom) return 8309;
22611  else return 8311;
22612  }
22614  enum Type Type(BlockState Block);
22615  }
22616  namespace SpruceStairs
22617  {
22618  enum class Half
22619  {
22620  Top,
22621  Bottom
22622  };
22623  enum class Shape
22624  {
22625  Straight,
22626  InnerLeft,
22627  InnerRight,
22628  OuterLeft,
22629  OuterRight
22630  };
22631  constexpr BlockState SpruceStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
22632  {
22634  if (Half == Half::Top)
22635  if (Shape == Shape::Straight) return 5405;
22636  else if (Shape == Shape::InnerLeft) return 5407;
22637  else if (Shape == Shape::InnerRight) return 5409;
22638  else if (Shape == Shape::OuterLeft) return 5411;
22639  else return 5413;
22640  else
22641  if (Shape == Shape::Straight) return 5415;
22642  else if (Shape == Shape::InnerLeft) return 5417;
22643  else if (Shape == Shape::InnerRight) return 5419;
22644  else if (Shape == Shape::OuterLeft) return 5421;
22645  else return 5423;
22646  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
22647  if (Half == Half::Top)
22648  if (Shape == Shape::Straight) return 5425;
22649  else if (Shape == Shape::InnerLeft) return 5427;
22650  else if (Shape == Shape::InnerRight) return 5429;
22651  else if (Shape == Shape::OuterLeft) return 5431;
22652  else return 5433;
22653  else
22654  if (Shape == Shape::Straight) return 5435;
22655  else if (Shape == Shape::InnerLeft) return 5437;
22656  else if (Shape == Shape::InnerRight) return 5439;
22657  else if (Shape == Shape::OuterLeft) return 5441;
22658  else return 5443;
22659  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22660  if (Half == Half::Top)
22661  if (Shape == Shape::Straight) return 5445;
22662  else if (Shape == Shape::InnerLeft) return 5447;
22663  else if (Shape == Shape::InnerRight) return 5449;
22664  else if (Shape == Shape::OuterLeft) return 5451;
22665  else return 5453;
22666  else
22667  if (Shape == Shape::Straight) return 5455;
22668  else if (Shape == Shape::InnerLeft) return 5457;
22669  else if (Shape == Shape::InnerRight) return 5459;
22670  else if (Shape == Shape::OuterLeft) return 5461;
22671  else return 5463;
22672  else
22673  if (Half == Half::Top)
22674  if (Shape == Shape::Straight) return 5465;
22675  else if (Shape == Shape::InnerLeft) return 5467;
22676  else if (Shape == Shape::InnerRight) return 5469;
22677  else if (Shape == Shape::OuterLeft) return 5471;
22678  else return 5473;
22679  else
22680  if (Shape == Shape::Straight) return 5475;
22681  else if (Shape == Shape::InnerLeft) return 5477;
22682  else if (Shape == Shape::InnerRight) return 5479;
22683  else if (Shape == Shape::OuterLeft) return 5481;
22684  else return 5483;
22685  }
22688  enum Half Half(BlockState Block);
22689  enum Shape Shape(BlockState Block);
22690  }
22691  namespace SpruceTrapdoor
22692  {
22693  enum class Half
22694  {
22695  Top,
22696  Bottom
22697  };
22698  constexpr BlockState SpruceTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
22699  {
22701  if (Half == Half::Top)
22702  if (Open)
22703  if (Powered) return 4176;
22704  else return 4178;
22705  else
22706  if (Powered) return 4180;
22707  else return 4182;
22708  else
22709  if (Open)
22710  if (Powered) return 4184;
22711  else return 4186;
22712  else
22713  if (Powered) return 4188;
22714  else return 4190;
22715  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
22716  if (Half == Half::Top)
22717  if (Open)
22718  if (Powered) return 4192;
22719  else return 4194;
22720  else
22721  if (Powered) return 4196;
22722  else return 4198;
22723  else
22724  if (Open)
22725  if (Powered) return 4200;
22726  else return 4202;
22727  else
22728  if (Powered) return 4204;
22729  else return 4206;
22730  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22731  if (Half == Half::Top)
22732  if (Open)
22733  if (Powered) return 4208;
22734  else return 4210;
22735  else
22736  if (Powered) return 4212;
22737  else return 4214;
22738  else
22739  if (Open)
22740  if (Powered) return 4216;
22741  else return 4218;
22742  else
22743  if (Powered) return 4220;
22744  else return 4222;
22745  else
22746  if (Half == Half::Top)
22747  if (Open)
22748  if (Powered) return 4224;
22749  else return 4226;
22750  else
22751  if (Powered) return 4228;
22752  else return 4230;
22753  else
22754  if (Open)
22755  if (Powered) return 4232;
22756  else return 4234;
22757  else
22758  if (Powered) return 4236;
22759  else return 4238;
22760  }
22763  enum Half Half(BlockState Block);
22764  bool Open(BlockState Block);
22765  bool Powered(BlockState Block);
22766  }
22767  namespace SpruceWallSign
22768  {
22770  {
22771  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3744;
22772  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3746;
22773  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3748;
22774  else return 3750;
22775  }
22778  }
22779  namespace SpruceWood
22780  {
22781  enum class Axis
22782  {
22783  X,
22784  Y,
22785  Z
22786  };
22787  constexpr BlockState SpruceWood(const enum Axis Axis)
22788  {
22789  if (Axis == Axis::X) return 112;
22790  else if (Axis == Axis::Y) return 113;
22791  else return 114;
22792  }
22794  enum Axis Axis(BlockState Block);
22795  }
22796  namespace StickyPiston
22797  {
22798  constexpr BlockState StickyPiston(const bool Extended, const eBlockFace Facing)
22799  {
22800  if (Extended)
22801  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1329;
22802  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1330;
22803  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1331;
22804  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1332;
22805  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1333;
22806  else return 1334;
22807  else
22808  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1335;
22809  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1336;
22810  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1337;
22811  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1338;
22812  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1339;
22813  else return 1340;
22814  }
22816  bool Extended(BlockState Block);
22818  }
22819  namespace Stone
22820  {
22821  constexpr BlockState Stone()
22822  {
22823  return 1;
22824  }
22825  }
22826  namespace StoneBrickSlab
22827  {
22828  enum class Type
22829  {
22830  Top,
22831  Bottom,
22832  Double
22833  };
22834  constexpr BlockState StoneBrickSlab(const enum Type Type)
22835  {
22836  if (Type == Type::Top) return 8379;
22837  else if (Type == Type::Bottom) return 8381;
22838  else return 8383;
22839  }
22841  enum Type Type(BlockState Block);
22842  }
22843  namespace StoneBrickStairs
22844  {
22845  enum class Half
22846  {
22847  Top,
22848  Bottom
22849  };
22850  enum class Shape
22851  {
22852  Straight,
22853  InnerLeft,
22854  InnerRight,
22855  OuterLeft,
22856  OuterRight
22857  };
22858  constexpr BlockState StoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
22859  {
22861  if (Half == Half::Top)
22862  if (Shape == Shape::Straight) return 4933;
22863  else if (Shape == Shape::InnerLeft) return 4935;
22864  else if (Shape == Shape::InnerRight) return 4937;
22865  else if (Shape == Shape::OuterLeft) return 4939;
22866  else return 4941;
22867  else
22868  if (Shape == Shape::Straight) return 4943;
22869  else if (Shape == Shape::InnerLeft) return 4945;
22870  else if (Shape == Shape::InnerRight) return 4947;
22871  else if (Shape == Shape::OuterLeft) return 4949;
22872  else return 4951;
22873  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
22874  if (Half == Half::Top)
22875  if (Shape == Shape::Straight) return 4953;
22876  else if (Shape == Shape::InnerLeft) return 4955;
22877  else if (Shape == Shape::InnerRight) return 4957;
22878  else if (Shape == Shape::OuterLeft) return 4959;
22879  else return 4961;
22880  else
22881  if (Shape == Shape::Straight) return 4963;
22882  else if (Shape == Shape::InnerLeft) return 4965;
22883  else if (Shape == Shape::InnerRight) return 4967;
22884  else if (Shape == Shape::OuterLeft) return 4969;
22885  else return 4971;
22886  else if (Facing == eBlockFace::BLOCK_FACE_XM)
22887  if (Half == Half::Top)
22888  if (Shape == Shape::Straight) return 4973;
22889  else if (Shape == Shape::InnerLeft) return 4975;
22890  else if (Shape == Shape::InnerRight) return 4977;
22891  else if (Shape == Shape::OuterLeft) return 4979;
22892  else return 4981;
22893  else
22894  if (Shape == Shape::Straight) return 4983;
22895  else if (Shape == Shape::InnerLeft) return 4985;
22896  else if (Shape == Shape::InnerRight) return 4987;
22897  else if (Shape == Shape::OuterLeft) return 4989;
22898  else return 4991;
22899  else
22900  if (Half == Half::Top)
22901  if (Shape == Shape::Straight) return 4993;
22902  else if (Shape == Shape::InnerLeft) return 4995;
22903  else if (Shape == Shape::InnerRight) return 4997;
22904  else if (Shape == Shape::OuterLeft) return 4999;
22905  else return 5001;
22906  else
22907  if (Shape == Shape::Straight) return 5003;
22908  else if (Shape == Shape::InnerLeft) return 5005;
22909  else if (Shape == Shape::InnerRight) return 5007;
22910  else if (Shape == Shape::OuterLeft) return 5009;
22911  else return 5011;
22912  }
22915  enum Half Half(BlockState Block);
22916  enum Shape Shape(BlockState Block);
22917  }
22918  namespace StoneBrickWall
22919  {
22920  enum class East
22921  {
22922  None,
22923  Low,
22924  Tall
22925  };
22926  enum class North
22927  {
22928  None,
22929  Low,
22930  Tall
22931  };
22932  enum class South
22933  {
22934  None,
22935  Low,
22936  Tall
22937  };
22938  enum class West
22939  {
22940  None,
22941  Low,
22942  Tall
22943  };
22944  constexpr BlockState StoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
22945  {
22946  if (East == East::None)
22947  if (North == North::None)
22948  if (South == South::None)
22949  if (Up)
22950  if (West == West::None) return 12490;
22951  else if (West == West::Low) return 12491;
22952  else return 12492;
22953  else
22954  if (West == West::None) return 12496;
22955  else if (West == West::Low) return 12497;
22956  else return 12498;
22957  else if (South == South::Low)
22958  if (Up)
22959  if (West == West::None) return 12502;
22960  else if (West == West::Low) return 12503;
22961  else return 12504;
22962  else
22963  if (West == West::None) return 12508;
22964  else if (West == West::Low) return 12509;
22965  else return 12510;
22966  else
22967  if (Up)
22968  if (West == West::None) return 12514;
22969  else if (West == West::Low) return 12515;
22970  else return 12516;
22971  else
22972  if (West == West::None) return 12520;
22973  else if (West == West::Low) return 12521;
22974  else return 12522;
22975  else if (North == North::Low)
22976  if (South == South::None)
22977  if (Up)
22978  if (West == West::None) return 12526;
22979  else if (West == West::Low) return 12527;
22980  else return 12528;
22981  else
22982  if (West == West::None) return 12532;
22983  else if (West == West::Low) return 12533;
22984  else return 12534;
22985  else if (South == South::Low)
22986  if (Up)
22987  if (West == West::None) return 12538;
22988  else if (West == West::Low) return 12539;
22989  else return 12540;
22990  else
22991  if (West == West::None) return 12544;
22992  else if (West == West::Low) return 12545;
22993  else return 12546;
22994  else
22995  if (Up)
22996  if (West == West::None) return 12550;
22997  else if (West == West::Low) return 12551;
22998  else return 12552;
22999  else
23000  if (West == West::None) return 12556;
23001  else if (West == West::Low) return 12557;
23002  else return 12558;
23003  else
23004  if (South == South::None)
23005  if (Up)
23006  if (West == West::None) return 12562;
23007  else if (West == West::Low) return 12563;
23008  else return 12564;
23009  else
23010  if (West == West::None) return 12568;
23011  else if (West == West::Low) return 12569;
23012  else return 12570;
23013  else if (South == South::Low)
23014  if (Up)
23015  if (West == West::None) return 12574;
23016  else if (West == West::Low) return 12575;
23017  else return 12576;
23018  else
23019  if (West == West::None) return 12580;
23020  else if (West == West::Low) return 12581;
23021  else return 12582;
23022  else
23023  if (Up)
23024  if (West == West::None) return 12586;
23025  else if (West == West::Low) return 12587;
23026  else return 12588;
23027  else
23028  if (West == West::None) return 12592;
23029  else if (West == West::Low) return 12593;
23030  else return 12594;
23031  else if (East == East::Low)
23032  if (North == North::None)
23033  if (South == South::None)
23034  if (Up)
23035  if (West == West::None) return 12598;
23036  else if (West == West::Low) return 12599;
23037  else return 12600;
23038  else
23039  if (West == West::None) return 12604;
23040  else if (West == West::Low) return 12605;
23041  else return 12606;
23042  else if (South == South::Low)
23043  if (Up)
23044  if (West == West::None) return 12610;
23045  else if (West == West::Low) return 12611;
23046  else return 12612;
23047  else
23048  if (West == West::None) return 12616;
23049  else if (West == West::Low) return 12617;
23050  else return 12618;
23051  else
23052  if (Up)
23053  if (West == West::None) return 12622;
23054  else if (West == West::Low) return 12623;
23055  else return 12624;
23056  else
23057  if (West == West::None) return 12628;
23058  else if (West == West::Low) return 12629;
23059  else return 12630;
23060  else if (North == North::Low)
23061  if (South == South::None)
23062  if (Up)
23063  if (West == West::None) return 12634;
23064  else if (West == West::Low) return 12635;
23065  else return 12636;
23066  else
23067  if (West == West::None) return 12640;
23068  else if (West == West::Low) return 12641;
23069  else return 12642;
23070  else if (South == South::Low)
23071  if (Up)
23072  if (West == West::None) return 12646;
23073  else if (West == West::Low) return 12647;
23074  else return 12648;
23075  else
23076  if (West == West::None) return 12652;
23077  else if (West == West::Low) return 12653;
23078  else return 12654;
23079  else
23080  if (Up)
23081  if (West == West::None) return 12658;
23082  else if (West == West::Low) return 12659;
23083  else return 12660;
23084  else
23085  if (West == West::None) return 12664;
23086  else if (West == West::Low) return 12665;
23087  else return 12666;
23088  else
23089  if (South == South::None)
23090  if (Up)
23091  if (West == West::None) return 12670;
23092  else if (West == West::Low) return 12671;
23093  else return 12672;
23094  else
23095  if (West == West::None) return 12676;
23096  else if (West == West::Low) return 12677;
23097  else return 12678;
23098  else if (South == South::Low)
23099  if (Up)
23100  if (West == West::None) return 12682;
23101  else if (West == West::Low) return 12683;
23102  else return 12684;
23103  else
23104  if (West == West::None) return 12688;
23105  else if (West == West::Low) return 12689;
23106  else return 12690;
23107  else
23108  if (Up)
23109  if (West == West::None) return 12694;
23110  else if (West == West::Low) return 12695;
23111  else return 12696;
23112  else
23113  if (West == West::None) return 12700;
23114  else if (West == West::Low) return 12701;
23115  else return 12702;
23116  else
23117  if (North == North::None)
23118  if (South == South::None)
23119  if (Up)
23120  if (West == West::None) return 12706;
23121  else if (West == West::Low) return 12707;
23122  else return 12708;
23123  else
23124  if (West == West::None) return 12712;
23125  else if (West == West::Low) return 12713;
23126  else return 12714;
23127  else if (South == South::Low)
23128  if (Up)
23129  if (West == West::None) return 12718;
23130  else if (West == West::Low) return 12719;
23131  else return 12720;
23132  else
23133  if (West == West::None) return 12724;
23134  else if (West == West::Low) return 12725;
23135  else return 12726;
23136  else
23137  if (Up)
23138  if (West == West::None) return 12730;
23139  else if (West == West::Low) return 12731;
23140  else return 12732;
23141  else
23142  if (West == West::None) return 12736;
23143  else if (West == West::Low) return 12737;
23144  else return 12738;
23145  else if (North == North::Low)
23146  if (South == South::None)
23147  if (Up)
23148  if (West == West::None) return 12742;
23149  else if (West == West::Low) return 12743;
23150  else return 12744;
23151  else
23152  if (West == West::None) return 12748;
23153  else if (West == West::Low) return 12749;
23154  else return 12750;
23155  else if (South == South::Low)
23156  if (Up)
23157  if (West == West::None) return 12754;
23158  else if (West == West::Low) return 12755;
23159  else return 12756;
23160  else
23161  if (West == West::None) return 12760;
23162  else if (West == West::Low) return 12761;
23163  else return 12762;
23164  else
23165  if (Up)
23166  if (West == West::None) return 12766;
23167  else if (West == West::Low) return 12767;
23168  else return 12768;
23169  else
23170  if (West == West::None) return 12772;
23171  else if (West == West::Low) return 12773;
23172  else return 12774;
23173  else
23174  if (South == South::None)
23175  if (Up)
23176  if (West == West::None) return 12778;
23177  else if (West == West::Low) return 12779;
23178  else return 12780;
23179  else
23180  if (West == West::None) return 12784;
23181  else if (West == West::Low) return 12785;
23182  else return 12786;
23183  else if (South == South::Low)
23184  if (Up)
23185  if (West == West::None) return 12790;
23186  else if (West == West::Low) return 12791;
23187  else return 12792;
23188  else
23189  if (West == West::None) return 12796;
23190  else if (West == West::Low) return 12797;
23191  else return 12798;
23192  else
23193  if (Up)
23194  if (West == West::None) return 12802;
23195  else if (West == West::Low) return 12803;
23196  else return 12804;
23197  else
23198  if (West == West::None) return 12808;
23199  else if (West == West::Low) return 12809;
23200  else return 12810;
23201  }
23203  enum East East(BlockState Block);
23204  enum North North(BlockState Block);
23205  enum South South(BlockState Block);
23206  bool Up(BlockState Block);
23207  enum West West(BlockState Block);
23208  }
23209  namespace StoneBricks
23210  {
23212  {
23213  return 4495;
23214  }
23215  }
23216  namespace StoneButton
23217  {
23218  enum class Face
23219  {
23220  Floor,
23221  Wall,
23222  Ceiling
23223  };
23224  constexpr BlockState StoneButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
23225  {
23226  if (Face == Face::Floor)
23228  if (Powered) return 3897;
23229  else return 3898;
23230  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
23231  if (Powered) return 3899;
23232  else return 3900;
23233  else if (Facing == eBlockFace::BLOCK_FACE_XM)
23234  if (Powered) return 3901;
23235  else return 3902;
23236  else
23237  if (Powered) return 3903;
23238  else return 3904;
23239  else if (Face == Face::Wall)
23241  if (Powered) return 3905;
23242  else return 3906;
23243  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
23244  if (Powered) return 3907;
23245  else return 3908;
23246  else if (Facing == eBlockFace::BLOCK_FACE_XM)
23247  if (Powered) return 3909;
23248  else return 3910;
23249  else
23250  if (Powered) return 3911;
23251  else return 3912;
23252  else
23254  if (Powered) return 3913;
23255  else return 3914;
23256  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
23257  if (Powered) return 3915;
23258  else return 3916;
23259  else if (Facing == eBlockFace::BLOCK_FACE_XM)
23260  if (Powered) return 3917;
23261  else return 3918;
23262  else
23263  if (Powered) return 3919;
23264  else return 3920;
23265  }
23267  enum Face Face(BlockState Block);
23269  bool Powered(BlockState Block);
23270  }
23271  namespace StonePressurePlate
23272  {
23273  constexpr BlockState StonePressurePlate(const bool Powered)
23274  {
23275  if (Powered) return 3807;
23276  else return 3808;
23277  }
23279  bool Powered(BlockState Block);
23280  }
23281  namespace StoneSlab
23282  {
23283  enum class Type
23284  {
23285  Top,
23286  Bottom,
23287  Double
23288  };
23289  constexpr BlockState StoneSlab(const enum Type Type)
23290  {
23291  if (Type == Type::Top) return 8337;
23292  else if (Type == Type::Bottom) return 8339;
23293  else return 8341;
23294  }
23296  enum Type Type(BlockState Block);
23297  }
23298  namespace StoneStairs
23299  {
23300  enum class Half
23301  {
23302  Top,
23303  Bottom
23304  };
23305  enum class Shape
23306  {
23307  Straight,
23308  InnerLeft,
23309  InnerRight,
23310  OuterLeft,
23311  OuterRight
23312  };
23313  constexpr BlockState StoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
23314  {
23316  if (Half == Half::Top)
23317  if (Shape == Shape::Straight) return 10150;
23318  else if (Shape == Shape::InnerLeft) return 10152;
23319  else if (Shape == Shape::InnerRight) return 10154;
23320  else if (Shape == Shape::OuterLeft) return 10156;
23321  else return 10158;
23322  else
23323  if (Shape == Shape::Straight) return 10160;
23324  else if (Shape == Shape::InnerLeft) return 10162;
23325  else if (Shape == Shape::InnerRight) return 10164;
23326  else if (Shape == Shape::OuterLeft) return 10166;
23327  else return 10168;
23328  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
23329  if (Half == Half::Top)
23330  if (Shape == Shape::Straight) return 10170;
23331  else if (Shape == Shape::InnerLeft) return 10172;
23332  else if (Shape == Shape::InnerRight) return 10174;
23333  else if (Shape == Shape::OuterLeft) return 10176;
23334  else return 10178;
23335  else
23336  if (Shape == Shape::Straight) return 10180;
23337  else if (Shape == Shape::InnerLeft) return 10182;
23338  else if (Shape == Shape::InnerRight) return 10184;
23339  else if (Shape == Shape::OuterLeft) return 10186;
23340  else return 10188;
23341  else if (Facing == eBlockFace::BLOCK_FACE_XM)
23342  if (Half == Half::Top)
23343  if (Shape == Shape::Straight) return 10190;
23344  else if (Shape == Shape::InnerLeft) return 10192;
23345  else if (Shape == Shape::InnerRight) return 10194;
23346  else if (Shape == Shape::OuterLeft) return 10196;
23347  else return 10198;
23348  else
23349  if (Shape == Shape::Straight) return 10200;
23350  else if (Shape == Shape::InnerLeft) return 10202;
23351  else if (Shape == Shape::InnerRight) return 10204;
23352  else if (Shape == Shape::OuterLeft) return 10206;
23353  else return 10208;
23354  else
23355  if (Half == Half::Top)
23356  if (Shape == Shape::Straight) return 10210;
23357  else if (Shape == Shape::InnerLeft) return 10212;
23358  else if (Shape == Shape::InnerRight) return 10214;
23359  else if (Shape == Shape::OuterLeft) return 10216;
23360  else return 10218;
23361  else
23362  if (Shape == Shape::Straight) return 10220;
23363  else if (Shape == Shape::InnerLeft) return 10222;
23364  else if (Shape == Shape::InnerRight) return 10224;
23365  else if (Shape == Shape::OuterLeft) return 10226;
23366  else return 10228;
23367  }
23370  enum Half Half(BlockState Block);
23371  enum Shape Shape(BlockState Block);
23372  }
23373  namespace Stonecutter
23374  {
23376  {
23377  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14850;
23378  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14851;
23379  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14852;
23380  else return 14853;
23381  }
23384  }
23385  namespace StrippedAcaciaLog
23386  {
23387  enum class Axis
23388  {
23389  X,
23390  Y,
23391  Z
23392  };
23393  constexpr BlockState StrippedAcaciaLog(const enum Axis Axis)
23394  {
23395  if (Axis == Axis::X) return 100;
23396  else if (Axis == Axis::Y) return 101;
23397  else return 102;
23398  }
23400  enum Axis Axis(BlockState Block);
23401  }
23402  namespace StrippedAcaciaWood
23403  {
23404  enum class Axis
23405  {
23406  X,
23407  Y,
23408  Z
23409  };
23410  constexpr BlockState StrippedAcaciaWood(const enum Axis Axis)
23411  {
23412  if (Axis == Axis::X) return 139;
23413  else if (Axis == Axis::Y) return 140;
23414  else return 141;
23415  }
23417  enum Axis Axis(BlockState Block);
23418  }
23419  namespace StrippedBirchLog
23420  {
23421  enum class Axis
23422  {
23423  X,
23424  Y,
23425  Z
23426  };
23427  constexpr BlockState StrippedBirchLog(const enum Axis Axis)
23428  {
23429  if (Axis == Axis::X) return 94;
23430  else if (Axis == Axis::Y) return 95;
23431  else return 96;
23432  }
23434  enum Axis Axis(BlockState Block);
23435  }
23436  namespace StrippedBirchWood
23437  {
23438  enum class Axis
23439  {
23440  X,
23441  Y,
23442  Z
23443  };
23444  constexpr BlockState StrippedBirchWood(const enum Axis Axis)
23445  {
23446  if (Axis == Axis::X) return 133;
23447  else if (Axis == Axis::Y) return 134;
23448  else return 135;
23449  }
23451  enum Axis Axis(BlockState Block);
23452  }
23453  namespace StrippedCrimsonHyphae
23454  {
23455  enum class Axis
23456  {
23457  X,
23458  Y,
23459  Z
23460  };
23462  {
23463  if (Axis == Axis::X) return 14984;
23464  else if (Axis == Axis::Y) return 14985;
23465  else return 14986;
23466  }
23468  enum Axis Axis(BlockState Block);
23469  }
23470  namespace StrippedCrimsonStem
23471  {
23472  enum class Axis
23473  {
23474  X,
23475  Y,
23476  Z
23477  };
23478  constexpr BlockState StrippedCrimsonStem(const enum Axis Axis)
23479  {
23480  if (Axis == Axis::X) return 14978;
23481  else if (Axis == Axis::Y) return 14979;
23482  else return 14980;
23483  }
23485  enum Axis Axis(BlockState Block);
23486  }
23487  namespace StrippedDarkOakLog
23488  {
23489  enum class Axis
23490  {
23491  X,
23492  Y,
23493  Z
23494  };
23495  constexpr BlockState StrippedDarkOakLog(const enum Axis Axis)
23496  {
23497  if (Axis == Axis::X) return 103;
23498  else if (Axis == Axis::Y) return 104;
23499  else return 105;
23500  }
23502  enum Axis Axis(BlockState Block);
23503  }
23504  namespace StrippedDarkOakWood
23505  {
23506  enum class Axis
23507  {
23508  X,
23509  Y,
23510  Z
23511  };
23512  constexpr BlockState StrippedDarkOakWood(const enum Axis Axis)
23513  {
23514  if (Axis == Axis::X) return 142;
23515  else if (Axis == Axis::Y) return 143;
23516  else return 144;
23517  }
23519  enum Axis Axis(BlockState Block);
23520  }
23521  namespace StrippedJungleLog
23522  {
23523  enum class Axis
23524  {
23525  X,
23526  Y,
23527  Z
23528  };
23529  constexpr BlockState StrippedJungleLog(const enum Axis Axis)
23530  {
23531  if (Axis == Axis::X) return 97;
23532  else if (Axis == Axis::Y) return 98;
23533  else return 99;
23534  }
23536  enum Axis Axis(BlockState Block);
23537  }
23538  namespace StrippedJungleWood
23539  {
23540  enum class Axis
23541  {
23542  X,
23543  Y,
23544  Z
23545  };
23546  constexpr BlockState StrippedJungleWood(const enum Axis Axis)
23547  {
23548  if (Axis == Axis::X) return 136;
23549  else if (Axis == Axis::Y) return 137;
23550  else return 138;
23551  }
23553  enum Axis Axis(BlockState Block);
23554  }
23555  namespace StrippedOakLog
23556  {
23557  enum class Axis
23558  {
23559  X,
23560  Y,
23561  Z
23562  };
23563  constexpr BlockState StrippedOakLog(const enum Axis Axis)
23564  {
23565  if (Axis == Axis::X) return 106;
23566  else if (Axis == Axis::Y) return 107;
23567  else return 108;
23568  }
23570  enum Axis Axis(BlockState Block);
23571  }
23572  namespace StrippedOakWood
23573  {
23574  enum class Axis
23575  {
23576  X,
23577  Y,
23578  Z
23579  };
23580  constexpr BlockState StrippedOakWood(const enum Axis Axis)
23581  {
23582  if (Axis == Axis::X) return 127;
23583  else if (Axis == Axis::Y) return 128;
23584  else return 129;
23585  }
23587  enum Axis Axis(BlockState Block);
23588  }
23589  namespace StrippedSpruceLog
23590  {
23591  enum class Axis
23592  {
23593  X,
23594  Y,
23595  Z
23596  };
23597  constexpr BlockState StrippedSpruceLog(const enum Axis Axis)
23598  {
23599  if (Axis == Axis::X) return 91;
23600  else if (Axis == Axis::Y) return 92;
23601  else return 93;
23602  }
23604  enum Axis Axis(BlockState Block);
23605  }
23606  namespace StrippedSpruceWood
23607  {
23608  enum class Axis
23609  {
23610  X,
23611  Y,
23612  Z
23613  };
23614  constexpr BlockState StrippedSpruceWood(const enum Axis Axis)
23615  {
23616  if (Axis == Axis::X) return 130;
23617  else if (Axis == Axis::Y) return 131;
23618  else return 132;
23619  }
23621  enum Axis Axis(BlockState Block);
23622  }
23623  namespace StrippedWarpedHyphae
23624  {
23625  enum class Axis
23626  {
23627  X,
23628  Y,
23629  Z
23630  };
23632  {
23633  if (Axis == Axis::X) return 14967;
23634  else if (Axis == Axis::Y) return 14968;
23635  else return 14969;
23636  }
23638  enum Axis Axis(BlockState Block);
23639  }
23640  namespace StrippedWarpedStem
23641  {
23642  enum class Axis
23643  {
23644  X,
23645  Y,
23646  Z
23647  };
23648  constexpr BlockState StrippedWarpedStem(const enum Axis Axis)
23649  {
23650  if (Axis == Axis::X) return 14961;
23651  else if (Axis == Axis::Y) return 14962;
23652  else return 14963;
23653  }
23655  enum Axis Axis(BlockState Block);
23656  }
23657  namespace StructureBlock
23658  {
23659  enum class Mode
23660  {
23661  Save,
23662  Load,
23663  Corner,
23664  Data
23665  };
23666  constexpr BlockState StructureBlock(const enum Mode Mode)
23667  {
23668  if (Mode == Mode::Save) return 15735;
23669  else if (Mode == Mode::Load) return 15736;
23670  else if (Mode == Mode::Corner) return 15737;
23671  else return 15738;
23672  }
23674  enum Mode Mode(BlockState Block);
23675  }
23676  namespace StructureVoid
23677  {
23679  {
23680  return 9259;
23681  }
23682  }
23683  namespace SugarCane
23684  {
23685  constexpr BlockState SugarCane(const unsigned char Age)
23686  {
23687  if (Age == 0) return 3948;
23688  else if (Age == 1) return 3949;
23689  else if (Age == 2) return 3950;
23690  else if (Age == 3) return 3951;
23691  else if (Age == 4) return 3952;
23692  else if (Age == 5) return 3953;
23693  else if (Age == 6) return 3954;
23694  else if (Age == 7) return 3955;
23695  else if (Age == 8) return 3956;
23696  else if (Age == 9) return 3957;
23697  else if (Age == 10) return 3958;
23698  else if (Age == 11) return 3959;
23699  else if (Age == 12) return 3960;
23700  else if (Age == 13) return 3961;
23701  else if (Age == 14) return 3962;
23702  else return 3963;
23703  }
23705  unsigned char Age(BlockState Block);
23706  }
23707  namespace Sunflower
23708  {
23709  enum class Half
23710  {
23711  Upper,
23712  Lower
23713  };
23714  constexpr BlockState Sunflower(const enum Half Half)
23715  {
23716  if (Half == Half::Upper) return 7885;
23717  else return 7886;
23718  }
23720  enum Half Half(BlockState Block);
23721  }
23722  namespace SweetBerryBush
23723  {
23724  constexpr BlockState SweetBerryBush(const unsigned char Age)
23725  {
23726  if (Age == 0) return 14954;
23727  else if (Age == 1) return 14955;
23728  else if (Age == 2) return 14956;
23729  else return 14957;
23730  }
23732  unsigned char Age(BlockState Block);
23733  }
23734  namespace TNT
23735  {
23736  constexpr BlockState TNT(const bool Unstable)
23737  {
23738  if (Unstable) return 1430;
23739  else return 1431;
23740  }
23741  BlockState TNT();
23742  bool Unstable(BlockState Block);
23743  }
23744  namespace TallGrass
23745  {
23746  enum class Half
23747  {
23748  Upper,
23749  Lower
23750  };
23751  constexpr BlockState TallGrass(const enum Half Half)
23752  {
23753  if (Half == Half::Upper) return 7893;
23754  else return 7894;
23755  }
23757  enum Half Half(BlockState Block);
23758  }
23759  namespace TallSeagrass
23760  {
23761  enum class Half
23762  {
23763  Upper,
23764  Lower
23765  };
23766  constexpr BlockState TallSeagrass(const enum Half Half)
23767  {
23768  if (Half == Half::Upper) return 1346;
23769  else return 1347;
23770  }
23772  enum Half Half(BlockState Block);
23773  }
23774  namespace Target
23775  {
23776  constexpr BlockState Target(const unsigned char Power)
23777  {
23778  if (Power == 0) return 15760;
23779  else if (Power == 1) return 15761;
23780  else if (Power == 2) return 15762;
23781  else if (Power == 3) return 15763;
23782  else if (Power == 4) return 15764;
23783  else if (Power == 5) return 15765;
23784  else if (Power == 6) return 15766;
23785  else if (Power == 7) return 15767;
23786  else if (Power == 8) return 15768;
23787  else if (Power == 9) return 15769;
23788  else if (Power == 10) return 15770;
23789  else if (Power == 11) return 15771;
23790  else if (Power == 12) return 15772;
23791  else if (Power == 13) return 15773;
23792  else if (Power == 14) return 15774;
23793  else return 15775;
23794  }
23795  BlockState Target();
23796  unsigned char Power(BlockState Block);
23797  }
23798  namespace Terracotta
23799  {
23801  {
23802  return 7882;
23803  }
23804  }
23805  namespace Torch
23806  {
23807  constexpr BlockState Torch()
23808  {
23809  return 1435;
23810  }
23811  }
23812  namespace TrappedChest
23813  {
23814  enum class Type
23815  {
23816  Single,
23817  Left,
23818  Right
23819  };
23820  constexpr BlockState TrappedChest(const eBlockFace Facing, const enum Type Type)
23821  {
23823  if (Type == Type::Single) return 6623;
23824  else if (Type == Type::Left) return 6625;
23825  else return 6627;
23826  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
23827  if (Type == Type::Single) return 6629;
23828  else if (Type == Type::Left) return 6631;
23829  else return 6633;
23830  else if (Facing == eBlockFace::BLOCK_FACE_XM)
23831  if (Type == Type::Single) return 6635;
23832  else if (Type == Type::Left) return 6637;
23833  else return 6639;
23834  else
23835  if (Type == Type::Single) return 6641;
23836  else if (Type == Type::Left) return 6643;
23837  else return 6645;
23838  }
23841  enum Type Type(BlockState Block);
23842  }
23843  namespace Tripwire
23844  {
23845  constexpr BlockState Tripwire(const bool Attached, const bool Disarmed, const bool East, const bool North, const bool Powered, const bool South, const bool West)
23846  {
23847  if (Attached)
23848  if (Disarmed)
23849  if (East)
23850  if (North)
23851  if (Powered)
23852  if (South)
23853  if (West) return 5275;
23854  else return 5276;
23855  else
23856  if (West) return 5277;
23857  else return 5278;
23858  else
23859  if (South)
23860  if (West) return 5279;
23861  else return 5280;
23862  else
23863  if (West) return 5281;
23864  else return 5282;
23865  else
23866  if (Powered)
23867  if (South)
23868  if (West) return 5283;
23869  else return 5284;
23870  else
23871  if (West) return 5285;
23872  else return 5286;
23873  else
23874  if (South)
23875  if (West) return 5287;
23876  else return 5288;
23877  else
23878  if (West) return 5289;
23879  else return 5290;
23880  else
23881  if (North)
23882  if (Powered)
23883  if (South)
23884  if (West) return 5291;
23885  else return 5292;
23886  else
23887  if (West) return 5293;
23888  else return 5294;
23889  else
23890  if (South)
23891  if (West) return 5295;
23892  else return 5296;
23893  else
23894  if (West) return 5297;
23895  else return 5298;
23896  else
23897  if (Powered)
23898  if (South)
23899  if (West) return 5299;
23900  else return 5300;
23901  else
23902  if (West) return 5301;
23903  else return 5302;
23904  else
23905  if (South)
23906  if (West) return 5303;
23907  else return 5304;
23908  else
23909  if (West) return 5305;
23910  else return 5306;
23911  else
23912  if (East)
23913  if (North)
23914  if (Powered)
23915  if (South)
23916  if (West) return 5307;
23917  else return 5308;
23918  else
23919  if (West) return 5309;
23920  else return 5310;
23921  else
23922  if (South)
23923  if (West) return 5311;
23924  else return 5312;
23925  else
23926  if (West) return 5313;
23927  else return 5314;
23928  else
23929  if (Powered)
23930  if (South)
23931  if (West) return 5315;
23932  else return 5316;
23933  else
23934  if (West) return 5317;
23935  else return 5318;
23936  else
23937  if (South)
23938  if (West) return 5319;
23939  else return 5320;
23940  else
23941  if (West) return 5321;
23942  else return 5322;
23943  else
23944  if (North)
23945  if (Powered)
23946  if (South)
23947  if (West) return 5323;
23948  else return 5324;
23949  else
23950  if (West) return 5325;
23951  else return 5326;
23952  else
23953  if (South)
23954  if (West) return 5327;
23955  else return 5328;
23956  else
23957  if (West) return 5329;
23958  else return 5330;
23959  else
23960  if (Powered)
23961  if (South)
23962  if (West) return 5331;
23963  else return 5332;
23964  else
23965  if (West) return 5333;
23966  else return 5334;
23967  else
23968  if (South)
23969  if (West) return 5335;
23970  else return 5336;
23971  else
23972  if (West) return 5337;
23973  else return 5338;
23974  else
23975  if (Disarmed)
23976  if (East)
23977  if (North)
23978  if (Powered)
23979  if (South)
23980  if (West) return 5339;
23981  else return 5340;
23982  else
23983  if (West) return 5341;
23984  else return 5342;
23985  else
23986  if (South)
23987  if (West) return 5343;
23988  else return 5344;
23989  else
23990  if (West) return 5345;
23991  else return 5346;
23992  else
23993  if (Powered)
23994  if (South)
23995  if (West) return 5347;
23996  else return 5348;
23997  else
23998  if (West) return 5349;
23999  else return 5350;
24000  else
24001  if (South)
24002  if (West) return 5351;
24003  else return 5352;
24004  else
24005  if (West) return 5353;
24006  else return 5354;
24007  else
24008  if (North)
24009  if (Powered)
24010  if (South)
24011  if (West) return 5355;
24012  else return 5356;
24013  else
24014  if (West) return 5357;
24015  else return 5358;
24016  else
24017  if (South)
24018  if (West) return 5359;
24019  else return 5360;
24020  else
24021  if (West) return 5361;
24022  else return 5362;
24023  else
24024  if (Powered)
24025  if (South)
24026  if (West) return 5363;
24027  else return 5364;
24028  else
24029  if (West) return 5365;
24030  else return 5366;
24031  else
24032  if (South)
24033  if (West) return 5367;
24034  else return 5368;
24035  else
24036  if (West) return 5369;
24037  else return 5370;
24038  else
24039  if (East)
24040  if (North)
24041  if (Powered)
24042  if (South)
24043  if (West) return 5371;
24044  else return 5372;
24045  else
24046  if (West) return 5373;
24047  else return 5374;
24048  else
24049  if (South)
24050  if (West) return 5375;
24051  else return 5376;
24052  else
24053  if (West) return 5377;
24054  else return 5378;
24055  else
24056  if (Powered)
24057  if (South)
24058  if (West) return 5379;
24059  else return 5380;
24060  else
24061  if (West) return 5381;
24062  else return 5382;
24063  else
24064  if (South)
24065  if (West) return 5383;
24066  else return 5384;
24067  else
24068  if (West) return 5385;
24069  else return 5386;
24070  else
24071  if (North)
24072  if (Powered)
24073  if (South)
24074  if (West) return 5387;
24075  else return 5388;
24076  else
24077  if (West) return 5389;
24078  else return 5390;
24079  else
24080  if (South)
24081  if (West) return 5391;
24082  else return 5392;
24083  else
24084  if (West) return 5393;
24085  else return 5394;
24086  else
24087  if (Powered)
24088  if (South)
24089  if (West) return 5395;
24090  else return 5396;
24091  else
24092  if (West) return 5397;
24093  else return 5398;
24094  else
24095  if (South)
24096  if (West) return 5399;
24097  else return 5400;
24098  else
24099  if (West) return 5401;
24100  else return 5402;
24101  }
24102  BlockState Tripwire();
24103  bool Attached(BlockState Block);
24104  bool Disarmed(BlockState Block);
24105  bool East(BlockState Block);
24106  bool North(BlockState Block);
24107  bool Powered(BlockState Block);
24108  bool South(BlockState Block);
24109  bool West(BlockState Block);
24110  }
24111  namespace TripwireHook
24112  {
24113  constexpr BlockState TripwireHook(const bool Attached, const eBlockFace Facing, const bool Powered)
24114  {
24115  if (Attached)
24117  if (Powered) return 5259;
24118  else return 5260;
24119  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
24120  if (Powered) return 5261;
24121  else return 5262;
24122  else if (Facing == eBlockFace::BLOCK_FACE_XM)
24123  if (Powered) return 5263;
24124  else return 5264;
24125  else
24126  if (Powered) return 5265;
24127  else return 5266;
24128  else
24130  if (Powered) return 5267;
24131  else return 5268;
24132  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
24133  if (Powered) return 5269;
24134  else return 5270;
24135  else if (Facing == eBlockFace::BLOCK_FACE_XM)
24136  if (Powered) return 5271;
24137  else return 5272;
24138  else
24139  if (Powered) return 5273;
24140  else return 5274;
24141  }
24143  bool Attached(BlockState Block);
24145  bool Powered(BlockState Block);
24146  }
24147  namespace TubeCoral
24148  {
24149  constexpr BlockState TubeCoral()
24150  {
24151  return 9531;
24152  }
24153  }
24154  namespace TubeCoralBlock
24155  {
24157  {
24158  return 9515;
24159  }
24160  }
24161  namespace TubeCoralFan
24162  {
24164  {
24165  return 9551;
24166  }
24167  }
24168  namespace TubeCoralWallFan
24169  {
24171  {
24172  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9601;
24173  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9603;
24174  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9605;
24175  else return 9607;
24176  }
24179  }
24180  namespace TurtleEgg
24181  {
24182  constexpr BlockState TurtleEgg(const unsigned char Eggs, const unsigned char Hatch)
24183  {
24184  if (Eggs == 1)
24185  if (Hatch == 0) return 9498;
24186  else if (Hatch == 1) return 9499;
24187  else return 9500;
24188  else if (Eggs == 2)
24189  if (Hatch == 0) return 9501;
24190  else if (Hatch == 1) return 9502;
24191  else return 9503;
24192  else if (Eggs == 3)
24193  if (Hatch == 0) return 9504;
24194  else if (Hatch == 1) return 9505;
24195  else return 9506;
24196  else
24197  if (Hatch == 0) return 9507;
24198  else if (Hatch == 1) return 9508;
24199  else return 9509;
24200  }
24202  unsigned char Eggs(BlockState Block);
24203  unsigned char Hatch(BlockState Block);
24204  }
24205  namespace TwistingVines
24206  {
24207  constexpr BlockState TwistingVines(const unsigned char Age)
24208  {
24209  if (Age == 0) return 15017;
24210  else if (Age == 1) return 15018;
24211  else if (Age == 2) return 15019;
24212  else if (Age == 3) return 15020;
24213  else if (Age == 4) return 15021;
24214  else if (Age == 5) return 15022;
24215  else if (Age == 6) return 15023;
24216  else if (Age == 7) return 15024;
24217  else if (Age == 8) return 15025;
24218  else if (Age == 9) return 15026;
24219  else if (Age == 10) return 15027;
24220  else if (Age == 11) return 15028;
24221  else if (Age == 12) return 15029;
24222  else if (Age == 13) return 15030;
24223  else if (Age == 14) return 15031;
24224  else if (Age == 15) return 15032;
24225  else if (Age == 16) return 15033;
24226  else if (Age == 17) return 15034;
24227  else if (Age == 18) return 15035;
24228  else if (Age == 19) return 15036;
24229  else if (Age == 20) return 15037;
24230  else if (Age == 21) return 15038;
24231  else if (Age == 22) return 15039;
24232  else if (Age == 23) return 15040;
24233  else if (Age == 24) return 15041;
24234  else return 15042;
24235  }
24237  unsigned char Age(BlockState Block);
24238  }
24239  namespace TwistingVinesPlant
24240  {
24242  {
24243  return 15043;
24244  }
24245  }
24246  namespace Vine
24247  {
24248  constexpr BlockState Vine(const bool East, const bool North, const bool South, const bool Up, const bool West)
24249  {
24250  if (East)
24251  if (North)
24252  if (South)
24253  if (Up)
24254  if (West) return 4788;
24255  else return 4789;
24256  else
24257  if (West) return 4790;
24258  else return 4791;
24259  else
24260  if (Up)
24261  if (West) return 4792;
24262  else return 4793;
24263  else
24264  if (West) return 4794;
24265  else return 4795;
24266  else
24267  if (South)
24268  if (Up)
24269  if (West) return 4796;
24270  else return 4797;
24271  else
24272  if (West) return 4798;
24273  else return 4799;
24274  else
24275  if (Up)
24276  if (West) return 4800;
24277  else return 4801;
24278  else
24279  if (West) return 4802;
24280  else return 4803;
24281  else
24282  if (North)
24283  if (South)
24284  if (Up)
24285  if (West) return 4804;
24286  else return 4805;
24287  else
24288  if (West) return 4806;
24289  else return 4807;
24290  else
24291  if (Up)
24292  if (West) return 4808;
24293  else return 4809;
24294  else
24295  if (West) return 4810;
24296  else return 4811;
24297  else
24298  if (South)
24299  if (Up)
24300  if (West) return 4812;
24301  else return 4813;
24302  else
24303  if (West) return 4814;
24304  else return 4815;
24305  else
24306  if (Up)
24307  if (West) return 4816;
24308  else return 4817;
24309  else
24310  if (West) return 4818;
24311  else return 4819;
24312  }
24313  BlockState Vine();
24314  bool East(BlockState Block);
24315  bool North(BlockState Block);
24316  bool South(BlockState Block);
24317  bool Up(BlockState Block);
24318  bool West(BlockState Block);
24319  }
24320  namespace VoidAir
24321  {
24322  constexpr BlockState VoidAir()
24323  {
24324  return 9665;
24325  }
24326  }
24327  namespace WallTorch
24328  {
24330  {
24331  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1436;
24332  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1437;
24333  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1438;
24334  else return 1439;
24335  }
24338  }
24339  namespace WarpedButton
24340  {
24341  enum class Face
24342  {
24343  Floor,
24344  Wall,
24345  Ceiling
24346  };
24347  constexpr BlockState WarpedButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
24348  {
24349  if (Face == Face::Floor)
24351  if (Powered) return 15503;
24352  else return 15504;
24353  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
24354  if (Powered) return 15505;
24355  else return 15506;
24356  else if (Facing == eBlockFace::BLOCK_FACE_XM)
24357  if (Powered) return 15507;
24358  else return 15508;
24359  else
24360  if (Powered) return 15509;
24361  else return 15510;
24362  else if (Face == Face::Wall)
24364  if (Powered) return 15511;
24365  else return 15512;
24366  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
24367  if (Powered) return 15513;
24368  else return 15514;
24369  else if (Facing == eBlockFace::BLOCK_FACE_XM)
24370  if (Powered) return 15515;
24371  else return 15516;
24372  else
24373  if (Powered) return 15517;
24374  else return 15518;
24375  else
24377  if (Powered) return 15519;
24378  else return 15520;
24379  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
24380  if (Powered) return 15521;
24381  else return 15522;
24382  else if (Facing == eBlockFace::BLOCK_FACE_XM)
24383  if (Powered) return 15523;
24384  else return 15524;
24385  else
24386  if (Powered) return 15525;
24387  else return 15526;
24388  }
24390  enum Face Face(BlockState Block);
24392  bool Powered(BlockState Block);
24393  }
24394  namespace WarpedDoor
24395  {
24396  enum class Half
24397  {
24398  Upper,
24399  Lower
24400  };
24401  enum class Hinge
24402  {
24403  Left,
24404  Right
24405  };
24406  constexpr BlockState WarpedDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
24407  {
24409  if (Half == Half::Upper)
24410  if (Hinge == Hinge::Left)
24411  if (Open)
24412  if (Powered) return 15591;
24413  else return 15592;
24414  else
24415  if (Powered) return 15593;
24416  else return 15594;
24417  else
24418  if (Open)
24419  if (Powered) return 15595;
24420  else return 15596;
24421  else
24422  if (Powered) return 15597;
24423  else return 15598;
24424  else
24425  if (Hinge == Hinge::Left)
24426  if (Open)
24427  if (Powered) return 15599;
24428  else return 15600;
24429  else
24430  if (Powered) return 15601;
24431  else return 15602;
24432  else
24433  if (Open)
24434  if (Powered) return 15603;
24435  else return 15604;
24436  else
24437  if (Powered) return 15605;
24438  else return 15606;
24439  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
24440  if (Half == Half::Upper)
24441  if (Hinge == Hinge::Left)
24442  if (Open)
24443  if (Powered) return 15607;
24444  else return 15608;
24445  else
24446  if (Powered) return 15609;
24447  else return 15610;
24448  else
24449  if (Open)
24450  if (Powered) return 15611;
24451  else return 15612;
24452  else
24453  if (Powered) return 15613;
24454  else return 15614;
24455  else
24456  if (Hinge == Hinge::Left)
24457  if (Open)
24458  if (Powered) return 15615;
24459  else return 15616;
24460  else
24461  if (Powered) return 15617;
24462  else return 15618;
24463  else
24464  if (Open)
24465  if (Powered) return 15619;
24466  else return 15620;
24467  else
24468  if (Powered) return 15621;
24469  else return 15622;
24470  else if (Facing == eBlockFace::BLOCK_FACE_XM)
24471  if (Half == Half::Upper)
24472  if (Hinge == Hinge::Left)
24473  if (Open)
24474  if (Powered) return 15623;
24475  else return 15624;
24476  else
24477  if (Powered) return 15625;
24478  else return 15626;
24479  else
24480  if (Open)
24481  if (Powered) return 15627;
24482  else return 15628;
24483  else
24484  if (Powered) return 15629;
24485  else return 15630;
24486  else
24487  if (Hinge == Hinge::Left)
24488  if (Open)
24489  if (Powered) return 15631;
24490  else return 15632;
24491  else
24492  if (Powered) return 15633;
24493  else return 15634;
24494  else
24495  if (Open)
24496  if (Powered) return 15635;
24497  else return 15636;
24498  else
24499  if (Powered) return 15637;
24500  else return 15638;
24501  else
24502  if (Half == Half::Upper)
24503  if (Hinge == Hinge::Left)
24504  if (Open)
24505  if (Powered) return 15639;
24506  else return 15640;
24507  else
24508  if (Powered) return 15641;
24509  else return 15642;
24510  else
24511  if (Open)
24512  if (Powered) return 15643;
24513  else return 15644;
24514  else
24515  if (Powered) return 15645;
24516  else return 15646;
24517  else
24518  if (Hinge == Hinge::Left)
24519  if (Open)
24520  if (Powered) return 15647;
24521  else return 15648;
24522  else
24523  if (Powered) return 15649;
24524  else return 15650;
24525  else
24526  if (Open)
24527  if (Powered) return 15651;
24528  else return 15652;
24529  else
24530  if (Powered) return 15653;
24531  else return 15654;
24532  }
24535  enum Half Half(BlockState Block);
24536  enum Hinge Hinge(BlockState Block);
24537  bool Open(BlockState Block);
24538  bool Powered(BlockState Block);
24539  }
24540  namespace WarpedFence
24541  {
24542  constexpr BlockState WarpedFence(const bool East, const bool North, const bool South, const bool West)
24543  {
24544  if (East)
24545  if (North)
24546  if (South)
24547  if (West) return 15097;
24548  else return 15098;
24549  else
24550  if (West) return 15101;
24551  else return 15102;
24552  else
24553  if (South)
24554  if (West) return 15105;
24555  else return 15106;
24556  else
24557  if (West) return 15109;
24558  else return 15110;
24559  else
24560  if (North)
24561  if (South)
24562  if (West) return 15113;
24563  else return 15114;
24564  else
24565  if (West) return 15117;
24566  else return 15118;
24567  else
24568  if (South)
24569  if (West) return 15121;
24570  else return 15122;
24571  else
24572  if (West) return 15125;
24573  else return 15126;
24574  }
24576  bool East(BlockState Block);
24577  bool North(BlockState Block);
24578  bool South(BlockState Block);
24579  bool West(BlockState Block);
24580  }
24581  namespace WarpedFenceGate
24582  {
24583  constexpr BlockState WarpedFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
24584  {
24586  if (InWall)
24587  if (Open)
24588  if (Powered) return 15287;
24589  else return 15288;
24590  else
24591  if (Powered) return 15289;
24592  else return 15290;
24593  else
24594  if (Open)
24595  if (Powered) return 15291;
24596  else return 15292;
24597  else
24598  if (Powered) return 15293;
24599  else return 15294;
24600  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
24601  if (InWall)
24602  if (Open)
24603  if (Powered) return 15295;
24604  else return 15296;
24605  else
24606  if (Powered) return 15297;
24607  else return 15298;
24608  else
24609  if (Open)
24610  if (Powered) return 15299;
24611  else return 15300;
24612  else
24613  if (Powered) return 15301;
24614  else return 15302;
24615  else if (Facing == eBlockFace::BLOCK_FACE_XM)
24616  if (InWall)
24617  if (Open)
24618  if (Powered) return 15303;
24619  else return 15304;
24620  else
24621  if (Powered) return 15305;
24622  else return 15306;
24623  else
24624  if (Open)
24625  if (Powered) return 15307;
24626  else return 15308;
24627  else
24628  if (Powered) return 15309;
24629  else return 15310;
24630  else
24631  if (InWall)
24632  if (Open)
24633  if (Powered) return 15311;
24634  else return 15312;
24635  else
24636  if (Powered) return 15313;
24637  else return 15314;
24638  else
24639  if (Open)
24640  if (Powered) return 15315;
24641  else return 15316;
24642  else
24643  if (Powered) return 15317;
24644  else return 15318;
24645  }
24648  bool InWall(BlockState Block);
24649  bool Open(BlockState Block);
24650  bool Powered(BlockState Block);
24651  }
24652  namespace WarpedFungus
24653  {
24655  {
24656  return 14971;
24657  }
24658  }
24659  namespace WarpedHyphae
24660  {
24661  enum class Axis
24662  {
24663  X,
24664  Y,
24665  Z
24666  };
24667  constexpr BlockState WarpedHyphae(const enum Axis Axis)
24668  {
24669  if (Axis == Axis::X) return 14964;
24670  else if (Axis == Axis::Y) return 14965;
24671  else return 14966;
24672  }
24674  enum Axis Axis(BlockState Block);
24675  }
24676  namespace WarpedNylium
24677  {
24679  {
24680  return 14970;
24681  }
24682  }
24683  namespace WarpedPlanks
24684  {
24686  {
24687  return 15046;
24688  }
24689  }
24690  namespace WarpedPressurePlate
24691  {
24693  {
24694  if (Powered) return 15061;
24695  else return 15062;
24696  }
24698  bool Powered(BlockState Block);
24699  }
24700  namespace WarpedRoots
24701  {
24703  {
24704  return 14973;
24705  }
24706  }
24707  namespace WarpedSign
24708  {
24709  constexpr BlockState WarpedSign(const unsigned char Rotation)
24710  {
24711  if (Rotation == 0) return 15688;
24712  else if (Rotation == 1) return 15690;
24713  else if (Rotation == 2) return 15692;
24714  else if (Rotation == 3) return 15694;
24715  else if (Rotation == 4) return 15696;
24716  else if (Rotation == 5) return 15698;
24717  else if (Rotation == 6) return 15700;
24718  else if (Rotation == 7) return 15702;
24719  else if (Rotation == 8) return 15704;
24720  else if (Rotation == 9) return 15706;
24721  else if (Rotation == 10) return 15708;
24722  else if (Rotation == 11) return 15710;
24723  else if (Rotation == 12) return 15712;
24724  else if (Rotation == 13) return 15714;
24725  else if (Rotation == 14) return 15716;
24726  else return 15718;
24727  }
24729  unsigned char Rotation(BlockState Block);
24730  }
24731  namespace WarpedSlab
24732  {
24733  enum class Type
24734  {
24735  Top,
24736  Bottom,
24737  Double
24738  };
24739  constexpr BlockState WarpedSlab(const enum Type Type)
24740  {
24741  if (Type == Type::Top) return 15054;
24742  else if (Type == Type::Bottom) return 15056;
24743  else return 15058;
24744  }
24746  enum Type Type(BlockState Block);
24747  }
24748  namespace WarpedStairs
24749  {
24750  enum class Half
24751  {
24752  Top,
24753  Bottom
24754  };
24755  enum class Shape
24756  {
24757  Straight,
24758  InnerLeft,
24759  InnerRight,
24760  OuterLeft,
24761  OuterRight
24762  };
24763  constexpr BlockState WarpedStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
24764  {
24766  if (Half == Half::Top)
24767  if (Shape == Shape::Straight) return 15400;
24768  else if (Shape == Shape::InnerLeft) return 15402;
24769  else if (Shape == Shape::InnerRight) return 15404;
24770  else if (Shape == Shape::OuterLeft) return 15406;
24771  else return 15408;
24772  else
24773  if (Shape == Shape::Straight) return 15410;
24774  else if (Shape == Shape::InnerLeft) return 15412;
24775  else if (Shape == Shape::InnerRight) return 15414;
24776  else if (Shape == Shape::OuterLeft) return 15416;
24777  else return 15418;
24778  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
24779  if (Half == Half::Top)
24780  if (Shape == Shape::Straight) return 15420;
24781  else if (Shape == Shape::InnerLeft) return 15422;
24782  else if (Shape == Shape::InnerRight) return 15424;
24783  else if (Shape == Shape::OuterLeft) return 15426;
24784  else return 15428;
24785  else
24786  if (Shape == Shape::Straight) return 15430;
24787  else if (Shape == Shape::InnerLeft) return 15432;
24788  else if (Shape == Shape::InnerRight) return 15434;
24789  else if (Shape == Shape::OuterLeft) return 15436;
24790  else return 15438;
24791  else if (Facing == eBlockFace::BLOCK_FACE_XM)
24792  if (Half == Half::Top)
24793  if (Shape == Shape::Straight) return 15440;
24794  else if (Shape == Shape::InnerLeft) return 15442;
24795  else if (Shape == Shape::InnerRight) return 15444;
24796  else if (Shape == Shape::OuterLeft) return 15446;
24797  else return 15448;
24798  else
24799  if (Shape == Shape::Straight) return 15450;
24800  else if (Shape == Shape::InnerLeft) return 15452;
24801  else if (Shape == Shape::InnerRight) return 15454;
24802  else if (Shape == Shape::OuterLeft) return 15456;
24803  else return 15458;
24804  else
24805  if (Half == Half::Top)
24806  if (Shape == Shape::Straight) return 15460;
24807  else if (Shape == Shape::InnerLeft) return 15462;
24808  else if (Shape == Shape::InnerRight) return 15464;
24809  else if (Shape == Shape::OuterLeft) return 15466;
24810  else return 15468;
24811  else
24812  if (Shape == Shape::Straight) return 15470;
24813  else if (Shape == Shape::InnerLeft) return 15472;
24814  else if (Shape == Shape::InnerRight) return 15474;
24815  else if (Shape == Shape::OuterLeft) return 15476;
24816  else return 15478;
24817  }
24820  enum Half Half(BlockState Block);
24821  enum Shape Shape(BlockState Block);
24822  }
24823  namespace WarpedStem
24824  {
24825  enum class Axis
24826  {
24827  X,
24828  Y,
24829  Z
24830  };
24831  constexpr BlockState WarpedStem(const enum Axis Axis)
24832  {
24833  if (Axis == Axis::X) return 14958;
24834  else if (Axis == Axis::Y) return 14959;
24835  else return 14960;
24836  }
24838  enum Axis Axis(BlockState Block);
24839  }
24840  namespace WarpedTrapdoor
24841  {
24842  enum class Half
24843  {
24844  Top,
24845  Bottom
24846  };
24847  constexpr BlockState WarpedTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
24848  {
24850  if (Half == Half::Top)
24851  if (Open)
24852  if (Powered) return 15192;
24853  else return 15194;
24854  else
24855  if (Powered) return 15196;
24856  else return 15198;
24857  else
24858  if (Open)
24859  if (Powered) return 15200;
24860  else return 15202;
24861  else
24862  if (Powered) return 15204;
24863  else return 15206;
24864  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
24865  if (Half == Half::Top)
24866  if (Open)
24867  if (Powered) return 15208;
24868  else return 15210;
24869  else
24870  if (Powered) return 15212;
24871  else return 15214;
24872  else
24873  if (Open)
24874  if (Powered) return 15216;
24875  else return 15218;
24876  else
24877  if (Powered) return 15220;
24878  else return 15222;
24879  else if (Facing == eBlockFace::BLOCK_FACE_XM)
24880  if (Half == Half::Top)
24881  if (Open)
24882  if (Powered) return 15224;
24883  else return 15226;
24884  else
24885  if (Powered) return 15228;
24886  else return 15230;
24887  else
24888  if (Open)
24889  if (Powered) return 15232;
24890  else return 15234;
24891  else
24892  if (Powered) return 15236;
24893  else return 15238;
24894  else
24895  if (Half == Half::Top)
24896  if (Open)
24897  if (Powered) return 15240;
24898  else return 15242;
24899  else
24900  if (Powered) return 15244;
24901  else return 15246;
24902  else
24903  if (Open)
24904  if (Powered) return 15248;
24905  else return 15250;
24906  else
24907  if (Powered) return 15252;
24908  else return 15254;
24909  }
24912  enum Half Half(BlockState Block);
24913  bool Open(BlockState Block);
24914  bool Powered(BlockState Block);
24915  }
24916  namespace WarpedWallSign
24917  {
24919  {
24920  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 15728;
24921  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 15730;
24922  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 15732;
24923  else return 15734;
24924  }
24927  }
24928  namespace WarpedWartBlock
24929  {
24931  {
24932  return 14972;
24933  }
24934  }
24935  namespace Water
24936  {
24937  constexpr BlockState Water(const unsigned char Level)
24938  {
24939  if (Level == 0) return 34;
24940  else if (Level == 1) return 35;
24941  else if (Level == 2) return 36;
24942  else if (Level == 3) return 37;
24943  else if (Level == 4) return 38;
24944  else if (Level == 5) return 39;
24945  else if (Level == 6) return 40;
24946  else if (Level == 7) return 41;
24947  else if (Level == 8) return 42;
24948  else if (Level == 9) return 43;
24949  else if (Level == 10) return 44;
24950  else if (Level == 11) return 45;
24951  else if (Level == 12) return 46;
24952  else if (Level == 13) return 47;
24953  else if (Level == 14) return 48;
24954  else return 49;
24955  }
24956  BlockState Water();
24957  unsigned char Level(BlockState Block);
24958  }
24959  namespace WeepingVines
24960  {
24961  constexpr BlockState WeepingVines(const unsigned char Age)
24962  {
24963  if (Age == 0) return 14990;
24964  else if (Age == 1) return 14991;
24965  else if (Age == 2) return 14992;
24966  else if (Age == 3) return 14993;
24967  else if (Age == 4) return 14994;
24968  else if (Age == 5) return 14995;
24969  else if (Age == 6) return 14996;
24970  else if (Age == 7) return 14997;
24971  else if (Age == 8) return 14998;
24972  else if (Age == 9) return 14999;
24973  else if (Age == 10) return 15000;
24974  else if (Age == 11) return 15001;
24975  else if (Age == 12) return 15002;
24976  else if (Age == 13) return 15003;
24977  else if (Age == 14) return 15004;
24978  else if (Age == 15) return 15005;
24979  else if (Age == 16) return 15006;
24980  else if (Age == 17) return 15007;
24981  else if (Age == 18) return 15008;
24982  else if (Age == 19) return 15009;
24983  else if (Age == 20) return 15010;
24984  else if (Age == 21) return 15011;
24985  else if (Age == 22) return 15012;
24986  else if (Age == 23) return 15013;
24987  else if (Age == 24) return 15014;
24988  else return 15015;
24989  }
24991  unsigned char Age(BlockState Block);
24992  }
24993  namespace WeepingVinesPlant
24994  {
24996  {
24997  return 15016;
24998  }
24999  }
25000  namespace WetSponge
25001  {
25002  constexpr BlockState WetSponge()
25003  {
25004  return 230;
25005  }
25006  }
25007  namespace Wheat
25008  {
25009  constexpr BlockState Wheat(const unsigned char Age)
25010  {
25011  if (Age == 0) return 3357;
25012  else if (Age == 1) return 3358;
25013  else if (Age == 2) return 3359;
25014  else if (Age == 3) return 3360;
25015  else if (Age == 4) return 3361;
25016  else if (Age == 5) return 3362;
25017  else if (Age == 6) return 3363;
25018  else return 3364;
25019  }
25020  BlockState Wheat();
25021  unsigned char Age(BlockState Block);
25022  }
25023  namespace WhiteBanner
25024  {
25025  constexpr BlockState WhiteBanner(const unsigned char Rotation)
25026  {
25027  if (Rotation == 0) return 7897;
25028  else if (Rotation == 1) return 7898;
25029  else if (Rotation == 2) return 7899;
25030  else if (Rotation == 3) return 7900;
25031  else if (Rotation == 4) return 7901;
25032  else if (Rotation == 5) return 7902;
25033  else if (Rotation == 6) return 7903;
25034  else if (Rotation == 7) return 7904;
25035  else if (Rotation == 8) return 7905;
25036  else if (Rotation == 9) return 7906;
25037  else if (Rotation == 10) return 7907;
25038  else if (Rotation == 11) return 7908;
25039  else if (Rotation == 12) return 7909;
25040  else if (Rotation == 13) return 7910;
25041  else if (Rotation == 14) return 7911;
25042  else return 7912;
25043  }
25045  unsigned char Rotation(BlockState Block);
25046  }
25047  namespace WhiteBed
25048  {
25049  enum class Part
25050  {
25051  Head,
25052  Foot
25053  };
25054  constexpr BlockState WhiteBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
25055  {
25057  if (Occupied)
25058  if (Part == Part::Head) return 1049;
25059  else return 1050;
25060  else
25061  if (Part == Part::Head) return 1051;
25062  else return 1052;
25063  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
25064  if (Occupied)
25065  if (Part == Part::Head) return 1053;
25066  else return 1054;
25067  else
25068  if (Part == Part::Head) return 1055;
25069  else return 1056;
25070  else if (Facing == eBlockFace::BLOCK_FACE_XM)
25071  if (Occupied)
25072  if (Part == Part::Head) return 1057;
25073  else return 1058;
25074  else
25075  if (Part == Part::Head) return 1059;
25076  else return 1060;
25077  else
25078  if (Occupied)
25079  if (Part == Part::Head) return 1061;
25080  else return 1062;
25081  else
25082  if (Part == Part::Head) return 1063;
25083  else return 1064;
25084  }
25085  BlockState WhiteBed();
25087  bool Occupied(BlockState Block);
25088  enum Part Part(BlockState Block);
25089  }
25090  namespace WhiteCarpet
25091  {
25093  {
25094  return 7866;
25095  }
25096  }
25097  namespace WhiteConcrete
25098  {
25100  {
25101  return 9438;
25102  }
25103  }
25104  namespace WhiteConcretePowder
25105  {
25107  {
25108  return 9454;
25109  }
25110  }
25111  namespace WhiteGlazedTerracotta
25112  {
25114  {
25115  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9374;
25116  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9375;
25117  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9376;
25118  else return 9377;
25119  }
25122  }
25123  namespace WhiteShulkerBox
25124  {
25126  {
25127  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9278;
25128  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9279;
25129  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9280;
25130  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9281;
25131  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9282;
25132  else return 9283;
25133  }
25136  }
25137  namespace WhiteStainedGlass
25138  {
25140  {
25141  return 4095;
25142  }
25143  }
25144  namespace WhiteStainedGlassPane
25145  {
25146  constexpr BlockState WhiteStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
25147  {
25148  if (East)
25149  if (North)
25150  if (South)
25151  if (West) return 6865;
25152  else return 6866;
25153  else
25154  if (West) return 6869;
25155  else return 6870;
25156  else
25157  if (South)
25158  if (West) return 6873;
25159  else return 6874;
25160  else
25161  if (West) return 6877;
25162  else return 6878;
25163  else
25164  if (North)
25165  if (South)
25166  if (West) return 6881;
25167  else return 6882;
25168  else
25169  if (West) return 6885;
25170  else return 6886;
25171  else
25172  if (South)
25173  if (West) return 6889;
25174  else return 6890;
25175  else
25176  if (West) return 6893;
25177  else return 6894;
25178  }
25180  bool East(BlockState Block);
25181  bool North(BlockState Block);
25182  bool South(BlockState Block);
25183  bool West(BlockState Block);
25184  }
25185  namespace WhiteTerracotta
25186  {
25188  {
25189  return 6847;
25190  }
25191  }
25192  namespace WhiteTulip
25193  {
25195  {
25196  return 1419;
25197  }
25198  }
25199  namespace WhiteWallBanner
25200  {
25202  {
25203  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8153;
25204  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8154;
25205  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8155;
25206  else return 8156;
25207  }
25210  }
25211  namespace WhiteWool
25212  {
25213  constexpr BlockState WhiteWool()
25214  {
25215  return 1384;
25216  }
25217  }
25218  namespace WitherRose
25219  {
25221  {
25222  return 1423;
25223  }
25224  }
25225  namespace WitherSkeletonSkull
25226  {
25227  constexpr BlockState WitherSkeletonSkull(const unsigned char Rotation)
25228  {
25229  if (Rotation == 0) return 6510;
25230  else if (Rotation == 1) return 6511;
25231  else if (Rotation == 2) return 6512;
25232  else if (Rotation == 3) return 6513;
25233  else if (Rotation == 4) return 6514;
25234  else if (Rotation == 5) return 6515;
25235  else if (Rotation == 6) return 6516;
25236  else if (Rotation == 7) return 6517;
25237  else if (Rotation == 8) return 6518;
25238  else if (Rotation == 9) return 6519;
25239  else if (Rotation == 10) return 6520;
25240  else if (Rotation == 11) return 6521;
25241  else if (Rotation == 12) return 6522;
25242  else if (Rotation == 13) return 6523;
25243  else if (Rotation == 14) return 6524;
25244  else return 6525;
25245  }
25247  unsigned char Rotation(BlockState Block);
25248  }
25249  namespace WitherSkeletonWallSkull
25250  {
25252  {
25253  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6526;
25254  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6527;
25255  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6528;
25256  else return 6529;
25257  }
25260  }
25261  namespace YellowBanner
25262  {
25263  constexpr BlockState YellowBanner(const unsigned char Rotation)
25264  {
25265  if (Rotation == 0) return 7961;
25266  else if (Rotation == 1) return 7962;
25267  else if (Rotation == 2) return 7963;
25268  else if (Rotation == 3) return 7964;
25269  else if (Rotation == 4) return 7965;
25270  else if (Rotation == 5) return 7966;
25271  else if (Rotation == 6) return 7967;
25272  else if (Rotation == 7) return 7968;
25273  else if (Rotation == 8) return 7969;
25274  else if (Rotation == 9) return 7970;
25275  else if (Rotation == 10) return 7971;
25276  else if (Rotation == 11) return 7972;
25277  else if (Rotation == 12) return 7973;
25278  else if (Rotation == 13) return 7974;
25279  else if (Rotation == 14) return 7975;
25280  else return 7976;
25281  }
25283  unsigned char Rotation(BlockState Block);
25284  }
25285  namespace YellowBed
25286  {
25287  enum class Part
25288  {
25289  Head,
25290  Foot
25291  };
25292  constexpr BlockState YellowBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
25293  {
25295  if (Occupied)
25296  if (Part == Part::Head) return 1113;
25297  else return 1114;
25298  else
25299  if (Part == Part::Head) return 1115;
25300  else return 1116;
25301  else if (Facing == eBlockFace::BLOCK_FACE_ZP)
25302  if (Occupied)
25303  if (Part == Part::Head) return 1117;
25304  else return 1118;
25305  else
25306  if (Part == Part::Head) return 1119;
25307  else return 1120;
25308  else if (Facing == eBlockFace::BLOCK_FACE_XM)
25309  if (Occupied)
25310  if (Part == Part::Head) return 1121;
25311  else return 1122;
25312  else
25313  if (Part == Part::Head) return 1123;
25314  else return 1124;
25315  else
25316  if (Occupied)
25317  if (Part == Part::Head) return 1125;
25318  else return 1126;
25319  else
25320  if (Part == Part::Head) return 1127;
25321  else return 1128;
25322  }
25325  bool Occupied(BlockState Block);
25326  enum Part Part(BlockState Block);
25327  }
25328  namespace YellowCarpet
25329  {
25331  {
25332  return 7870;
25333  }
25334  }
25335  namespace YellowConcrete
25336  {
25338  {
25339  return 9442;
25340  }
25341  }
25342  namespace YellowConcretePowder
25343  {
25345  {
25346  return 9458;
25347  }
25348  }
25349  namespace YellowGlazedTerracotta
25350  {
25352  {
25353  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9390;
25354  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9391;
25355  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9392;
25356  else return 9393;
25357  }
25360  }
25361  namespace YellowShulkerBox
25362  {
25364  {
25365  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9302;
25366  else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9303;
25367  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9304;
25368  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9305;
25369  else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9306;
25370  else return 9307;
25371  }
25374  }
25375  namespace YellowStainedGlass
25376  {
25378  {
25379  return 4099;
25380  }
25381  }
25382  namespace YellowStainedGlassPane
25383  {
25384  constexpr BlockState YellowStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
25385  {
25386  if (East)
25387  if (North)
25388  if (South)
25389  if (West) return 6993;
25390  else return 6994;
25391  else
25392  if (West) return 6997;
25393  else return 6998;
25394  else
25395  if (South)
25396  if (West) return 7001;
25397  else return 7002;
25398  else
25399  if (West) return 7005;
25400  else return 7006;
25401  else
25402  if (North)
25403  if (South)
25404  if (West) return 7009;
25405  else return 7010;
25406  else
25407  if (West) return 7013;
25408  else return 7014;
25409  else
25410  if (South)
25411  if (West) return 7017;
25412  else return 7018;
25413  else
25414  if (West) return 7021;
25415  else return 7022;
25416  }
25418  bool East(BlockState Block);
25419  bool North(BlockState Block);
25420  bool South(BlockState Block);
25421  bool West(BlockState Block);
25422  }
25423  namespace YellowTerracotta
25424  {
25426  {
25427  return 6851;
25428  }
25429  }
25430  namespace YellowWallBanner
25431  {
25433  {
25434  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8169;
25435  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8170;
25436  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8171;
25437  else return 8172;
25438  }
25441  }
25442  namespace YellowWool
25443  {
25445  {
25446  return 1388;
25447  }
25448  }
25449  namespace ZombieHead
25450  {
25451  constexpr BlockState ZombieHead(const unsigned char Rotation)
25452  {
25453  if (Rotation == 0) return 6530;
25454  else if (Rotation == 1) return 6531;
25455  else if (Rotation == 2) return 6532;
25456  else if (Rotation == 3) return 6533;
25457  else if (Rotation == 4) return 6534;
25458  else if (Rotation == 5) return 6535;
25459  else if (Rotation == 6) return 6536;
25460  else if (Rotation == 7) return 6537;
25461  else if (Rotation == 8) return 6538;
25462  else if (Rotation == 9) return 6539;
25463  else if (Rotation == 10) return 6540;
25464  else if (Rotation == 11) return 6541;
25465  else if (Rotation == 12) return 6542;
25466  else if (Rotation == 13) return 6543;
25467  else if (Rotation == 14) return 6544;
25468  else return 6545;
25469  }
25471  unsigned char Rotation(BlockState Block);
25472  }
25473  namespace ZombieWallHead
25474  {
25476  {
25477  if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6546;
25478  else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6547;
25479  else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6548;
25480  else return 6549;
25481  }
25484  }
25485 }
eBlockFace
Block face constants, used in PlayerDigging and PlayerBlockPlacement packets and bbox collision calc.
Definition: Defines.h:38
@ BLOCK_FACE_XP
Definition: Defines.h:41
@ BLOCK_FACE_YP
Definition: Defines.h:43
@ BLOCK_FACE_YM
Definition: Defines.h:42
@ BLOCK_FACE_ZM
Definition: Defines.h:44
@ BLOCK_FACE_ZP
Definition: Defines.h:45
@ BLOCK_FACE_XM
Definition: Defines.h:40
@ MossyCobblestone
@ InfestedCrackedStoneBricks
@ LightGrayConcrete
@ PolishedBlackstoneSlab
@ LimeConcretePowder
@ WhiteGlazedTerracotta
@ YellowStainedGlass
@ PottedAzureBluet
@ PetrifiedOakSlab
@ MagentaStainedGlass
@ PottedBirchSapling
@ TwistingVinesPlant
@ OrangeConcretePowder
@ PurpleStainedGlassPane
@ BubbleCoralWallFan
@ BrownStainedGlass
@ TubeCoralWallFan
@ PinkConcretePowder
@ BlackstoneStairs
@ DarkPrismarineSlab
@ CyanConcretePowder
@ YellowConcretePowder
@ PottedWarpedFungus
@ SmoothRedSandstone
@ CutRedSandstoneSlab
@ MagentaGlazedTerracotta
@ JunglePressurePlate
@ DeadBubbleCoralFan
@ DeadFireCoralFan
@ InfestedStoneBricks
@ DaylightDetector
@ CyanStainedGlass
@ LightGrayGlazedTerracotta
@ HeavyWeightedPressurePlate
@ PolishedBlackstoneButton
@ PurpleGlazedTerracotta
@ OrangeStainedGlass
@ WhiteConcretePowder
@ InfestedMossyStoneBricks
@ PottedOakSapling
@ CrimsonPressurePlate
@ LightBlueGlazedTerracotta
@ MagentaShulkerBox
@ YellowStainedGlassPane
@ CyanGlazedTerracotta
@ StrippedWarpedHyphae
@ YellowWallBanner
@ BirchPressurePlate
@ PurpleShulkerBox
@ PottedLilyOfTheValley
@ DeadBrainCoralWallFan
@ PolishedBlackstoneStairs
@ InfestedCobblestone
@ BlueStainedGlassPane
@ PottedWhiteTulip
@ DeadTubeCoralWallFan
@ AttachedPumpkinStem
@ BlueGlazedTerracotta
@ PottedBrownMushroom
@ PrismarineStairs
@ NetherBrickFence
@ StrippedCrimsonHyphae
@ WarpedPressurePlate
@ InfestedChiseledStoneBricks
@ GrayConcretePowder
@ DeadFireCoralBlock
@ GreenStainedGlassPane
@ PrismarineBrickStairs
@ SmoothSandstoneSlab
@ PurpleStainedGlass
@ PottedCrimsonFungus
@ PolishedDioriteSlab
@ StrippedJungleLog
@ EndStoneBrickWall
@ PolishedDioriteStairs
@ ChiseledPolishedBlackstone
@ MossyCobblestoneSlab
@ RedMushroomBlock
@ MagentaTerracotta
@ PinkGlazedTerracotta
@ LightBlueStainedGlassPane
@ PottedJungleSapling
@ PrismarineBricks
@ OrangeGlazedTerracotta
@ DeadTubeCoralFan
@ LightBlueShulkerBox
@ PottedBlueOrchid
@ BrownConcretePowder
@ PottedSpruceSapling
@ MagentaConcretePowder
@ ChiseledNetherBricks
@ SmoothQuartzStairs
@ SmoothSandstoneStairs
@ ChiseledSandstone
@ MossyStoneBrickStairs
@ BlackGlazedTerracotta
@ DeadHornCoralWallFan
@ FireCoralWallFan
@ LimeStainedGlassPane
@ PolishedGraniteStairs
@ StrippedDarkOakLog
@ DeadTubeCoralBlock
@ ChainCommandBlock
@ YellowGlazedTerracotta
@ LimeGlazedTerracotta
@ OrangeStainedGlassPane
@ PolishedAndesite
@ RedNetherBrickStairs
@ DeadHornCoralFan
@ PurpleWallBanner
@ ChiseledQuartzBlock
@ PottedCornflower
@ DarkOakPressurePlate
@ LightBlueStainedGlass
@ SmoothRedSandstoneSlab
@ StrippedAcaciaWood
@ MagentaStainedGlassPane
@ DeadBrainCoralFan
@ GreenGlazedTerracotta
@ EndStoneBrickStairs
@ RedConcretePowder
@ MossyStoneBrickSlab
@ LightGrayConcretePowder
@ RepeatingCommandBlock
@ ChiseledStoneBricks
@ YellowTerracotta
@ PottedOxeyeDaisy
@ RedstoneWallTorch
@ PolishedBlackstoneWall
@ GreenStainedGlass
@ CrimsonFenceGate
@ PolishedAndesiteStairs
@ LightWeightedPressurePlate
@ GrayStainedGlassPane
@ StrippedBirchWood
@ BlueStainedGlass
@ RedSandstoneSlab
@ RedNetherBrickSlab
@ SmoothRedSandstoneStairs
@ PolishedAndesiteSlab
@ PolishedGraniteSlab
@ MossyStoneBrickWall
@ LightBlueConcrete
@ PottedOrangeTulip
@ PottedDarkOakSapling
@ StrippedDarkOakWood
@ RedNetherBrickWall
@ OrangeTerracotta
@ WeepingVinesPlant
@ LightBlueWallBanner
@ PolishedBlackstoneBricks
@ WhiteStainedGlass
@ PolishedBlackstoneBrickStairs
@ RedGlazedTerracotta
@ BubbleCoralBlock
@ CrackedStoneBricks
@ MagentaWallBanner
@ DeadFireCoralWallFan
@ BlackConcretePowder
@ CrackedNetherBricks
@ PolishedBlackstone
@ BrownGlazedTerracotta
@ StrippedSpruceLog
@ YellowShulkerBox
@ PinkStainedGlassPane
@ LightGrayTerracotta
@ MossyStoneBricks
@ EndStoneBrickSlab
@ DeadBubbleCoralBlock
@ GreenConcretePowder
@ WitherSkeletonWallSkull
@ CyanStainedGlassPane
@ LightGrayWallBanner
@ LightGrayShulkerBox
@ PolishedBlackstonePressurePlate
@ PottedRedMushroom
@ SmoothQuartzSlab
@ LightGrayStainedGlass
@ SkeletonWallSkull
@ StonePressurePlate
@ LightBlueConcretePowder
@ StrippedBirchLog
@ StrippedSpruceWood
@ MossyCobblestoneStairs
@ CartographyTable
@ PottedAcaciaSapling
@ SprucePressurePlate
@ BlackStainedGlassPane
@ CrackedPolishedBlackstoneBricks
@ DeadHornCoralBlock
@ GrayStainedGlass
@ LightBlueTerracotta
@ OrangeShulkerBox
@ OrangeWallBanner
@ PurpleConcretePowder
@ RedSandstoneWall
@ StrippedAcaciaLog
@ DeadBrainCoralBlock
@ PinkStainedGlass
@ StrippedWarpedStem
@ DarkOakFenceGate
@ CutSandstoneSlab
@ StrippedCrimsonStem
@ PolishedBlackstoneBrickSlab
@ BlueConcretePowder
@ AttachedMelonStem
@ GildedBlackstone
@ DarkPrismarineStairs
@ WitherSkeletonSkull
@ HornCoralWallFan
@ WhiteStainedGlassPane
@ PrismarineBrickSlab
@ OakPressurePlate
@ NetherBrickStairs
@ MossyCobblestoneWall
@ StrippedJungleWood
@ BrainCoralWallFan
@ ChiseledRedSandstone
@ LightGrayStainedGlassPane
@ PolishedBlackstoneBrickWall
@ RedSandstoneStairs
@ DeadBubbleCoralWallFan
@ PottedWitherRose
@ BlackStainedGlass
@ GrayGlazedTerracotta
@ PottedWarpedRoots
@ AcaciaPressurePlate
@ CobblestoneStairs
@ BrownMushroomBlock
@ RedStainedGlassPane
@ BrownStainedGlassPane
@ LimeStainedGlass
@ PurpleTerracotta
@ PottedCrimsonRoots
@ StoneBrickStairs
eBlockFace Facing(const BlockState Block)
Definition: BlockStates.cpp:20
bool Powered(const BlockState Block)
Definition: BlockStates.cpp:30
BlockState AcaciaButton()
Definition: BlockStates.cpp:7
bool Powered(const BlockState Block)
Definition: BlockStates.cpp:79
eBlockFace Facing(const BlockState Block)
Definition: BlockStates.cpp:45
bool Open(const BlockState Block)
Definition: BlockStates.cpp:71
BlockState AcaciaDoor()
Definition: BlockStates.cpp:41
bool West(const BlockState Block)
bool South(const BlockState Block)
bool East(const BlockState Block)
Definition: BlockStates.cpp:94
BlockState AcaciaFence()
Definition: BlockStates.cpp:90
bool North(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState AcaciaFenceGate()
bool InWall(const BlockState Block)
bool Powered(const BlockState Block)
bool Open(const BlockState Block)
bool Persistent(const BlockState Block)
unsigned char Distance(const BlockState Block)
BlockState AcaciaLeaves()
BlockState AcaciaLog()
constexpr BlockState AcaciaPlanks()
Definition: BlockStates.h:371
bool Powered(const BlockState Block)
BlockState AcaciaPressurePlate()
BlockState AcaciaSapling()
unsigned char Stage(const BlockState Block)
unsigned char Rotation(const BlockState Block)
BlockState AcaciaSign()
BlockState AcaciaSlab()
BlockState AcaciaStairs()
eBlockFace Facing(const BlockState Block)
bool Open(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState AcaciaTrapdoor()
BlockState AcaciaWallSign()
eBlockFace Facing(const BlockState Block)
BlockState AcaciaWood()
BlockState ActivatorRail()
bool Powered(const BlockState Block)
constexpr BlockState Air()
Definition: BlockStates.h:651
constexpr BlockState Allium()
Definition: BlockStates.h:658
constexpr BlockState AncientDebris()
Definition: BlockStates.h:665
constexpr BlockState Andesite()
Definition: BlockStates.h:672
BlockState AndesiteSlab()
eBlockFace Facing(const BlockState Block)
BlockState AndesiteStairs()
bool Up(const BlockState Block)
BlockState AndesiteWall()
eBlockFace Facing(const BlockState Block)
BlockState Anvil()
BlockState AttachedMelonStem()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState AttachedPumpkinStem()
constexpr BlockState AzureBluet()
Definition: BlockStates.h:1098
unsigned char Stage(const BlockState Block)
unsigned char Age(const BlockState Block)
BlockState Bamboo()
constexpr BlockState BambooSapling()
Definition: BlockStates.h:1141
BlockState Barrel()
eBlockFace Facing(const BlockState Block)
bool Open(const BlockState Block)
constexpr BlockState Barrier()
Definition: BlockStates.h:1175
BlockState Basalt()
constexpr BlockState Beacon()
Definition: BlockStates.h:1199
constexpr BlockState Bedrock()
Definition: BlockStates.h:1206
unsigned char HoneyLevel(const BlockState Block)
BlockState BeeNest()
eBlockFace Facing(const BlockState Block)
BlockState Beehive()
eBlockFace Facing(const BlockState Block)
unsigned char HoneyLevel(const BlockState Block)
BlockState Beetroots()
unsigned char Age(const BlockState Block)
BlockState Bell()
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState BirchButton()
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
bool Open(const BlockState Block)
BlockState BirchDoor()
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool West(const BlockState Block)
bool East(const BlockState Block)
bool North(const BlockState Block)
bool South(const BlockState Block)
BlockState BirchFence()
bool InWall(const BlockState Block)
BlockState BirchFenceGate()
bool Open(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
unsigned char Distance(const BlockState Block)
bool Persistent(const BlockState Block)
BlockState BirchLeaves()
BlockState BirchLog()
constexpr BlockState BirchPlanks()
Definition: BlockStates.h:1728
bool Powered(const BlockState Block)
BlockState BirchSapling()
unsigned char Stage(const BlockState Block)
unsigned char Rotation(const BlockState Block)
BlockState BirchSign()
BlockState BirchSlab()
BlockState BirchStairs()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
BlockState BirchTrapdoor()
bool Open(const BlockState Block)
BlockState BirchWallSign()
eBlockFace Facing(const BlockState Block)
BlockState BirchWood()
unsigned char Rotation(const BlockState Block)
BlockState BlackBanner()
bool Occupied(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState BlackBed()
constexpr BlockState BlackCarpet()
Definition: BlockStates.h:2043
constexpr BlockState BlackConcrete()
Definition: BlockStates.h:2050
constexpr BlockState BlackConcretePowder()
Definition: BlockStates.h:2057
eBlockFace Facing(const BlockState Block)
BlockState BlackShulkerBox()
eBlockFace Facing(const BlockState Block)
constexpr BlockState BlackStainedGlass()
Definition: BlockStates.h:2090
bool North(const BlockState Block)
bool West(const BlockState Block)
bool South(const BlockState Block)
bool East(const BlockState Block)
constexpr BlockState BlackTerracotta()
Definition: BlockStates.h:2138
eBlockFace Facing(const BlockState Block)
BlockState BlackWallBanner()
constexpr BlockState BlackWool()
Definition: BlockStates.h:2157
constexpr BlockState Blackstone()
Definition: BlockStates.h:2164
BlockState BlackstoneSlab()
BlockState BlackstoneStairs()
eBlockFace Facing(const BlockState Block)
bool Up(const BlockState Block)
BlockState BlackstoneWall()
bool Lit(const BlockState Block)
BlockState BlastFurnace()
eBlockFace Facing(const BlockState Block)
BlockState BlueBanner()
unsigned char Rotation(const BlockState Block)
bool Occupied(const BlockState Block)
BlockState BlueBed()
eBlockFace Facing(const BlockState Block)
constexpr BlockState BlueCarpet()
Definition: BlockStates.h:2642
constexpr BlockState BlueConcrete()
Definition: BlockStates.h:2649
constexpr BlockState BlueConcretePowder()
Definition: BlockStates.h:2656
eBlockFace Facing(const BlockState Block)
constexpr BlockState BlueIce()
Definition: BlockStates.h:2675
constexpr BlockState BlueOrchid()
Definition: BlockStates.h:2682
BlockState BlueShulkerBox()
eBlockFace Facing(const BlockState Block)
constexpr BlockState BlueStainedGlass()
Definition: BlockStates.h:2703
bool West(const BlockState Block)
bool East(const BlockState Block)
bool North(const BlockState Block)
bool South(const BlockState Block)
constexpr BlockState BlueTerracotta()
Definition: BlockStates.h:2751
BlockState BlueWallBanner()
eBlockFace Facing(const BlockState Block)
constexpr BlockState BlueWool()
Definition: BlockStates.h:2770
BlockState BoneBlock()
constexpr BlockState Bookshelf()
Definition: BlockStates.h:2794
constexpr BlockState BrainCoral()
Definition: BlockStates.h:2801
constexpr BlockState BrainCoralBlock()
Definition: BlockStates.h:2808
constexpr BlockState BrainCoralFan()
Definition: BlockStates.h:2815
BlockState BrainCoralWallFan()
eBlockFace Facing(const BlockState Block)
bool HasBottle_0(const BlockState Block)
BlockState BrewingStand()
bool HasBottle_1(const BlockState Block)
bool HasBottle_2(const BlockState Block)
BlockState BrickSlab()
eBlockFace Facing(const BlockState Block)
BlockState BrickStairs()
BlockState BrickWall()
bool Up(const BlockState Block)
constexpr BlockState Bricks()
Definition: BlockStates.h:3241
BlockState BrownBanner()
unsigned char Rotation(const BlockState Block)
bool Occupied(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState BrownBed()
constexpr BlockState BrownCarpet()
Definition: BlockStates.h:3315
constexpr BlockState BrownConcrete()
Definition: BlockStates.h:3322
constexpr BlockState BrownConcretePowder()
Definition: BlockStates.h:3329
eBlockFace Facing(const BlockState Block)
constexpr BlockState BrownMushroom()
Definition: BlockStates.h:3348
bool South(const BlockState Block)
bool North(const BlockState Block)
bool West(const BlockState Block)
bool Down(const BlockState Block)
bool East(const BlockState Block)
bool Up(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState BrownShulkerBox()
constexpr BlockState BrownStainedGlass()
Definition: BlockStates.h:3508
bool East(const BlockState Block)
bool West(const BlockState Block)
bool South(const BlockState Block)
bool North(const BlockState Block)
constexpr BlockState BrownTerracotta()
Definition: BlockStates.h:3556
eBlockFace Facing(const BlockState Block)
BlockState BrownWallBanner()
constexpr BlockState BrownWool()
Definition: BlockStates.h:3575
bool Drag(const BlockState Block)
BlockState BubbleColumn()
constexpr BlockState BubbleCoral()
Definition: BlockStates.h:3592
constexpr BlockState BubbleCoralBlock()
Definition: BlockStates.h:3599
constexpr BlockState BubbleCoralFan()
Definition: BlockStates.h:3606
eBlockFace Facing(const BlockState Block)
BlockState Cactus()
unsigned char Age(const BlockState Block)
unsigned char Bites(const BlockState Block)
BlockState Cake()
bool SignalFire(const BlockState Block)
BlockState Campfire()
bool Lit(const BlockState Block)
eBlockFace Facing(const BlockState Block)
unsigned char Age(const BlockState Block)
BlockState Carrots()
constexpr BlockState CartographyTable()
Definition: BlockStates.h:3718
BlockState CarvedPumpkin()
eBlockFace Facing(const BlockState Block)
BlockState Cauldron()
unsigned char Level(const BlockState Block)
constexpr BlockState CaveAir()
Definition: BlockStates.h:3749
constexpr BlockState Chain()
Definition: BlockStates.h:3756
bool Conditional(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState ChainCommandBlock()
BlockState Chest()
eBlockFace Facing(const BlockState Block)
BlockState ChippedAnvil()
eBlockFace Facing(const BlockState Block)
constexpr BlockState ChiseledNetherBricks()
Definition: BlockStates.h:3829
constexpr BlockState ChiseledPolishedBlackstone()
Definition: BlockStates.h:3836
constexpr BlockState ChiseledQuartzBlock()
Definition: BlockStates.h:3843
constexpr BlockState ChiseledRedSandstone()
Definition: BlockStates.h:3850
constexpr BlockState ChiseledSandstone()
Definition: BlockStates.h:3857
constexpr BlockState ChiseledStoneBricks()
Definition: BlockStates.h:3864
BlockState ChorusFlower()
unsigned char Age(const BlockState Block)
bool West(const BlockState Block)
bool South(const BlockState Block)
BlockState ChorusPlant()
bool North(const BlockState Block)
bool Down(const BlockState Block)
bool East(const BlockState Block)
bool Up(const BlockState Block)
constexpr BlockState Clay()
Definition: BlockStates.h:4024
constexpr BlockState CoalBlock()
Definition: BlockStates.h:4031
constexpr BlockState CoalOre()
Definition: BlockStates.h:4038
constexpr BlockState CoarseDirt()
Definition: BlockStates.h:4045
constexpr BlockState Cobblestone()
Definition: BlockStates.h:4052
BlockState CobblestoneSlab()
BlockState CobblestoneStairs()
eBlockFace Facing(const BlockState Block)
BlockState CobblestoneWall()
bool Up(const BlockState Block)
constexpr BlockState Cobweb()
Definition: BlockStates.h:4442
eBlockFace Facing(const BlockState Block)
BlockState Cocoa()
unsigned char Age(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Conditional(const BlockState Block)
BlockState CommandBlock()
BlockState Comparator()
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
unsigned char Level(const BlockState Block)
BlockState Composter()
constexpr BlockState Conduit()
Definition: BlockStates.h:4556
constexpr BlockState Cornflower()
Definition: BlockStates.h:4563
constexpr BlockState CrackedNetherBricks()
Definition: BlockStates.h:4570
constexpr BlockState CrackedPolishedBlackstoneBricks()
Definition: BlockStates.h:4577
constexpr BlockState CrackedStoneBricks()
Definition: BlockStates.h:4584
constexpr BlockState CraftingTable()
Definition: BlockStates.h:4591
unsigned char Rotation(const BlockState Block)
BlockState CreeperHead()
eBlockFace Facing(const BlockState Block)
BlockState CreeperWallHead()
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState CrimsonButton()
BlockState CrimsonDoor()
eBlockFace Facing(const BlockState Block)
bool Open(const BlockState Block)
bool Powered(const BlockState Block)
bool North(const BlockState Block)
bool West(const BlockState Block)
bool South(const BlockState Block)
BlockState CrimsonFence()
bool East(const BlockState Block)
bool Open(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState CrimsonFenceGate()
bool InWall(const BlockState Block)
bool Powered(const BlockState Block)
constexpr BlockState CrimsonFungus()
Definition: BlockStates.h:4947
BlockState CrimsonHyphae()
constexpr BlockState CrimsonNylium()
Definition: BlockStates.h:4971
constexpr BlockState CrimsonPlanks()
Definition: BlockStates.h:4978
bool Powered(const BlockState Block)
constexpr BlockState CrimsonRoots()
Definition: BlockStates.h:4995
unsigned char Rotation(const BlockState Block)
BlockState CrimsonSign()
BlockState CrimsonSlab()
eBlockFace Facing(const BlockState Block)
BlockState CrimsonStairs()
BlockState CrimsonStem()
bool Open(const BlockState Block)
BlockState CrimsonTrapdoor()
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState CrimsonWallSign()
eBlockFace Facing(const BlockState Block)
constexpr BlockState CryingObsidian()
Definition: BlockStates.h:5223
constexpr BlockState CutRedSandstone()
Definition: BlockStates.h:5230
constexpr BlockState CutSandstone()
Definition: BlockStates.h:5254
BlockState CutSandstoneSlab()
BlockState CyanBanner()
unsigned char Rotation(const BlockState Block)
BlockState CyanBed()
eBlockFace Facing(const BlockState Block)
bool Occupied(const BlockState Block)
constexpr BlockState CyanCarpet()
Definition: BlockStates.h:5345
constexpr BlockState CyanConcrete()
Definition: BlockStates.h:5352
constexpr BlockState CyanConcretePowder()
Definition: BlockStates.h:5359
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState CyanShulkerBox()
constexpr BlockState CyanStainedGlass()
Definition: BlockStates.h:5392
bool North(const BlockState Block)
bool West(const BlockState Block)
bool East(const BlockState Block)
bool South(const BlockState Block)
constexpr BlockState CyanTerracotta()
Definition: BlockStates.h:5440
eBlockFace Facing(const BlockState Block)
BlockState CyanWallBanner()
constexpr BlockState CyanWool()
Definition: BlockStates.h:5459
BlockState DamagedAnvil()
eBlockFace Facing(const BlockState Block)
constexpr BlockState Dandelion()
Definition: BlockStates.h:5478
BlockState DarkOakButton()
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Open(const BlockState Block)
BlockState DarkOakDoor()
bool Powered(const BlockState Block)
bool West(const BlockState Block)
BlockState DarkOakFence()
bool North(const BlockState Block)
bool South(const BlockState Block)
bool East(const BlockState Block)
bool Open(const BlockState Block)
BlockState DarkOakFenceGate()
bool InWall(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState DarkOakLeaves()
bool Persistent(const BlockState Block)
unsigned char Distance(const BlockState Block)
BlockState DarkOakLog()
constexpr BlockState DarkOakPlanks()
Definition: BlockStates.h:5845
bool Powered(const BlockState Block)
BlockState DarkOakSapling()
unsigned char Stage(const BlockState Block)
BlockState DarkOakSign()
unsigned char Rotation(const BlockState Block)
BlockState DarkOakSlab()
BlockState DarkOakStairs()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Open(const BlockState Block)
bool Powered(const BlockState Block)
BlockState DarkOakTrapdoor()
eBlockFace Facing(const BlockState Block)
BlockState DarkOakWallSign()
BlockState DarkOakWood()
constexpr BlockState DarkPrismarine()
Definition: BlockStates.h:6093
eBlockFace Facing(const BlockState Block)
bool Inverted(const BlockState Block)
BlockState DaylightDetector()
unsigned char Power(const BlockState Block)
constexpr BlockState DeadBrainCoral()
Definition: BlockStates.h:6235
constexpr BlockState DeadBrainCoralBlock()
Definition: BlockStates.h:6242
constexpr BlockState DeadBrainCoralFan()
Definition: BlockStates.h:6249
eBlockFace Facing(const BlockState Block)
constexpr BlockState DeadBubbleCoral()
Definition: BlockStates.h:6268
constexpr BlockState DeadBubbleCoralBlock()
Definition: BlockStates.h:6275
constexpr BlockState DeadBubbleCoralFan()
Definition: BlockStates.h:6282
eBlockFace Facing(const BlockState Block)
constexpr BlockState DeadBush()
Definition: BlockStates.h:6301
constexpr BlockState DeadFireCoral()
Definition: BlockStates.h:6308
constexpr BlockState DeadFireCoralBlock()
Definition: BlockStates.h:6315
constexpr BlockState DeadFireCoralFan()
Definition: BlockStates.h:6322
eBlockFace Facing(const BlockState Block)
constexpr BlockState DeadHornCoral()
Definition: BlockStates.h:6341
constexpr BlockState DeadHornCoralBlock()
Definition: BlockStates.h:6348
constexpr BlockState DeadHornCoralFan()
Definition: BlockStates.h:6355
eBlockFace Facing(const BlockState Block)
constexpr BlockState DeadTubeCoral()
Definition: BlockStates.h:6374
constexpr BlockState DeadTubeCoralBlock()
Definition: BlockStates.h:6381
constexpr BlockState DeadTubeCoralFan()
Definition: BlockStates.h:6388
eBlockFace Facing(const BlockState Block)
BlockState DetectorRail()
bool Powered(const BlockState Block)
constexpr BlockState DiamondBlock()
Definition: BlockStates.h:6439
constexpr BlockState DiamondOre()
Definition: BlockStates.h:6446
constexpr BlockState Diorite()
Definition: BlockStates.h:6453
BlockState DioriteSlab()
BlockState DioriteStairs()
eBlockFace Facing(const BlockState Block)
bool Up(const BlockState Block)
BlockState DioriteWall()
constexpr BlockState Dirt()
Definition: BlockStates.h:6843
eBlockFace Facing(const BlockState Block)
bool Triggered(const BlockState Block)
BlockState Dispenser()
constexpr BlockState DragonEgg()
Definition: BlockStates.h:6877
BlockState DragonHead()
unsigned char Rotation(const BlockState Block)
BlockState DragonWallHead()
eBlockFace Facing(const BlockState Block)
constexpr BlockState DriedKelpBlock()
Definition: BlockStates.h:6920
BlockState Dropper()
eBlockFace Facing(const BlockState Block)
bool Triggered(const BlockState Block)
constexpr BlockState EmeraldBlock()
Definition: BlockStates.h:6954
constexpr BlockState EmeraldOre()
Definition: BlockStates.h:6961
constexpr BlockState EnchantingTable()
Definition: BlockStates.h:6968
constexpr BlockState EndGateway()
Definition: BlockStates.h:6975
constexpr BlockState EndPortal()
Definition: BlockStates.h:6982
eBlockFace Facing(const BlockState Block)
BlockState EndPortalFrame()
bool Eye(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState EndRod()
constexpr BlockState EndStone()
Definition: BlockStates.h:7022
BlockState EndStoneBrickSlab()
eBlockFace Facing(const BlockState Block)
bool Up(const BlockState Block)
BlockState EndStoneBrickWall()
constexpr BlockState EndStoneBricks()
Definition: BlockStates.h:7412
eBlockFace Facing(const BlockState Block)
BlockState EnderChest()
BlockState Farmland()
unsigned char Moisture(const BlockState Block)
constexpr BlockState Fern()
Definition: BlockStates.h:7447
BlockState Fire()
bool Up(const BlockState Block)
unsigned char Age(const BlockState Block)
bool South(const BlockState Block)
bool North(const BlockState Block)
bool East(const BlockState Block)
bool West(const BlockState Block)
constexpr BlockState FireCoral()
Definition: BlockStates.h:8475
constexpr BlockState FireCoralBlock()
Definition: BlockStates.h:8482
constexpr BlockState FireCoralFan()
Definition: BlockStates.h:8489
BlockState FireCoralWallFan()
eBlockFace Facing(const BlockState Block)
constexpr BlockState FletchingTable()
Definition: BlockStates.h:8508
constexpr BlockState FlowerPot()
Definition: BlockStates.h:8515
BlockState FrostedIce()
unsigned char Age(const BlockState Block)
BlockState Furnace()
eBlockFace Facing(const BlockState Block)
bool Lit(const BlockState Block)
constexpr BlockState GildedBlackstone()
Definition: BlockStates.h:8555
constexpr BlockState Glass()
Definition: BlockStates.h:8562
BlockState GlassPane()
bool West(const BlockState Block)
bool North(const BlockState Block)
bool East(const BlockState Block)
bool South(const BlockState Block)
constexpr BlockState Glowstone()
Definition: BlockStates.h:8610
constexpr BlockState GoldBlock()
Definition: BlockStates.h:8617
constexpr BlockState GoldOre()
Definition: BlockStates.h:8624
constexpr BlockState Granite()
Definition: BlockStates.h:8631
BlockState GraniteSlab()
eBlockFace Facing(const BlockState Block)
BlockState GraniteStairs()
BlockState GraniteWall()
bool Up(const BlockState Block)
constexpr BlockState Grass()
Definition: BlockStates.h:9021
bool Snowy(const BlockState Block)
BlockState GrassBlock()
constexpr BlockState GrassPath()
Definition: BlockStates.h:9038
constexpr BlockState Gravel()
Definition: BlockStates.h:9045
unsigned char Rotation(const BlockState Block)
BlockState GrayBanner()
bool Occupied(const BlockState Block)
BlockState GrayBed()
eBlockFace Facing(const BlockState Block)
constexpr BlockState GrayCarpet()
Definition: BlockStates.h:9119
constexpr BlockState GrayConcrete()
Definition: BlockStates.h:9126
constexpr BlockState GrayConcretePowder()
Definition: BlockStates.h:9133
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState GrayShulkerBox()
constexpr BlockState GrayStainedGlass()
Definition: BlockStates.h:9166
bool South(const BlockState Block)
bool East(const BlockState Block)
bool West(const BlockState Block)
bool North(const BlockState Block)
constexpr BlockState GrayTerracotta()
Definition: BlockStates.h:9214
eBlockFace Facing(const BlockState Block)
BlockState GrayWallBanner()
constexpr BlockState GrayWool()
Definition: BlockStates.h:9233
BlockState GreenBanner()
unsigned char Rotation(const BlockState Block)
BlockState GreenBed()
bool Occupied(const BlockState Block)
eBlockFace Facing(const BlockState Block)
constexpr BlockState GreenCarpet()
Definition: BlockStates.h:9307
constexpr BlockState GreenConcrete()
Definition: BlockStates.h:9314
constexpr BlockState GreenConcretePowder()
Definition: BlockStates.h:9321
eBlockFace Facing(const BlockState Block)
BlockState GreenShulkerBox()
eBlockFace Facing(const BlockState Block)
constexpr BlockState GreenStainedGlass()
Definition: BlockStates.h:9354
bool West(const BlockState Block)
bool South(const BlockState Block)
bool East(const BlockState Block)
bool North(const BlockState Block)
constexpr BlockState GreenTerracotta()
Definition: BlockStates.h:9402
eBlockFace Facing(const BlockState Block)
BlockState GreenWallBanner()
constexpr BlockState GreenWool()
Definition: BlockStates.h:9421
BlockState Grindstone()
eBlockFace Facing(const BlockState Block)
BlockState HayBale()
unsigned char Power(const BlockState Block)
constexpr BlockState HoneyBlock()
Definition: BlockStates.h:9499
constexpr BlockState HoneycombBlock()
Definition: BlockStates.h:9506
BlockState Hopper()
eBlockFace Facing(const BlockState Block)
bool Enabled(const BlockState Block)
constexpr BlockState HornCoral()
Definition: BlockStates.h:9534
constexpr BlockState HornCoralBlock()
Definition: BlockStates.h:9541
constexpr BlockState HornCoralFan()
Definition: BlockStates.h:9548
BlockState HornCoralWallFan()
eBlockFace Facing(const BlockState Block)
constexpr BlockState Ice()
Definition: BlockStates.h:9567
constexpr BlockState InfestedChiseledStoneBricks()
Definition: BlockStates.h:9574
constexpr BlockState InfestedCobblestone()
Definition: BlockStates.h:9581
constexpr BlockState InfestedCrackedStoneBricks()
Definition: BlockStates.h:9588
constexpr BlockState InfestedMossyStoneBricks()
Definition: BlockStates.h:9595
constexpr BlockState InfestedStone()
Definition: BlockStates.h:9602
constexpr BlockState InfestedStoneBricks()
Definition: BlockStates.h:9609
bool East(const BlockState Block)
bool North(const BlockState Block)
BlockState IronBars()
bool West(const BlockState Block)
bool South(const BlockState Block)
constexpr BlockState IronBlock()
Definition: BlockStates.h:9657
BlockState IronDoor()
bool Open(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
constexpr BlockState IronOre()
Definition: BlockStates.h:9810
bool Open(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
BlockState IronTrapdoor()
eBlockFace Facing(const BlockState Block)
BlockState JackOLantern()
BlockState Jigsaw()
BlockState Jukebox()
bool HasRecord(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState JungleButton()
bool Powered(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Open(const BlockState Block)
BlockState JungleDoor()
bool East(const BlockState Block)
bool West(const BlockState Block)
bool South(const BlockState Block)
bool North(const BlockState Block)
BlockState JungleFence()
BlockState JungleFenceGate()
bool InWall(const BlockState Block)
bool Open(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Persistent(const BlockState Block)
unsigned char Distance(const BlockState Block)
BlockState JungleLeaves()
BlockState JungleLog()
constexpr BlockState JunglePlanks()
bool Powered(const BlockState Block)
BlockState JungleSapling()
unsigned char Stage(const BlockState Block)
BlockState JungleSign()
unsigned char Rotation(const BlockState Block)
BlockState JungleSlab()
eBlockFace Facing(const BlockState Block)
BlockState JungleStairs()
bool Open(const BlockState Block)
BlockState JungleTrapdoor()
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState JungleWallSign()
eBlockFace Facing(const BlockState Block)
BlockState JungleWood()
unsigned char Age(const BlockState Block)
BlockState Kelp()
constexpr BlockState KelpPlant()
BlockState Ladder()
eBlockFace Facing(const BlockState Block)
BlockState Lantern()
bool Hanging(const BlockState Block)
constexpr BlockState LapisBlock()
constexpr BlockState LapisOre()
BlockState LargeFern()
unsigned char Level(const BlockState Block)
BlockState Lava()
bool Powered(const BlockState Block)
bool HasBook(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState Lectern()
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
BlockState Lever()
BlockState LightBlueBanner()
unsigned char Rotation(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState LightBlueBed()
bool Occupied(const BlockState Block)
constexpr BlockState LightBlueCarpet()
constexpr BlockState LightBlueConcrete()
constexpr BlockState LightBlueConcretePowder()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
constexpr BlockState LightBlueStainedGlass()
bool South(const BlockState Block)
bool North(const BlockState Block)
bool East(const BlockState Block)
bool West(const BlockState Block)
constexpr BlockState LightBlueTerracotta()
eBlockFace Facing(const BlockState Block)
constexpr BlockState LightBlueWool()
unsigned char Rotation(const BlockState Block)
BlockState LightGrayBanner()
bool Occupied(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState LightGrayBed()
constexpr BlockState LightGrayCarpet()
constexpr BlockState LightGrayConcrete()
constexpr BlockState LightGrayConcretePowder()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
constexpr BlockState LightGrayStainedGlass()
bool East(const BlockState Block)
bool West(const BlockState Block)
bool North(const BlockState Block)
bool South(const BlockState Block)
constexpr BlockState LightGrayTerracotta()
eBlockFace Facing(const BlockState Block)
constexpr BlockState LightGrayWool()
unsigned char Power(const BlockState Block)
BlockState Lilac()
constexpr BlockState LilyOfTheValley()
constexpr BlockState LilyPad()
BlockState LimeBanner()
unsigned char Rotation(const BlockState Block)
BlockState LimeBed()
bool Occupied(const BlockState Block)
eBlockFace Facing(const BlockState Block)
constexpr BlockState LimeCarpet()
constexpr BlockState LimeConcrete()
constexpr BlockState LimeConcretePowder()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState LimeShulkerBox()
constexpr BlockState LimeStainedGlass()
bool South(const BlockState Block)
bool West(const BlockState Block)
bool North(const BlockState Block)
bool East(const BlockState Block)
constexpr BlockState LimeTerracotta()
BlockState LimeWallBanner()
eBlockFace Facing(const BlockState Block)
constexpr BlockState LimeWool()
constexpr BlockState Lodestone()
BlockState Loom()
eBlockFace Facing(const BlockState Block)
BlockState MagentaBanner()
unsigned char Rotation(const BlockState Block)
BlockState MagentaBed()
bool Occupied(const BlockState Block)
eBlockFace Facing(const BlockState Block)
constexpr BlockState MagentaCarpet()
constexpr BlockState MagentaConcrete()
constexpr BlockState MagentaConcretePowder()
eBlockFace Facing(const BlockState Block)
BlockState MagentaShulkerBox()
eBlockFace Facing(const BlockState Block)
constexpr BlockState MagentaStainedGlass()
bool North(const BlockState Block)
bool West(const BlockState Block)
bool South(const BlockState Block)
bool East(const BlockState Block)
constexpr BlockState MagentaTerracotta()
BlockState MagentaWallBanner()
eBlockFace Facing(const BlockState Block)
constexpr BlockState MagentaWool()
constexpr BlockState MagmaBlock()
constexpr BlockState Melon()
BlockState MelonStem()
unsigned char Age(const BlockState Block)
constexpr BlockState MossyCobblestone()
eBlockFace Facing(const BlockState Block)
bool Up(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Up(const BlockState Block)
constexpr BlockState MossyStoneBricks()
BlockState MovingPiston()
eBlockFace Facing(const BlockState Block)
bool North(const BlockState Block)
bool Down(const BlockState Block)
bool East(const BlockState Block)
bool Up(const BlockState Block)
bool West(const BlockState Block)
bool South(const BlockState Block)
BlockState MushroomStem()
BlockState Mycelium()
bool Snowy(const BlockState Block)
bool North(const BlockState Block)
BlockState NetherBrickFence()
bool East(const BlockState Block)
bool South(const BlockState Block)
bool West(const BlockState Block)
BlockState NetherBrickSlab()
eBlockFace Facing(const BlockState Block)
BlockState NetherBrickStairs()
bool Up(const BlockState Block)
BlockState NetherBrickWall()
constexpr BlockState NetherBricks()
constexpr BlockState NetherGoldOre()
BlockState NetherPortal()
constexpr BlockState NetherQuartzOre()
constexpr BlockState NetherSprouts()
BlockState NetherWart()
unsigned char Age(const BlockState Block)
constexpr BlockState NetherWartBlock()
constexpr BlockState NetheriteBlock()
constexpr BlockState Netherrack()
bool Powered(const BlockState Block)
unsigned char Note(const BlockState Block)
BlockState NoteBlock()
bool Powered(const BlockState Block)
BlockState OakButton()
eBlockFace Facing(const BlockState Block)
bool Open(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
BlockState OakDoor()
BlockState OakFence()
bool West(const BlockState Block)
bool South(const BlockState Block)
bool East(const BlockState Block)
bool North(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
bool InWall(const BlockState Block)
bool Open(const BlockState Block)
BlockState OakFenceGate()
unsigned char Distance(const BlockState Block)
bool Persistent(const BlockState Block)
BlockState OakLeaves()
BlockState OakLog()
constexpr BlockState OakPlanks()
bool Powered(const BlockState Block)
BlockState OakPressurePlate()
BlockState OakSapling()
unsigned char Stage(const BlockState Block)
BlockState OakSign()
unsigned char Rotation(const BlockState Block)
BlockState OakSlab()
BlockState OakStairs()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState OakTrapdoor()
bool Open(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState OakWallSign()
BlockState OakWood()
bool Powered(const BlockState Block)
BlockState Observer()
eBlockFace Facing(const BlockState Block)
constexpr BlockState Obsidian()
BlockState OrangeBanner()
unsigned char Rotation(const BlockState Block)
BlockState OrangeBed()
eBlockFace Facing(const BlockState Block)
bool Occupied(const BlockState Block)
constexpr BlockState OrangeCarpet()
constexpr BlockState OrangeConcrete()
constexpr BlockState OrangeConcretePowder()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState OrangeShulkerBox()
constexpr BlockState OrangeStainedGlass()
bool East(const BlockState Block)
bool North(const BlockState Block)
bool West(const BlockState Block)
bool South(const BlockState Block)
constexpr BlockState OrangeTerracotta()
constexpr BlockState OrangeTulip()
eBlockFace Facing(const BlockState Block)
BlockState OrangeWallBanner()
constexpr BlockState OrangeWool()
constexpr BlockState OxeyeDaisy()
constexpr BlockState PackedIce()
BlockState Peony()
BlockState PetrifiedOakSlab()
BlockState PinkBanner()
unsigned char Rotation(const BlockState Block)
BlockState PinkBed()
bool Occupied(const BlockState Block)
eBlockFace Facing(const BlockState Block)
constexpr BlockState PinkCarpet()
constexpr BlockState PinkConcrete()
constexpr BlockState PinkConcretePowder()
eBlockFace Facing(const BlockState Block)
BlockState PinkShulkerBox()
eBlockFace Facing(const BlockState Block)
constexpr BlockState PinkStainedGlass()
bool South(const BlockState Block)
bool East(const BlockState Block)
bool North(const BlockState Block)
bool West(const BlockState Block)
constexpr BlockState PinkTerracotta()
constexpr BlockState PinkTulip()
BlockState PinkWallBanner()
eBlockFace Facing(const BlockState Block)
constexpr BlockState PinkWool()
bool Extended(const BlockState Block)
BlockState Piston()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Short(const BlockState Block)
BlockState PistonHead()
BlockState PlayerHead()
unsigned char Rotation(const BlockState Block)
BlockState PlayerWallHead()
eBlockFace Facing(const BlockState Block)
BlockState Podzol()
bool Snowy(const BlockState Block)
constexpr BlockState PolishedAndesite()
eBlockFace Facing(const BlockState Block)
BlockState PolishedBasalt()
constexpr BlockState PolishedBlackstone()
eBlockFace Facing(const BlockState Block)
bool Up(const BlockState Block)
constexpr BlockState PolishedBlackstoneBricks()
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Up(const BlockState Block)
constexpr BlockState PolishedDiorite()
eBlockFace Facing(const BlockState Block)
constexpr BlockState PolishedGranite()
eBlockFace Facing(const BlockState Block)
constexpr BlockState Poppy()
unsigned char Age(const BlockState Block)
BlockState Potatoes()
constexpr BlockState PottedAcaciaSapling()
constexpr BlockState PottedAllium()
constexpr BlockState PottedAzureBluet()
constexpr BlockState PottedBamboo()
constexpr BlockState PottedBirchSapling()
constexpr BlockState PottedBlueOrchid()
constexpr BlockState PottedBrownMushroom()
constexpr BlockState PottedCactus()
constexpr BlockState PottedCornflower()
constexpr BlockState PottedCrimsonFungus()
constexpr BlockState PottedCrimsonRoots()
constexpr BlockState PottedDandelion()
constexpr BlockState PottedDarkOakSapling()
constexpr BlockState PottedDeadBush()
constexpr BlockState PottedFern()
constexpr BlockState PottedJungleSapling()
constexpr BlockState PottedLilyOfTheValley()
constexpr BlockState PottedOakSapling()
constexpr BlockState PottedOrangeTulip()
constexpr BlockState PottedOxeyeDaisy()
constexpr BlockState PottedPinkTulip()
constexpr BlockState PottedPoppy()
constexpr BlockState PottedRedMushroom()
constexpr BlockState PottedRedTulip()
constexpr BlockState PottedSpruceSapling()
constexpr BlockState PottedWarpedFungus()
constexpr BlockState PottedWarpedRoots()
constexpr BlockState PottedWhiteTulip()
constexpr BlockState PottedWitherRose()
bool Powered(const BlockState Block)
BlockState PoweredRail()
constexpr BlockState Prismarine()
eBlockFace Facing(const BlockState Block)
constexpr BlockState PrismarineBricks()
BlockState PrismarineSlab()
BlockState PrismarineStairs()
eBlockFace Facing(const BlockState Block)
BlockState PrismarineWall()
bool Up(const BlockState Block)
constexpr BlockState Pumpkin()
BlockState PumpkinStem()
unsigned char Age(const BlockState Block)
BlockState PurpleBanner()
unsigned char Rotation(const BlockState Block)
bool Occupied(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState PurpleBed()
constexpr BlockState PurpleCarpet()
constexpr BlockState PurpleConcrete()
constexpr BlockState PurpleConcretePowder()
eBlockFace Facing(const BlockState Block)
BlockState PurpleShulkerBox()
eBlockFace Facing(const BlockState Block)
constexpr BlockState PurpleStainedGlass()
bool South(const BlockState Block)
bool North(const BlockState Block)
bool East(const BlockState Block)
bool West(const BlockState Block)
constexpr BlockState PurpleTerracotta()
BlockState PurpleWallBanner()
eBlockFace Facing(const BlockState Block)
constexpr BlockState PurpleWool()
constexpr BlockState PurpurBlock()
BlockState PurpurPillar()
BlockState PurpurSlab()
BlockState PurpurStairs()
eBlockFace Facing(const BlockState Block)
constexpr BlockState QuartzBlock()
constexpr BlockState QuartzBricks()
BlockState QuartzPillar()
BlockState QuartzSlab()
BlockState QuartzStairs()
eBlockFace Facing(const BlockState Block)
BlockState Rail()
unsigned char Rotation(const BlockState Block)
BlockState RedBanner()
BlockState RedBed()
bool Occupied(const BlockState Block)
eBlockFace Facing(const BlockState Block)
constexpr BlockState RedCarpet()
constexpr BlockState RedConcrete()
constexpr BlockState RedConcretePowder()
eBlockFace Facing(const BlockState Block)
constexpr BlockState RedMushroom()
bool Up(const BlockState Block)
bool North(const BlockState Block)
bool East(const BlockState Block)
bool South(const BlockState Block)
BlockState RedMushroomBlock()
bool West(const BlockState Block)
bool Down(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Up(const BlockState Block)
constexpr BlockState RedNetherBricks()
constexpr BlockState RedSand()
constexpr BlockState RedSandstone()
BlockState RedSandstoneSlab()
eBlockFace Facing(const BlockState Block)
BlockState RedSandstoneWall()
bool Up(const BlockState Block)
BlockState RedShulkerBox()
eBlockFace Facing(const BlockState Block)
constexpr BlockState RedStainedGlass()
bool North(const BlockState Block)
bool West(const BlockState Block)
bool East(const BlockState Block)
bool South(const BlockState Block)
constexpr BlockState RedTerracotta()
constexpr BlockState RedTulip()
eBlockFace Facing(const BlockState Block)
BlockState RedWallBanner()
constexpr BlockState RedWool()
constexpr BlockState RedstoneBlock()
bool Lit(const BlockState Block)
BlockState RedstoneLamp()
BlockState RedstoneOre()
bool Lit(const BlockState Block)
BlockState RedstoneTorch()
bool Lit(const BlockState Block)
BlockState RedstoneWallTorch()
eBlockFace Facing(const BlockState Block)
bool Lit(const BlockState Block)
unsigned char Power(const BlockState Block)
BlockState RedstoneWire()
BlockState Repeater()
eBlockFace Facing(const BlockState Block)
unsigned char Delay(const BlockState Block)
bool Powered(const BlockState Block)
bool Locked(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Conditional(const BlockState Block)
unsigned char Charges(const BlockState Block)
BlockState RespawnAnchor()
BlockState RoseBush()
constexpr BlockState Sand()
constexpr BlockState Sandstone()
BlockState SandstoneSlab()
BlockState SandstoneStairs()
eBlockFace Facing(const BlockState Block)
BlockState SandstoneWall()
bool Up(const BlockState Block)
BlockState Scaffolding()
unsigned char Distance(const BlockState Block)
bool Bottom(const BlockState Block)
constexpr BlockState SeaLantern()
BlockState SeaPickle()
unsigned char Pickles(const BlockState Block)
constexpr BlockState Seagrass()
constexpr BlockState Shroomlight()
BlockState ShulkerBox()
eBlockFace Facing(const BlockState Block)
unsigned char Rotation(const BlockState Block)
BlockState SkeletonSkull()
eBlockFace Facing(const BlockState Block)
constexpr BlockState SlimeBlock()
constexpr BlockState SmithingTable()
eBlockFace Facing(const BlockState Block)
bool Lit(const BlockState Block)
BlockState Smoker()
constexpr BlockState SmoothQuartz()
eBlockFace Facing(const BlockState Block)
constexpr BlockState SmoothRedSandstone()
eBlockFace Facing(const BlockState Block)
constexpr BlockState SmoothSandstone()
eBlockFace Facing(const BlockState Block)
constexpr BlockState SmoothStone()
BlockState SmoothStoneSlab()
BlockState Snow()
unsigned char Layers(const BlockState Block)
constexpr BlockState SnowBlock()
eBlockFace Facing(const BlockState Block)
bool Lit(const BlockState Block)
bool SignalFire(const BlockState Block)
BlockState SoulCampfire()
constexpr BlockState SoulFire()
bool Hanging(const BlockState Block)
BlockState SoulLantern()
constexpr BlockState SoulSand()
constexpr BlockState SoulSoil()
constexpr BlockState SoulTorch()
eBlockFace Facing(const BlockState Block)
BlockState SoulWallTorch()
constexpr BlockState Spawner()
constexpr BlockState Sponge()
BlockState SpruceButton()
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
BlockState SpruceDoor()
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
bool Open(const BlockState Block)
BlockState SpruceFence()
bool West(const BlockState Block)
bool North(const BlockState Block)
bool South(const BlockState Block)
bool East(const BlockState Block)
bool Open(const BlockState Block)
bool InWall(const BlockState Block)
bool Powered(const BlockState Block)
BlockState SpruceFenceGate()
eBlockFace Facing(const BlockState Block)
bool Persistent(const BlockState Block)
BlockState SpruceLeaves()
unsigned char Distance(const BlockState Block)
BlockState SpruceLog()
constexpr BlockState SprucePlanks()
bool Powered(const BlockState Block)
unsigned char Stage(const BlockState Block)
BlockState SpruceSapling()
unsigned char Rotation(const BlockState Block)
BlockState SpruceSign()
BlockState SpruceSlab()
eBlockFace Facing(const BlockState Block)
BlockState SpruceStairs()
bool Open(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState SpruceTrapdoor()
bool Powered(const BlockState Block)
BlockState SpruceWallSign()
eBlockFace Facing(const BlockState Block)
BlockState SpruceWood()
BlockState StickyPiston()
eBlockFace Facing(const BlockState Block)
bool Extended(const BlockState Block)
constexpr BlockState Stone()
BlockState StoneBrickSlab()
eBlockFace Facing(const BlockState Block)
BlockState StoneBrickWall()
bool Up(const BlockState Block)
constexpr BlockState StoneBricks()
eBlockFace Facing(const BlockState Block)
BlockState StoneButton()
bool Powered(const BlockState Block)
bool Powered(const BlockState Block)
BlockState StoneSlab()
eBlockFace Facing(const BlockState Block)
BlockState StoneStairs()
eBlockFace Facing(const BlockState Block)
BlockState Stonecutter()
BlockState StrippedOakLog()
BlockState StrippedOakWood()
BlockState StructureBlock()
constexpr BlockState StructureVoid()
unsigned char Age(const BlockState Block)
BlockState SugarCane()
BlockState Sunflower()
unsigned char Age(const BlockState Block)
BlockState SweetBerryBush()
BlockState TNT()
bool Unstable(const BlockState Block)
BlockState TallGrass()
BlockState TallSeagrass()
BlockState Target()
unsigned char Power(const BlockState Block)
constexpr BlockState Terracotta()
constexpr BlockState Torch()
BlockState TrappedChest()
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
bool Attached(const BlockState Block)
bool Disarmed(const BlockState Block)
BlockState Tripwire()
bool West(const BlockState Block)
bool North(const BlockState Block)
bool East(const BlockState Block)
bool South(const BlockState Block)
bool Attached(const BlockState Block)
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
BlockState TripwireHook()
constexpr BlockState TubeCoral()
constexpr BlockState TubeCoralBlock()
constexpr BlockState TubeCoralFan()
eBlockFace Facing(const BlockState Block)
unsigned char Eggs(const BlockState Block)
unsigned char Hatch(const BlockState Block)
BlockState TurtleEgg()
BlockState TwistingVines()
unsigned char Age(const BlockState Block)
constexpr BlockState TwistingVinesPlant()
bool West(const BlockState Block)
bool Up(const BlockState Block)
bool South(const BlockState Block)
BlockState Vine()
bool East(const BlockState Block)
bool North(const BlockState Block)
constexpr BlockState VoidAir()
eBlockFace Facing(const BlockState Block)
BlockState WallTorch()
BlockState WarpedButton()
eBlockFace Facing(const BlockState Block)
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState WarpedDoor()
bool Open(const BlockState Block)
bool Powered(const BlockState Block)
bool West(const BlockState Block)
BlockState WarpedFence()
bool East(const BlockState Block)
bool North(const BlockState Block)
bool South(const BlockState Block)
bool InWall(const BlockState Block)
bool Open(const BlockState Block)
bool Powered(const BlockState Block)
BlockState WarpedFenceGate()
eBlockFace Facing(const BlockState Block)
constexpr BlockState WarpedFungus()
BlockState WarpedHyphae()
constexpr BlockState WarpedNylium()
constexpr BlockState WarpedPlanks()
bool Powered(const BlockState Block)
constexpr BlockState WarpedRoots()
unsigned char Rotation(const BlockState Block)
BlockState WarpedSign()
BlockState WarpedSlab()
BlockState WarpedStairs()
eBlockFace Facing(const BlockState Block)
BlockState WarpedStem()
bool Powered(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState WarpedTrapdoor()
bool Open(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState WarpedWallSign()
constexpr BlockState WarpedWartBlock()
unsigned char Level(const BlockState Block)
BlockState Water()
BlockState WeepingVines()
unsigned char Age(const BlockState Block)
constexpr BlockState WeepingVinesPlant()
constexpr BlockState WetSponge()
BlockState Wheat()
unsigned char Age(const BlockState Block)
unsigned char Rotation(const BlockState Block)
BlockState WhiteBanner()
eBlockFace Facing(const BlockState Block)
BlockState WhiteBed()
bool Occupied(const BlockState Block)
constexpr BlockState WhiteCarpet()
constexpr BlockState WhiteConcrete()
constexpr BlockState WhiteConcretePowder()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState WhiteShulkerBox()
constexpr BlockState WhiteStainedGlass()
bool East(const BlockState Block)
bool West(const BlockState Block)
bool South(const BlockState Block)
bool North(const BlockState Block)
constexpr BlockState WhiteTerracotta()
constexpr BlockState WhiteTulip()
BlockState WhiteWallBanner()
eBlockFace Facing(const BlockState Block)
constexpr BlockState WhiteWool()
constexpr BlockState WitherRose()
unsigned char Rotation(const BlockState Block)
eBlockFace Facing(const BlockState Block)
BlockState YellowBanner()
unsigned char Rotation(const BlockState Block)
bool Occupied(const BlockState Block)
BlockState YellowBed()
eBlockFace Facing(const BlockState Block)
constexpr BlockState YellowCarpet()
constexpr BlockState YellowConcrete()
constexpr BlockState YellowConcretePowder()
eBlockFace Facing(const BlockState Block)
eBlockFace Facing(const BlockState Block)
constexpr BlockState YellowStainedGlass()
bool South(const BlockState Block)
bool East(const BlockState Block)
bool North(const BlockState Block)
bool West(const BlockState Block)
constexpr BlockState YellowTerracotta()
eBlockFace Facing(const BlockState Block)
constexpr BlockState YellowWool()
BlockState ZombieHead()
unsigned char Rotation(const BlockState Block)
BlockState ZombieWallHead()
eBlockFace Facing(const BlockState Block)
Represents the state of a single block (previously known as "block meta").
Definition: BlockState.h:20