summaryrefslogblamecommitdiffstats
path: root/src/Registries/Blocks.h
blob: 297a81863504fed8abe9c7ea22c3bba5771818c6 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
10673
10674
10675
10676
10677
10678
10679
10680
10681
10682
10683
10684
10685
10686
10687
10688
10689
10690
10691
10692
10693
10694
10695
10696
10697
10698
10699
10700
10701
10702
10703
10704
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
10996
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007
11008
11009
11010
11011
11012
11013
11014
11015
11016
11017
11018
11019
11020
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077
11078
11079
11080
11081
11082
11083
11084
11085
11086
11087
11088
11089
11090
11091
11092
11093
11094
11095
11096
11097
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
11118
11119
11120
11121
11122
11123
11124
11125
11126
11127
11128
11129
11130
11131
11132
11133
11134
11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
11146
11147
11148
11149
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187
11188
11189
11190
11191
11192
11193
11194
11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
11240
11241
11242
11243
11244
11245
11246
11247
11248
11249
11250
11251
11252
11253
11254
11255
11256
11257
11258
11259
11260
11261
11262
11263
11264
11265
11266
11267
11268
11269
11270
11271
11272
11273
11274
11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293
11294
11295
11296
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
11312
11313
11314
11315
11316
11317
11318
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
11330
11331
11332
11333
11334
11335
11336
11337
11338
11339
11340
11341
11342
11343
11344
11345
11346
11347
11348
11349
11350
11351
11352
11353
11354
11355
11356
11357
11358
11359
11360
11361
11362
11363
11364
11365
11366
11367
11368
11369
11370
11371
11372
11373
11374
11375
11376
11377
11378
11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467
11468
11469
11470
11471
11472
11473
11474
11475
11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
15411
15412
15413
15414
15415
15416
15417
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
15428
15429
15430
15431
15432
15433
15434
15435
15436
15437
15438
15439
15440
15441
15442
15443
15444
15445
15446
15447
15448
15449
15450
15451
15452
15453
15454
15455
15456
15457
15458
15459
15460
15461
15462
15463
15464
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
15475
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
15522
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550
15551
15552
15553
15554
15555
15556
15557
15558
15559
15560
15561
15562
15563
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617
15618
15619
15620
15621
15622
15623
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634
15635
15636
15637
15638
15639
15640
15641
15642
15643
15644
15645
15646
15647
15648
15649
15650
15651
15652
15653
15654
15655
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672
15673
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688
15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
15699
15700
15701
15702
15703
15704
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
15717
15718
15719
15720
15721
15722
15723
15724
15725
15726
15727
15728
15729
15730
15731
15732
15733
15734
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
15783
15784
15785
15786
15787
15788
15789
15790
15791
15792
15793
15794
15795
15796
15797
15798
15799
15800
15801
15802
15803
15804
15805
15806
15807
15808
15809
15810
15811
15812
15813
15814
15815
15816
15817
15818
15819
15820
15821
15822
15823
15824
15825
15826
15827
15828
15829
15830
15831
15832
15833
15834
15835
15836
15837
15838
15839
15840
15841
15842
15843
15844
15845
15846
15847
15848
15849
15850
15851
15852
15853
15854
15855
15856
15857
15858
15859
15860
15861
15862
15863
15864
15865
15866
15867
15868
15869
15870
15871
15872
15873
15874
15875
15876
15877
15878
15879
15880
15881
15882
15883
15884
15885
15886
15887
15888
15889
15890
15891
15892
15893
15894
15895
15896
15897
15898
15899
15900
15901
15902
15903
15904
15905
15906
15907
15908
15909
15910
15911
15912
15913
15914
15915
15916
15917
15918
15919
15920
15921
15922
15923
15924
15925
15926
15927
15928
15929
15930
15931
15932
15933
15934
15935
15936
15937
15938
15939
15940
15941
15942
15943
15944
15945
15946
15947
15948
15949
15950
15951
15952
15953
15954
15955
15956
15957
15958
15959
15960
15961
15962
15963
15964
15965
15966
15967
15968
15969
15970
15971
15972
15973
15974
15975
15976
15977
15978
15979
15980
15981
15982
15983
15984
15985
15986
15987
15988
15989
15990
15991
15992
15993
15994
15995
15996
15997
15998
15999
16000
16001
16002
16003
16004
16005
16006
16007
16008
16009
16010
16011
16012
16013
16014
16015
16016
16017
16018
16019
16020
16021
16022
16023
16024
16025
16026
16027
16028
16029
16030
16031
16032
16033
16034
16035
16036
16037
16038
16039
16040
16041
16042
16043
16044
16045
16046
16047
16048
16049
16050
16051
16052
16053
16054
16055
16056
16057
16058
16059
16060
16061
16062
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
16076
16077
16078
16079
16080
16081
16082
16083
16084
16085
16086
16087
16088
16089
16090
16091
16092
16093
16094
16095
16096
16097
16098
16099
16100
16101
16102
16103
16104
16105
16106
16107
16108
16109
16110
16111
16112
16113
16114
16115
16116
16117
16118
16119
16120
16121
16122
16123
16124
16125
16126
16127
16128
16129
16130
16131
16132
16133
16134
16135
16136
16137
16138
16139
16140
16141
16142
16143
16144
16145
16146
16147
16148
16149
16150
16151
16152
16153
16154
16155
16156
16157
16158
16159
16160
16161
16162
16163
16164
16165
16166
16167
16168
16169
16170
16171
16172
16173
16174
16175
16176
16177
16178
16179
16180
16181
16182
16183
16184
16185
16186
16187
16188
16189
16190
16191
16192
16193
16194
16195
16196
16197
16198
16199
16200
16201
16202
16203
16204
16205
16206
16207
16208
16209
16210
16211
16212
16213
16214
16215
16216
16217
16218
16219
16220
16221
16222
16223
16224
16225
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
16241
16242
16243
16244
16245
16246
16247
16248
16249
16250
16251
16252
16253
16254
16255
16256
16257
16258
16259
16260
16261
16262
16263
16264
16265
16266
16267
16268
16269
16270
16271
16272
16273
16274
16275
16276
16277
16278
16279
16280
16281
16282
16283
16284
16285
16286
16287
16288
16289
16290
16291
16292
16293
16294
16295
16296
16297
16298
16299
16300
16301
16302
16303
16304
16305
16306
16307
16308
16309
16310
16311
16312
16313
16314
16315
16316
16317
16318
16319
16320
16321
16322
16323
16324
16325
16326
16327
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
16343
16344
16345
16346
16347
16348
16349
16350
16351
16352
16353
16354
16355
16356
16357
16358
16359
16360
16361
16362
16363
16364
16365
16366
16367
16368
16369
16370
16371
16372
16373
16374
16375
16376
16377
16378
16379
16380
16381
16382
16383
16384
16385
16386
16387
16388
16389
16390
16391
16392
16393
16394
16395
16396
16397
16398
16399
16400
16401
16402
16403
16404
16405
16406
16407
16408
16409
16410
16411
16412
16413
16414
16415
16416
16417
16418
16419
16420
16421
16422
16423
16424
16425
16426
16427
16428
16429
16430
16431
16432
16433
16434
16435
16436
16437
16438
16439
16440
16441
16442
16443
16444
16445
16446
16447
16448
16449
16450
16451
16452
16453
16454
16455
16456
16457
16458
16459
16460
16461
16462
16463
16464
16465
16466
16467
16468
16469
16470
16471
16472
16473
16474
16475
16476
16477
16478
16479
16480
16481
16482
16483
16484
16485
16486
16487
16488
16489
16490
16491
16492
16493
16494
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516
16517
16518
16519
16520
16521
16522
16523
16524
16525
16526
16527
16528
16529
16530
16531
16532
16533
16534
16535
16536
16537
16538
16539
16540
16541
16542
16543
16544
16545
16546
16547
16548
16549
16550
16551
16552
16553
16554
16555
16556
16557
16558
16559
16560
16561
16562
16563
16564
16565
16566
16567
16568
16569
16570
16571
16572
16573
16574
16575
16576
16577
16578
16579
16580
16581
16582
16583
16584
16585
16586
16587
16588
16589
16590
16591
16592
16593
16594
16595
16596
16597
16598
16599
16600
16601
16602
16603
16604
16605
16606
16607
16608
16609
16610
16611
16612
16613
16614
16615
16616
16617
16618
16619
16620
16621
16622
16623
16624
16625
16626
16627
16628
16629
16630
16631
16632
16633
16634
16635
16636
16637
16638
16639
16640
16641
16642
16643
16644
16645
16646
16647
16648
16649
16650
16651
16652
16653
16654
16655
16656
16657
16658
16659
16660
16661
16662
16663
16664
16665
16666
16667
16668
16669
16670
16671
16672
16673
16674
16675
16676
16677
16678
16679
16680
16681
16682
16683
16684
16685
16686
16687
16688
16689
16690
16691
16692
16693
16694
16695
16696
16697
16698
16699
16700
16701
16702
16703
16704
16705
16706




























































































































































































































































































































































































































































































































































































































































































































                                                
                    



                             














































































                                                                                             























                                                                                                                  



















                                                                                                                        






























































                                                                                                                                                  












                                                                                         














                                                                           





                                     





                                                                                                        






























                                                                                                             











                                                                                     













                                                                     




















































                                                                  














                                                        



                                                 










                                                          


                                                              


                                         

















                                                                                                 







































                                                                                                                                   




                                            









                                                                                                          






























                                                                                                                          






                                            




                                                                 


                                                                             



                                            






























                                                                             











                                                                                    










































                                                            

                                                               



                                         

















                                                                                                   






































                                                                                                                                    





                                            




























                                                                                                                         

































































































































































                                                                                                                                          





                                           





























                                                                             
                                                                             

                                                                             





















                                                                                                  











                                                                                           
















                                                                    











                                                                                       





















                                                      
                                                         
                                                         























                                                                                                 
                                                                                                 
                                                                                                 
                                                                                                 
                                                                                                 
                                                                                                 
                                                                                                 
                                                                                                 






                                                                                                 
                                                                                                 






                                                                                                 









                                                                                    
                                                                                                 
                                                                                                 
                                                                                                 
                                                                                                 
                                                                                                 
                                                                                                 
                                                                                                 






                                                                                                 
                                                                                                 








                                                                                                 









                                                            
                                                  
                                                  















                                                                                                 






























                                                                                                                                  
















                                                                                            























                                                                                                                  



















                                                                                                                       






























































                                                                                                                                                  












                                                                                        














                                                                           





                                     





                                                                                                       






























                                                                                                             











                                                                                    













                                                                     




















































                                                                 














                                                        



                                                 










                                                         


                                                              


                                         

















                                                                                                







































                                                                                                                                   




                                            









                                                                                                         






























                                                                                                                          






                                            




                                                                


                                                                             



                                            





















                                                                   








                                                       





                                                        













                                                                                          














                                                                                                                































                                                                        
                                                                             
                                                                             










                                                                             
                                                                             
                                                                             


                                                                             














                                                                                                   














                                                                           





                                              












                                                                  
                                                                             
                                                                             





























                                                                             


                                                               


                                         

















                                                                                                     






































                                                                                                                                    





                                            




























                                                                                                                           

































































































































































                                                                                                                                          





                                           





                                                                         
                                                                                     
                                                                                      
                                                                                     


                                                                                      










                                                                                     












                                                        

                                                        













                                                                                         














                                                                                                                































                                                                       
                                                                             

                                                                             






















                                                                 
                                                                             
                                                                             



                                                                             














                                                                                                  














                                                                           





                                             












                                                                 
                                                                             

                                                                             





















                                                         
                                                         
                                                         
                                    














                                            

                                    











                                                 

                                    




                                                                    


                                                                             



                                            





                                                                                                  
                                                                                    
                                                                                    
                                                                                     
                                                                                    
                                                                                     
                                                                                     
















                                                         

                                                              



                                         

















                                                                                                







































                                                                                                                                   




                                            




























                                                                                                                      

































































































































































                                                                                                                                          





                                           












                                                                   











                                                        


                                                        













                                                                                          














                                                                                                                































                                                                        
                                                                             
                                                                             
















                                                                                                                    






























































                                                                                           













                                                                  
                                                                             
                                                                             

                                                                             

                                                                             














                                                                                                   














                                                                           





                                              












                                                                  
                                                                             
                                                                             


























                                                                             

                                    











                                                  

                                    




                                                                     


                                                                             



                                            





                                                         
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  






                                                   








                                                         




                                                    

                                                    







                                                                                      














                                                                                                     





                                            





                                                          
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  















                                                                
                                                                             

                                                                             








                                                             

                                                    
                                                    















                                              

                                    




                                                                                      
                                                                                            
                                                                                            
                                                                                            
                                                                                            
                                                                                            
                                                                                            
                                                                                             
                                                                                             
                                                                                             
                                                                                             
                                                                                             
                                    














                                                                        











                                                                                                     



                                            




                                                               

                                                                             
                                                                             


















































                                                               

                                                  

                                                  
                                                  








                                                                                                             






























































                                                                                           






















































                                                               


                                                              


                                         

















                                                                                                      







































                                                                                                                                   




                                            




























                                                                                                                            
































































































































































                                                                                                                                         






                                           












                                                                           


                                                                                         







                                                                                         
                                    


































                                                                                             














                                                                                                                   










                                                              
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     








                                              

                                    







































                                                                   
                                                       













                                                        


























                                                                                              























                                                                                                                   



















                                                                                                                         






























































                                                                                                                                                   












                                                                                          














                                                                            





                                     





                                                                                                         






























                                                                                                              
























                                                             
                                                          
                                                          







































                                                                   














                                                         



                                                 










                                                           


                                                               


                                         

















                                                                                                  






































                                                                                                                                    





                                            










                                                           
                                                          
                                                          













                                                                                                           






























                                                                                                                           






                                            




                                                                  


                                                                              



                                            
























                                                                   


                                                              


                                            

















                                                                


                                                              


                                         

































                                                                                         














                                                                                                                































                                                                       
                                                                             
                                                                             









                                                                             
                                                                             
                                                                             

                                                                             

                                                                             














                                                                                                  














                                                                           





                                             












                                                                 

                                                                             
                                                                             















                                                               
                                                                             

                                                                             





















                                                                                              






















                                                                                                                  




















                                                                                                                         






























































                                                                                                                                                  












                                                                                          














                                                                           





                                     





                                                                                                         






























                                                                                                             











                                                                                      













                                                                     




















































                                                                   














                                                        



                                                 










                                                           

                                                              



                                         

















                                                                                                  







































                                                                                                                                   




                                            









                                                                                                           






























                                                                                                                          






                                            




                                                                  


                                                                             



                                            


































                                                                  

                                                              



                                           

















                                                                                                         







































                                                                                                                                   




                                             




                                                                                    
                                                                
                                                                
                                                                
                                                                


                                                                
                                                                


                                                                 
                                                                 


                                                                 
                                                                 


                                                                 
                                                                 


                                                                 
                                                                 


                                                                  
                                                                  


                                                                  









                                                

                                    











                                                     

                                    




                                                                        


                                                                             



                                              




                                                 

                                    











                                                      

                                    




                                                                         


                                                                             



                                               











                                               

                                    











                                                    

                                    




                                                                       


                                                                             



                                             




                                               

                                    











                                                    

                                    




                                                                       


                                                                             



                                             




                                               

                                    











                                                    

                                    




                                                                       


                                                                             



                                             













                                                                            










                                                                                    




































                                                           


                                                               


                                         

















                                                                                                  







































                                                                                                                                    




                                            




























                                                                                                                        

































































































































































                                                                                                                                          





                                           












                                                                            











                                                                                          















                                                                  










                                                        



                                                        








                                                                 
                                                                             

                                                                             















                                                                          











                                                                                           











































                                                                           
                                                                                    
                                                                                    
                                                                                    
                                                                                    
                                                                                     
                                                                                     










                                                                                     

                                                                             

                                                                             
                                                                             





















                                                                 


                                                               


                                          

















                                                                                                        







































                                                                                                                                    




                                            




























                                                                                                                              

































































































































































                                                                                                                                          





                                           












                                                             


                                                                             



                                            



























                                                                                                              






























































































































































































































































































































































































































































































































                                                                                                













                                            

                                    











                                                

                                    




                                                                   


                                                                             



                                            



















                                                             
                                                  
                                                  








                                                                    





                                                                                     
                                                                                    























                                                                                       














                                                                           





                                     







































                                                           


                                                               


                                         

















                                                                                                  







































                                                                                                                                    




                                            




























                                                                                                                        

































































































































































                                                                                                                                          





                                           




































                                                                  

                                                       












                                                        













                                                                                         














                                                                                                                
































                                                                             
                                                                             
                                                                             








                                                                 
                                                                             
                                                                             



                                                                             














                                                                                                  














                                                                           





                                             












                                                                 
                                                                             

                                                                             















                                                                   










                                                        



                                                        













                                                                                          














                                                                                                                
































                                                                             
                                                                             
                                                                             








                                                                  

                                                                             

                                                                             
                                                                             
                                    














                                                                                                   














                                                                           





                                              













                                                                             
                                                                             
                                                                             





















                                                                             
                                                                                                     
                                                                                                     
                                                                                                     
                                                                                                     
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                       


                                                                                                       














                                                       
                                                         
                                                         
                                    







                                                                               













                                                     
                                                     






















                                                                       






                                                                                         


                                                                                         








                                            

                                    











                                                

                                    




                                                                   


                                                                             



                                            





















































                                                                                      














                                                                           





                                     






















                                                                                                                      






























































                                                                                                                                                  
























                                                                                                        






























                                                                                                                          






                                            




                                                               
                                                                             
                                                                             
























                                                                             
                                                                               
                                                                                
                                                                                
                                                                               
                                                                             
                                                                              
                                                                              
                                                                             
                                                                             
                                                                             
                                                                              
                                     























                                                                                             























                                                                                                                  



















                                                                                                                        






























































                                                                                                                                                  












                                                                                         














                                                                           





                                     





                                                                                                        






























                                                                                                             











                                                                                     













                                                                     




















































                                                                  














                                                        



                                                 










                                                          


                                                              


                                         

















                                                                                                 







































                                                                                                                                   




                                            









                                                                                                          






























                                                                                                                          






                                            




                                                                 


                                                                             



                                            





















                                                          





                                                  
                                                  
                                                  
                                                  
                                                  
                                                   
                                                   
                                                   






                                                   
                                                   




                                                   














                                                         


                                                                             



                                            











































                                                             
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                   
                                                   
                                                   
                                                   
                                                   








                                                                                      














                                                                                                      
















                                                                                      























                                                                                                                  









                                                                       





                                                       








                                                        













                                                                                              














                                                                                                                































                                                                            
                                                                             
                                                                             









                                                                             

                                                                             

                                                                             
                                                                             















                                                                                                       














                                                                           





                                                  












                                                                      

                                                                             
                                                                             















                                                                       
                                                       













                                                        













                                                                                              














                                                                                                                































                                                                            
                                                                             

                                                                             









                                                                             
                                                                             
                                                                             


                                                                             














                                                                                                       














                                                                           





                                                  




















































































                                                                               



                                                       










                                                        













                                                                                         














                                                                                                                































                                                                       
                                                                             

                                                                             








                                                                 
                                                                             
                                                                             

                                                                             

                                                                             














                                                                                                  














                                                                           





                                             







































                                                                              
                                                                              
                                                                              








                                                                     






                                                       







                                                        













                                                                                            














                                                                                                                































                                                                          
                                                                             

                                                                             








                                                                    
                                                                             
                                                                             

                                                                             

                                                                             














                                                                                                     














                                                                           





                                                













































                                                                             
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  





















                                                                    


                                                               


                                             

















                                                                                                           






































                                                                                                                                    





                                               




























                                                                                                                                 

































































































































































                                                                                                                                         





                                             











                                                                   

                                                               



                                            

















                                                                                                          







































                                                                                                                                   




                                              




























                                                                                                                                

































































































































































                                                                                                                                          





                                            

















                                                                               
                                                                                                     
                                                                                                     
                                                                                                     


                                                                                                     
                                                                                                     


                                                                                                     
                                                                                                     
                                    








                                                                                                              






























































                                                                                           























                                                                                              














                                                                           





                                         











                                                               


                                                              


                                         

















                                                                                                      







































                                                                                                                                   




                                            




























                                                                                                                            

































































































































































                                                                                                                                          





                                           












































































































































































































































































































































































































































































































































































































































































































































































































































































































                                                                                                          


















                                                                                                   




                                                                                                   















                                                                                          






















                                                                                                                  




















                                                                                                                     






























































                                                                                                                                                  












                                                                                      














                                                                           





                                     





                                                                                                     






























                                                                                                             











                                                                                  













                                                                     




















































                                                               














                                                        



                                                 










                                                       


                                                              


                                         

















                                                                                              







































                                                                                                                                   




                                            









                                                                                                       






























                                                                                                                          






                                            




                                                              


                                                                             



                                            





















                                                                         
                                                                                        
                                                                                         
                                                                                        
                                                                                         
                                                                                        
                                                                                         
                                                                                        
                                                                                         
                                                                                        
                                                                                         

                                                                                        















                                                                    







                                                       






                                                        













                                                                                           














                                                                                                                
































                                                                             
                                                                             
                                                                             









                                                                             
                                                                             
                                                                             


                                                                             














                                                                                                    














                                                                           





                                               



















                                                                   
                                                                             

                                                                             


















































                                                                


                                                              


                                         




                                                                  


                                                       











                                                        













                                                                                         














                                                                                                                































                                                                       
                                                                             
                                                                             









                                                                             

                                                                             

                                                                             
                                                                             
                                    














                                                                                                  














                                                                           





                                             



















                                                                 

                                                                             
                                                                             















                                                                        
                                                                                         
                                                                                         
                                                                                         


                                                                                         
                                                                                          




                                                                                          













                                                                                         






















                                                                                                               










                                                                  





                                                       








                                                        








                                                                 

                                                                             
                                                                             































                                                                    


                                                               


                                             

















                                                                                                           






































                                                                                                                                    





                                               










                                                              
                                                         
                                                         





















                                                                           

                                                               



                                                    

















                                                                                                                  







































                                                                                                                                    




                                                      




























                                                                                                                                        

































































































































































                                                                                                                                          





                                                    


















                                                                                                         























                                                                                                                   

























                                                                             

                                                               



                                               

















                                                                                                             







































                                                                                                                                    




                                                 




























                                                                                                                                   

































































































































































                                                                                                                                          





                                               


















                                                                   


                                                               


                                            

















                                                                                                          







































                                                                                                                                   




                                              

















                                                                   


                                                               


                                            

















                                                                                                          







































                                                                                                                                   




                                              











                                                           
                                                  
                                                  
                                                  
                                                  
                                                  

                                                  




























































































































































































































                                                                           











                                                                                    





















                                                                   


                                                              


                                            

















                                                                                                          







































                                                                                                                                   




                                              

















                                                              


                                                              


                                         

















                                                                                                     







































                                                                                                                                   




                                            




























                                                                                                                           

































































































































































                                                                                                                                          





                                           












                                                              
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  








                                                                    













                                                        
                                                        













                                                                                           














                                                                                                                
































                                                                             
                                                                             
                                                                             








                                                                   

                                                                             

                                                                             
                                                                             















                                                                                                    














                                                                           





                                               













                                                                             
                                                                             
                                                                             





























                                                            

                                                         













                                                          


                                                              


                                         

















                                                                                                 







































                                                                                                                                   




                                            
























                                                            
                                                         

                                                         













                                                          


                                                              


                                         

















                                                                                                 







































                                                                                                                                   




                                            

















                                                      
                                                                    
                                                                  





                                                                        

                                                                   







                                                                 









                                                       




                                                        













                                                                                        














                                                                                                                































                                                                      
                                                                             

                                                                             















                                                                                                                  






























































                                                                                           



















                                                                  


                                                               


                                           

















                                                                                                         







































                                                                                                                                    




                                             




























                                                                                                                               

































































































































































                                                                                                                                          





                                           
































                                                                


                                                              


                                         

















                                                                                                       






































                                                                                                                                   





                                            




























                                                                                                                             

































































































































































                                                                                                                                          





                                           





                                                                
                                                                             
                                                                             



                                                                             














                                                                                                 














                                                                           





                                            



















                                                                
                                                                             

                                                                             




















































                                                                              
                                                                                    





                                                                                     

































                                                                                                                                     















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































                                                                                                                                                 











                                                                                                           






























































                                                                                                                  












                                                                                            
                                                                                            
                                                                                            
                                                                                            
                                                                                            
                                                                                            
                                                                                             
                                                                                             
                                                                                             
                                                                                             
                                                                                             










                                                                    

                                                       

                                                       










































                                                             


                                                              


                                         

















                                                                                                    







































                                                                                                                                   




                                            




























                                                                                                                          

































































































































































                                                                                                                                          





                                           





                                                                                














                                                                   




                                                 











                                                                


                                                      



                                                


















                                                             

                                                                             

                                                                             
                                                                             
                                    







                                                                     





                                                       








                                                        








                                                                    

                                                                             
                                                                             






















                                                                   
                                                                                     
                                                                                      
                                                                                     
                                                                                      


                                                                                      






















                                                                


                                                               


                                         

















                                                                                                       







































                                                                                                                                    




                                            

















                                                                      


                                                               


                                               

















                                                                                                             






































                                                                                                                                   





                                                 

















                                                                   


                                                               


                                            

















                                                                                                          






































                                                                                                                                    





                                              

















                                                               


                                                              


                                         




                                                          



                                                     


                                                     















                                                                                          














                                                                                                     





                                            











































                                                                             
                                                                             
                                                                             




























                                                                                             























                                                                                                                  



















                                                                                                                        






























































                                                                                                                                                  












                                                                                         














                                                                           





                                     





                                                                                                        






























                                                                                                             











                                                                                     













                                                                     




















































                                                                  














                                                        



                                                 










                                                          


                                                              


                                         

















                                                                                                 







































                                                                                                                                   




                                            









                                                                                                          






























                                                                                                                          






                                            




                                                                 


                                                                             



                                            





















                                                                              
                                                                                         
                                                                                         
                                                                                         


                                                                                         
                                                                                          




                                                                                          





















                                                              


                                                              


                                         

















                                                                                                     







































                                                                                                                                   




                                            




























                                                                                                                           

































































































































































                                                                                                                                          





                                           


















                                                                                            























                                                                                                                  

























                                                                


                                                              


                                         

















                                                                                                







































                                                                                                                                    




                                            





                                                                              
                                                                              
                                                                              































                                                                  
                                                        
                                                        
                                   






























                                                                 
                                                        
                                                        
                                   













                                                                     
                                                          
                                                          














                                                                   
                                                          
                                                          































                                                                   
                                                        
                                                        
                                   






























                                                                  
                                                        
                                                        
                                   
































































                                                                  
                                                        
                                                        
                                   














                                                                    

                                                          














                                                                  

                                                          















                                                              
                                                             
                                                               















                                                            





                                                  
                                                  
                                                  
                                                  
                                                  
                                                   
                                                   
                                                   

                                                   























                                                                 
                                                   
                                                   





                                                   









                                                  

































                                                             
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                     
                                                      
                                                      
                                                      
                                                      
                                                      











                                              
















                                                                               











                                                                                                     



                                            




                                                                                                                                  






























































































































                                                                                                                 














                                                                                            














                                                                                                      










                                            

                                    











                                                

                                    




                                                                   


                                                                             



                                            




                                                                                  











                                                                 








                                                                
                                                   
                                                   
                                                   
                                                   
                                                   
                                                   
                                                   






                                                    
                                                    






                                                    
                                                    


                                                    














                                                                                           






























                                                                                  



















                                                            
                                                                             

                                                                             














                                                                                             























                                                                                                                   



















                                                                                                                        






























































                                                                                                                                                   












                                                                                         














                                                                            





                                     





                                                                                                        






























                                                                                                              

























                                                            

                                                          






































                                                                  














                                                         



                                                 










                                                          


                                                               


                                         

















                                                                                                 







































                                                                                                                                    




                                            











                                                          

                                                          












                                                                                                          






























                                                                                                                           






                                            




                                                                 


                                                                              



                                            











                                                          
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                   
                                                   
                                                   
                                                   
                                                   








                                                               



                                                   
                                                   
                                                   
                                                   
                                                   
                                                   
                                                   
                                                    






                                                    
                                                    






                                                    





















                                                        
                                                  





                                                  








                                                                   








                                                       





                                                        













                                                                                          














                                                                                                                































                                                                        
                                                                             
                                                                             









                                                                             
                                                                             
                                                                             



                                                                             














                                                                                                   














                                                                           





                                              



















                                                                  

                                                                             
                                                                             






















                                                                           
                                                       













                                                        




















                                                                             




                                                       









                                                        













                                                                                           














                                                                                                                
































                                                                             
                                                                             
                                                                             








                                                                   
                                                                             
                                                                             



                                                                             














                                                                                                    














                                                                           





                                               












                                                                   
                                                                             

                                                                             















                                                                  










                                                        



                                                        








                                                                 
                                                                             

                                                                             





                                            
#pragma once

#include "Globals.h"
#include "../Defines.h"

namespace Block
{
	enum class Type
	{
		AcaciaButton,
		AcaciaDoor,
		AcaciaFence,
		AcaciaFenceGate,
		AcaciaLeaves,
		AcaciaLog,
		AcaciaPlanks,
		AcaciaPressurePlate,
		AcaciaSapling,
		AcaciaSign,
		AcaciaSlab,
		AcaciaStairs,
		AcaciaTrapdoor,
		AcaciaWallSign,
		AcaciaWood,
		ActivatorRail,
		Air,
		Allium,
		AncientDebris,
		Andesite,
		AndesiteSlab,
		AndesiteStairs,
		AndesiteWall,
		Anvil,
		AttachedMelonStem,
		AttachedPumpkinStem,
		AzureBluet,
		Bamboo,
		BambooSapling,
		Barrel,
		Barrier,
		Basalt,
		Beacon,
		Bedrock,
		BeeNest,
		Beehive,
		Beetroots,
		Bell,
		BirchButton,
		BirchDoor,
		BirchFence,
		BirchFenceGate,
		BirchLeaves,
		BirchLog,
		BirchPlanks,
		BirchPressurePlate,
		BirchSapling,
		BirchSign,
		BirchSlab,
		BirchStairs,
		BirchTrapdoor,
		BirchWallSign,
		BirchWood,
		BlackBanner,
		BlackBed,
		BlackCarpet,
		BlackConcrete,
		BlackConcretePowder,
		BlackGlazedTerracotta,
		BlackShulkerBox,
		BlackStainedGlass,
		BlackStainedGlassPane,
		BlackTerracotta,
		BlackWallBanner,
		BlackWool,
		Blackstone,
		BlackstoneSlab,
		BlackstoneStairs,
		BlackstoneWall,
		BlastFurnace,
		BlueBanner,
		BlueBed,
		BlueCarpet,
		BlueConcrete,
		BlueConcretePowder,
		BlueGlazedTerracotta,
		BlueIce,
		BlueOrchid,
		BlueShulkerBox,
		BlueStainedGlass,
		BlueStainedGlassPane,
		BlueTerracotta,
		BlueWallBanner,
		BlueWool,
		BoneBlock,
		Bookshelf,
		BrainCoral,
		BrainCoralBlock,
		BrainCoralFan,
		BrainCoralWallFan,
		BrewingStand,
		BrickSlab,
		BrickStairs,
		BrickWall,
		Bricks,
		BrownBanner,
		BrownBed,
		BrownCarpet,
		BrownConcrete,
		BrownConcretePowder,
		BrownGlazedTerracotta,
		BrownMushroom,
		BrownMushroomBlock,
		BrownShulkerBox,
		BrownStainedGlass,
		BrownStainedGlassPane,
		BrownTerracotta,
		BrownWallBanner,
		BrownWool,
		BubbleColumn,
		BubbleCoral,
		BubbleCoralBlock,
		BubbleCoralFan,
		BubbleCoralWallFan,
		Cactus,
		Cake,
		Campfire,
		Carrots,
		CartographyTable,
		CarvedPumpkin,
		Cauldron,
		CaveAir,
		Chain,
		ChainCommandBlock,
		Chest,
		ChippedAnvil,
		ChiseledNetherBricks,
		ChiseledPolishedBlackstone,
		ChiseledQuartzBlock,
		ChiseledRedSandstone,
		ChiseledSandstone,
		ChiseledStoneBricks,
		ChorusFlower,
		ChorusPlant,
		Clay,
		CoalBlock,
		CoalOre,
		CoarseDirt,
		Cobblestone,
		CobblestoneSlab,
		CobblestoneStairs,
		CobblestoneWall,
		Cobweb,
		Cocoa,
		CommandBlock,
		Comparator,
		Composter,
		Conduit,
		Cornflower,
		CrackedNetherBricks,
		CrackedPolishedBlackstoneBricks,
		CrackedStoneBricks,
		CraftingTable,
		CreeperHead,
		CreeperWallHead,
		CrimsonButton,
		CrimsonDoor,
		CrimsonFence,
		CrimsonFenceGate,
		CrimsonFungus,
		CrimsonHyphae,
		CrimsonNylium,
		CrimsonPlanks,
		CrimsonPressurePlate,
		CrimsonRoots,
		CrimsonSign,
		CrimsonSlab,
		CrimsonStairs,
		CrimsonStem,
		CrimsonTrapdoor,
		CrimsonWallSign,
		CryingObsidian,
		CutRedSandstone,
		CutRedSandstoneSlab,
		CutSandstone,
		CutSandstoneSlab,
		CyanBanner,
		CyanBed,
		CyanCarpet,
		CyanConcrete,
		CyanConcretePowder,
		CyanGlazedTerracotta,
		CyanShulkerBox,
		CyanStainedGlass,
		CyanStainedGlassPane,
		CyanTerracotta,
		CyanWallBanner,
		CyanWool,
		DamagedAnvil,
		Dandelion,
		DarkOakButton,
		DarkOakDoor,
		DarkOakFence,
		DarkOakFenceGate,
		DarkOakLeaves,
		DarkOakLog,
		DarkOakPlanks,
		DarkOakPressurePlate,
		DarkOakSapling,
		DarkOakSign,
		DarkOakSlab,
		DarkOakStairs,
		DarkOakTrapdoor,
		DarkOakWallSign,
		DarkOakWood,
		DarkPrismarine,
		DarkPrismarineSlab,
		DarkPrismarineStairs,
		DaylightDetector,
		DeadBrainCoral,
		DeadBrainCoralBlock,
		DeadBrainCoralFan,
		DeadBrainCoralWallFan,
		DeadBubbleCoral,
		DeadBubbleCoralBlock,
		DeadBubbleCoralFan,
		DeadBubbleCoralWallFan,
		DeadBush,
		DeadFireCoral,
		DeadFireCoralBlock,
		DeadFireCoralFan,
		DeadFireCoralWallFan,
		DeadHornCoral,
		DeadHornCoralBlock,
		DeadHornCoralFan,
		DeadHornCoralWallFan,
		DeadTubeCoral,
		DeadTubeCoralBlock,
		DeadTubeCoralFan,
		DeadTubeCoralWallFan,
		DetectorRail,
		DiamondBlock,
		DiamondOre,
		Diorite,
		DioriteSlab,
		DioriteStairs,
		DioriteWall,
		Dirt,
		Dispenser,
		DragonEgg,
		DragonHead,
		DragonWallHead,
		DriedKelpBlock,
		Dropper,
		EmeraldBlock,
		EmeraldOre,
		EnchantingTable,
		EndGateway,
		EndPortal,
		EndPortalFrame,
		EndRod,
		EndStone,
		EndStoneBrickSlab,
		EndStoneBrickStairs,
		EndStoneBrickWall,
		EndStoneBricks,
		EnderChest,
		Farmland,
		Fern,
		Fire,
		FireCoral,
		FireCoralBlock,
		FireCoralFan,
		FireCoralWallFan,
		FletchingTable,
		FlowerPot,
		FrostedIce,
		Furnace,
		GildedBlackstone,
		Glass,
		GlassPane,
		Glowstone,
		GoldBlock,
		GoldOre,
		Granite,
		GraniteSlab,
		GraniteStairs,
		GraniteWall,
		Grass,
		GrassBlock,
		GrassPath,
		Gravel,
		GrayBanner,
		GrayBed,
		GrayCarpet,
		GrayConcrete,
		GrayConcretePowder,
		GrayGlazedTerracotta,
		GrayShulkerBox,
		GrayStainedGlass,
		GrayStainedGlassPane,
		GrayTerracotta,
		GrayWallBanner,
		GrayWool,
		GreenBanner,
		GreenBed,
		GreenCarpet,
		GreenConcrete,
		GreenConcretePowder,
		GreenGlazedTerracotta,
		GreenShulkerBox,
		GreenStainedGlass,
		GreenStainedGlassPane,
		GreenTerracotta,
		GreenWallBanner,
		GreenWool,
		Grindstone,
		HayBale,
		HeavyWeightedPressurePlate,
		HoneyBlock,
		HoneycombBlock,
		Hopper,
		HornCoral,
		HornCoralBlock,
		HornCoralFan,
		HornCoralWallFan,
		Ice,
		InfestedChiseledStoneBricks,
		InfestedCobblestone,
		InfestedCrackedStoneBricks,
		InfestedMossyStoneBricks,
		InfestedStone,
		InfestedStoneBricks,
		IronBars,
		IronBlock,
		IronDoor,
		IronOre,
		IronTrapdoor,
		JackOLantern,
		Jigsaw,
		Jukebox,
		JungleButton,
		JungleDoor,
		JungleFence,
		JungleFenceGate,
		JungleLeaves,
		JungleLog,
		JunglePlanks,
		JunglePressurePlate,
		JungleSapling,
		JungleSign,
		JungleSlab,
		JungleStairs,
		JungleTrapdoor,
		JungleWallSign,
		JungleWood,
		Kelp,
		KelpPlant,
		Ladder,
		Lantern,
		LapisBlock,
		LapisOre,
		LargeFern,
		Lava,
		Lectern,
		Lever,
		LightBlueBanner,
		LightBlueBed,
		LightBlueCarpet,
		LightBlueConcrete,
		LightBlueConcretePowder,
		LightBlueGlazedTerracotta,
		LightBlueShulkerBox,
		LightBlueStainedGlass,
		LightBlueStainedGlassPane,
		LightBlueTerracotta,
		LightBlueWallBanner,
		LightBlueWool,
		LightGrayBanner,
		LightGrayBed,
		LightGrayCarpet,
		LightGrayConcrete,
		LightGrayConcretePowder,
		LightGrayGlazedTerracotta,
		LightGrayShulkerBox,
		LightGrayStainedGlass,
		LightGrayStainedGlassPane,
		LightGrayTerracotta,
		LightGrayWallBanner,
		LightGrayWool,
		LightWeightedPressurePlate,
		Lilac,
		LilyOfTheValley,
		LilyPad,
		LimeBanner,
		LimeBed,
		LimeCarpet,
		LimeConcrete,
		LimeConcretePowder,
		LimeGlazedTerracotta,
		LimeShulkerBox,
		LimeStainedGlass,
		LimeStainedGlassPane,
		LimeTerracotta,
		LimeWallBanner,
		LimeWool,
		Lodestone,
		Loom,
		MagentaBanner,
		MagentaBed,
		MagentaCarpet,
		MagentaConcrete,
		MagentaConcretePowder,
		MagentaGlazedTerracotta,
		MagentaShulkerBox,
		MagentaStainedGlass,
		MagentaStainedGlassPane,
		MagentaTerracotta,
		MagentaWallBanner,
		MagentaWool,
		MagmaBlock,
		Melon,
		MelonStem,
		MossyCobblestone,
		MossyCobblestoneSlab,
		MossyCobblestoneStairs,
		MossyCobblestoneWall,
		MossyStoneBrickSlab,
		MossyStoneBrickStairs,
		MossyStoneBrickWall,
		MossyStoneBricks,
		MovingPiston,
		MushroomStem,
		Mycelium,
		NetherBrickFence,
		NetherBrickSlab,
		NetherBrickStairs,
		NetherBrickWall,
		NetherBricks,
		NetherGoldOre,
		NetherPortal,
		NetherQuartzOre,
		NetherSprouts,
		NetherWart,
		NetherWartBlock,
		NetheriteBlock,
		Netherrack,
		NoteBlock,
		OakButton,
		OakDoor,
		OakFence,
		OakFenceGate,
		OakLeaves,
		OakLog,
		OakPlanks,
		OakPressurePlate,
		OakSapling,
		OakSign,
		OakSlab,
		OakStairs,
		OakTrapdoor,
		OakWallSign,
		OakWood,
		Observer,
		Obsidian,
		OrangeBanner,
		OrangeBed,
		OrangeCarpet,
		OrangeConcrete,
		OrangeConcretePowder,
		OrangeGlazedTerracotta,
		OrangeShulkerBox,
		OrangeStainedGlass,
		OrangeStainedGlassPane,
		OrangeTerracotta,
		OrangeTulip,
		OrangeWallBanner,
		OrangeWool,
		OxeyeDaisy,
		PackedIce,
		Peony,
		PetrifiedOakSlab,
		PinkBanner,
		PinkBed,
		PinkCarpet,
		PinkConcrete,
		PinkConcretePowder,
		PinkGlazedTerracotta,
		PinkShulkerBox,
		PinkStainedGlass,
		PinkStainedGlassPane,
		PinkTerracotta,
		PinkTulip,
		PinkWallBanner,
		PinkWool,
		Piston,
		PistonHead,
		PlayerHead,
		PlayerWallHead,
		Podzol,
		PolishedAndesite,
		PolishedAndesiteSlab,
		PolishedAndesiteStairs,
		PolishedBasalt,
		PolishedBlackstone,
		PolishedBlackstoneBrickSlab,
		PolishedBlackstoneBrickStairs,
		PolishedBlackstoneBrickWall,
		PolishedBlackstoneBricks,
		PolishedBlackstoneButton,
		PolishedBlackstonePressurePlate,
		PolishedBlackstoneSlab,
		PolishedBlackstoneStairs,
		PolishedBlackstoneWall,
		PolishedDiorite,
		PolishedDioriteSlab,
		PolishedDioriteStairs,
		PolishedGranite,
		PolishedGraniteSlab,
		PolishedGraniteStairs,
		Poppy,
		Potatoes,
		PottedAcaciaSapling,
		PottedAllium,
		PottedAzureBluet,
		PottedBamboo,
		PottedBirchSapling,
		PottedBlueOrchid,
		PottedBrownMushroom,
		PottedCactus,
		PottedCornflower,
		PottedCrimsonFungus,
		PottedCrimsonRoots,
		PottedDandelion,
		PottedDarkOakSapling,
		PottedDeadBush,
		PottedFern,
		PottedJungleSapling,
		PottedLilyOfTheValley,
		PottedOakSapling,
		PottedOrangeTulip,
		PottedOxeyeDaisy,
		PottedPinkTulip,
		PottedPoppy,
		PottedRedMushroom,
		PottedRedTulip,
		PottedSpruceSapling,
		PottedWarpedFungus,
		PottedWarpedRoots,
		PottedWhiteTulip,
		PottedWitherRose,
		PoweredRail,
		Prismarine,
		PrismarineBrickSlab,
		PrismarineBrickStairs,
		PrismarineBricks,
		PrismarineSlab,
		PrismarineStairs,
		PrismarineWall,
		Pumpkin,
		PumpkinStem,
		PurpleBanner,
		PurpleBed,
		PurpleCarpet,
		PurpleConcrete,
		PurpleConcretePowder,
		PurpleGlazedTerracotta,
		PurpleShulkerBox,
		PurpleStainedGlass,
		PurpleStainedGlassPane,
		PurpleTerracotta,
		PurpleWallBanner,
		PurpleWool,
		PurpurBlock,
		PurpurPillar,
		PurpurSlab,
		PurpurStairs,
		QuartzBlock,
		QuartzBricks,
		QuartzPillar,
		QuartzSlab,
		QuartzStairs,
		Rail,
		RedBanner,
		RedBed,
		RedCarpet,
		RedConcrete,
		RedConcretePowder,
		RedGlazedTerracotta,
		RedMushroom,
		RedMushroomBlock,
		RedNetherBrickSlab,
		RedNetherBrickStairs,
		RedNetherBrickWall,
		RedNetherBricks,
		RedSand,
		RedSandstone,
		RedSandstoneSlab,
		RedSandstoneStairs,
		RedSandstoneWall,
		RedShulkerBox,
		RedStainedGlass,
		RedStainedGlassPane,
		RedTerracotta,
		RedTulip,
		RedWallBanner,
		RedWool,
		RedstoneBlock,
		RedstoneLamp,
		RedstoneOre,
		RedstoneTorch,
		RedstoneWallTorch,
		RedstoneWire,
		Repeater,
		RepeatingCommandBlock,
		RespawnAnchor,
		RoseBush,
		Sand,
		Sandstone,
		SandstoneSlab,
		SandstoneStairs,
		SandstoneWall,
		Scaffolding,
		SeaLantern,
		SeaPickle,
		Seagrass,
		Shroomlight,
		ShulkerBox,
		SkeletonSkull,
		SkeletonWallSkull,
		SlimeBlock,
		SmithingTable,
		Smoker,
		SmoothQuartz,
		SmoothQuartzSlab,
		SmoothQuartzStairs,
		SmoothRedSandstone,
		SmoothRedSandstoneSlab,
		SmoothRedSandstoneStairs,
		SmoothSandstone,
		SmoothSandstoneSlab,
		SmoothSandstoneStairs,
		SmoothStone,
		SmoothStoneSlab,
		Snow,
		SnowBlock,
		SoulCampfire,
		SoulFire,
		SoulLantern,
		SoulSand,
		SoulSoil,
		SoulTorch,
		SoulWallTorch,
		Spawner,
		Sponge,
		SpruceButton,
		SpruceDoor,
		SpruceFence,
		SpruceFenceGate,
		SpruceLeaves,
		SpruceLog,
		SprucePlanks,
		SprucePressurePlate,
		SpruceSapling,
		SpruceSign,
		SpruceSlab,
		SpruceStairs,
		SpruceTrapdoor,
		SpruceWallSign,
		SpruceWood,
		StickyPiston,
		Stone,
		StoneBrickSlab,
		StoneBrickStairs,
		StoneBrickWall,
		StoneBricks,
		StoneButton,
		StonePressurePlate,
		StoneSlab,
		StoneStairs,
		Stonecutter,
		StrippedAcaciaLog,
		StrippedAcaciaWood,
		StrippedBirchLog,
		StrippedBirchWood,
		StrippedCrimsonHyphae,
		StrippedCrimsonStem,
		StrippedDarkOakLog,
		StrippedDarkOakWood,
		StrippedJungleLog,
		StrippedJungleWood,
		StrippedOakLog,
		StrippedOakWood,
		StrippedSpruceLog,
		StrippedSpruceWood,
		StrippedWarpedHyphae,
		StrippedWarpedStem,
		StructureBlock,
		StructureVoid,
		SugarCane,
		Sunflower,
		SweetBerryBush,
		TNT,
		TallGrass,
		TallSeagrass,
		Target,
		Terracotta,
		Torch,
		TrappedChest,
		Tripwire,
		TripwireHook,
		TubeCoral,
		TubeCoralBlock,
		TubeCoralFan,
		TubeCoralWallFan,
		TurtleEgg,
		TwistingVines,
		TwistingVinesPlant,
		Vine,
		VoidAir,
		WallTorch,
		WarpedButton,
		WarpedDoor,
		WarpedFence,
		WarpedFenceGate,
		WarpedFungus,
		WarpedHyphae,
		WarpedNylium,
		WarpedPlanks,
		WarpedPressurePlate,
		WarpedRoots,
		WarpedSign,
		WarpedSlab,
		WarpedStairs,
		WarpedStem,
		WarpedTrapdoor,
		WarpedWallSign,
		WarpedWartBlock,
		Water,
		WeepingVines,
		WeepingVinesPlant,
		WetSponge,
		Wheat,
		WhiteBanner,
		WhiteBed,
		WhiteCarpet,
		WhiteConcrete,
		WhiteConcretePowder,
		WhiteGlazedTerracotta,
		WhiteShulkerBox,
		WhiteStainedGlass,
		WhiteStainedGlassPane,
		WhiteTerracotta,
		WhiteTulip,
		WhiteWallBanner,
		WhiteWool,
		WitherRose,
		WitherSkeletonSkull,
		WitherSkeletonWallSkull,
		YellowBanner,
		YellowBed,
		YellowCarpet,
		YellowConcrete,
		YellowConcretePowder,
		YellowGlazedTerracotta,
		YellowShulkerBox,
		YellowStainedGlass,
		YellowStainedGlassPane,
		YellowTerracotta,
		YellowWallBanner,
		YellowWool,
		ZombieHead,
		ZombieWallHead
	};
	enum Type Type(short ID);
	bool Is(short ID, enum Type Type);
	namespace AcaciaButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short AcaciaButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6442;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6443;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6444;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6445;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6446;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6447;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6448;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6449;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6450;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6451;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6452;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6453;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6454;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6455;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6456;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6457;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6458;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6459;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6460;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6461;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6462;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6463;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6464;
			return 6465;
		}
		short AcaciaButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace AcaciaDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short AcaciaDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8930;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8931;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8932;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8933;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8934;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8935;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8936;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8937;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8938;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8939;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8940;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8941;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8942;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8943;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8944;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8945;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8946;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8947;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8948;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8949;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8950;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8951;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8952;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8953;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8954;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8955;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8956;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8957;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8958;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8959;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8960;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8961;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8962;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8963;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8964;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8965;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8966;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8967;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8968;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8969;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8970;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8971;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8972;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8973;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8974;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8975;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8976;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8977;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8978;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8979;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8980;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8981;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8982;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8983;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8984;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8985;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8986;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8987;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8988;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8989;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8990;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8991;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8992;
			return 8993;
		}
		short AcaciaDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace AcaciaFence
	{
		constexpr short AcaciaFence(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 8676;
			if (East && North && South && !West) return 8677;
			if (East && North && !South && West) return 8680;
			if (East && North && !South && !West) return 8681;
			if (East && !North && South && West) return 8684;
			if (East && !North && South && !West) return 8685;
			if (East && !North && !South && West) return 8688;
			if (East && !North && !South && !West) return 8689;
			if (!East && North && South && West) return 8692;
			if (!East && North && South && !West) return 8693;
			if (!East && North && !South && West) return 8696;
			if (!East && North && !South && !West) return 8697;
			if (!East && !North && South && West) return 8700;
			if (!East && !North && South && !West) return 8701;
			if (!East && !North && !South && West) return 8704;
			return 8705;
		}
		short AcaciaFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace AcaciaFenceGate
	{
		constexpr short AcaciaFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && Powered) return 8514;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && !Powered) return 8515;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && Powered) return 8516;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && !Powered) return 8517;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && Powered) return 8518;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && !Powered) return 8519;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && Powered) return 8520;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && !Powered) return 8521;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && Powered) return 8522;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && !Powered) return 8523;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && Powered) return 8524;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && !Powered) return 8525;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && Powered) return 8526;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && !Powered) return 8527;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && Powered) return 8528;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && !Powered) return 8529;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && Powered) return 8530;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && !Powered) return 8531;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && Powered) return 8532;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && !Powered) return 8533;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && Powered) return 8534;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && !Powered) return 8535;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && Powered) return 8536;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && !Powered) return 8537;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && Powered) return 8538;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && !Powered) return 8539;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && Powered) return 8540;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && !Powered) return 8541;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && Powered) return 8542;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && !Powered) return 8543;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && !Open && Powered) return 8544;
			return 8545;
		}
		short AcaciaFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace AcaciaLeaves
	{
		constexpr short AcaciaLeaves(unsigned char Distance, bool Persistent)
		{
			if (Distance == 1 && Persistent) return 201;
			if (Distance == 1 && !Persistent) return 202;
			if (Distance == 2 && Persistent) return 203;
			if (Distance == 2 && !Persistent) return 204;
			if (Distance == 3 && Persistent) return 205;
			if (Distance == 3 && !Persistent) return 206;
			if (Distance == 4 && Persistent) return 207;
			if (Distance == 4 && !Persistent) return 208;
			if (Distance == 5 && Persistent) return 209;
			if (Distance == 5 && !Persistent) return 210;
			if (Distance == 6 && Persistent) return 211;
			if (Distance == 6 && !Persistent) return 212;
			if (Distance == 7 && Persistent) return 213;
			return 214;
		}
		short AcaciaLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace AcaciaLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short AcaciaLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 85;
			if (Axis == Axis::Y) return 86;
			return 87;
		}
		short AcaciaLog();
		enum Axis Axis(short ID);
	}
	namespace AcaciaPlanks
	{
		constexpr short AcaciaPlanks()
		{
			return 19;
		}
	}
	namespace AcaciaPressurePlate
	{
		constexpr short AcaciaPressurePlate(bool Powered)
		{
			if (Powered) return 3881;
			return 3882;
		}
		short AcaciaPressurePlate();
		bool Powered(short ID);
	}
	namespace AcaciaSapling
	{
		constexpr short AcaciaSapling(unsigned char Stage)
		{
			if (Stage == 0) return 29;
			return 30;
		}
		short AcaciaSapling();
		unsigned char Stage(short ID);
	}
	namespace AcaciaSign
	{
		constexpr short AcaciaSign(unsigned char Rotation)
		{
			if (Rotation == 0) return 3478;
			if (Rotation == 1) return 3480;
			if (Rotation == 2) return 3482;
			if (Rotation == 3) return 3484;
			if (Rotation == 4) return 3486;
			if (Rotation == 5) return 3488;
			if (Rotation == 6) return 3490;
			if (Rotation == 7) return 3492;
			if (Rotation == 8) return 3494;
			if (Rotation == 9) return 3496;
			if (Rotation == 10) return 3498;
			if (Rotation == 11) return 3500;
			if (Rotation == 12) return 3502;
			if (Rotation == 13) return 3504;
			if (Rotation == 14) return 3506;
			return 3508;
		}
		short AcaciaSign();
		unsigned char Rotation(short ID);
	}
	namespace AcaciaSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short AcaciaSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8325;
			if (Type == Type::Bottom) return 8327;
			return 8329;
		}
		short AcaciaSlab();
		enum Type Type(short ID);
	}
	namespace AcaciaStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short AcaciaStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 7376;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 7378;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 7380;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 7382;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 7384;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 7386;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7388;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7390;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7392;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7394;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 7396;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 7398;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 7400;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 7402;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 7404;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 7406;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7408;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7410;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7412;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 7414;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 7416;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 7418;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 7420;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 7422;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 7424;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 7426;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7428;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7430;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7432;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7434;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 7436;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 7438;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 7440;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 7442;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 7444;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 7446;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7448;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7450;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7452;
			return 7454;
		}
		short AcaciaStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace AcaciaTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short AcaciaTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && Powered) return 4368;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && !Powered) return 4370;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && Powered) return 4372;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && !Powered) return 4374;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && Powered) return 4376;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && !Powered) return 4378;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && Powered) return 4380;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && !Powered) return 4382;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && Powered) return 4384;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && !Powered) return 4386;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && Powered) return 4388;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && !Powered) return 4390;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && Powered) return 4392;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && !Powered) return 4394;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && Powered) return 4396;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && !Powered) return 4398;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && Powered) return 4400;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && !Powered) return 4402;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && Powered) return 4404;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && !Powered) return 4406;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && Powered) return 4408;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && !Powered) return 4410;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && Powered) return 4412;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && !Powered) return 4414;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && Powered) return 4416;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && !Powered) return 4418;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && Powered) return 4420;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && !Powered) return 4422;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && Powered) return 4424;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && !Powered) return 4426;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && !Open && Powered) return 4428;
			return 4430;
		}
		short AcaciaTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace AcaciaWallSign
	{
		constexpr short AcaciaWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3760;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3762;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 3764;
			return 3766;
		}
		short AcaciaWallSign();
		eBlockFace Facing(short ID);
	}
	namespace AcaciaWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short AcaciaWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 121;
			if (Axis == Axis::Y) return 122;
			return 123;
		}
		short AcaciaWood();
		enum Axis Axis(short ID);
	}
	namespace ActivatorRail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth
		};
		constexpr short ActivatorRail(bool Powered, enum Shape Shape)
		{
			if (Powered && Shape == Shape::NorthSouth) return 6823;
			if (Powered && Shape == Shape::EastWest) return 6824;
			if (Powered && Shape == Shape::AscendingEast) return 6825;
			if (Powered && Shape == Shape::AscendingWest) return 6826;
			if (Powered && Shape == Shape::AscendingNorth) return 6827;
			if (Powered && Shape == Shape::AscendingSouth) return 6828;
			if (!Powered && Shape == Shape::NorthSouth) return 6829;
			if (!Powered && Shape == Shape::EastWest) return 6830;
			if (!Powered && Shape == Shape::AscendingEast) return 6831;
			if (!Powered && Shape == Shape::AscendingWest) return 6832;
			if (!Powered && Shape == Shape::AscendingNorth) return 6833;
			return 6834;
		}
		short ActivatorRail();
		bool Powered(short ID);
		enum Shape Shape(short ID);
	}
	namespace Air
	{
		constexpr short Air()
		{
			return -0;
		}
	}
	namespace Allium
	{
		constexpr short Allium()
		{
			return 1415;
		}
	}
	namespace AncientDebris
	{
		constexpr short AncientDebris()
		{
			return 15827;
		}
	}
	namespace Andesite
	{
		constexpr short Andesite()
		{
			return 6;
		}
	}
	namespace AndesiteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short AndesiteSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10844;
			if (Type == Type::Bottom) return 10846;
			return 10848;
		}
		short AndesiteSlab();
		enum Type Type(short ID);
	}
	namespace AndesiteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short AndesiteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 10470;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 10472;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 10474;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 10476;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 10478;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10480;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10482;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10484;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10486;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10488;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10490;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10492;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10494;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10496;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10498;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10500;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10502;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10504;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10506;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10508;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10510;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10512;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10514;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10516;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10518;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10520;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10522;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10524;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10526;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10528;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10530;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10532;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10534;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10536;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10538;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10540;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10542;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10544;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10546;
			return 10548;
		}
		short AndesiteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace AndesiteWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short AndesiteWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 13138;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 13139;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 13140;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 13144;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 13145;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 13146;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 13150;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 13151;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 13152;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 13156;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 13157;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 13158;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 13162;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 13163;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 13164;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 13168;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 13169;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 13170;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 13174;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 13175;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 13176;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 13180;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 13181;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 13182;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 13186;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 13187;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 13188;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 13192;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 13193;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 13194;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 13198;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 13199;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 13200;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 13204;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 13205;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 13206;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 13210;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 13211;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 13212;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 13216;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 13217;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13218;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 13222;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 13223;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13224;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 13228;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13229;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13230;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 13234;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13235;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13236;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13240;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13241;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 13242;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 13246;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 13247;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 13248;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 13252;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 13253;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 13254;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 13258;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 13259;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 13260;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 13264;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 13265;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 13266;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 13270;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 13271;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 13272;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 13276;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 13277;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 13278;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 13282;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 13283;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 13284;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 13288;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 13289;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 13290;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 13294;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 13295;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 13296;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 13300;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 13301;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 13302;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 13306;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 13307;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 13308;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 13312;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 13313;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 13314;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 13318;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 13319;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 13320;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 13324;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 13325;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13326;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 13330;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 13331;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13332;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 13336;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13337;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13338;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 13342;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13343;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13344;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13348;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13349;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 13350;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 13354;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 13355;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 13356;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 13360;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 13361;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 13362;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 13366;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 13367;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 13368;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 13372;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 13373;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 13374;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 13378;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 13379;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 13380;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 13384;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 13385;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 13386;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 13390;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 13391;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 13392;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 13396;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 13397;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 13398;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 13402;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 13403;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 13404;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 13408;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 13409;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 13410;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 13414;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 13415;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 13416;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 13420;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 13421;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 13422;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 13426;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 13427;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 13428;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 13432;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 13433;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13434;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 13438;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 13439;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13440;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 13444;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13445;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13446;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 13450;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13451;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13452;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13456;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13457;
			return 13458;
		}
		short AndesiteWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace Anvil
	{
		constexpr short Anvil(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6610;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6611;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6612;
			return 6613;
		}
		short Anvil();
		eBlockFace Facing(short ID);
	}
	namespace AttachedMelonStem
	{
		constexpr short AttachedMelonStem(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4768;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4769;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4770;
			return 4771;
		}
		short AttachedMelonStem();
		eBlockFace Facing(short ID);
	}
	namespace AttachedPumpkinStem
	{
		constexpr short AttachedPumpkinStem(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4764;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4765;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4766;
			return 4767;
		}
		short AttachedPumpkinStem();
		eBlockFace Facing(short ID);
	}
	namespace AzureBluet
	{
		constexpr short AzureBluet()
		{
			return 1416;
		}
	}
	namespace Bamboo
	{
		enum class Leaves
		{
			None,
			Small,
			Large
		};
		constexpr short Bamboo(unsigned char Age, enum Leaves Leaves, unsigned char Stage)
		{
			if (Age == 0 && Leaves == Leaves::None && Stage == 0) return 9652;
			if (Age == 0 && Leaves == Leaves::None && Stage == 1) return 9653;
			if (Age == 0 && Leaves == Leaves::Small && Stage == 0) return 9654;
			if (Age == 0 && Leaves == Leaves::Small && Stage == 1) return 9655;
			if (Age == 0 && Leaves == Leaves::Large && Stage == 0) return 9656;
			if (Age == 0 && Leaves == Leaves::Large && Stage == 1) return 9657;
			if (Age == 1 && Leaves == Leaves::None && Stage == 0) return 9658;
			if (Age == 1 && Leaves == Leaves::None && Stage == 1) return 9659;
			if (Age == 1 && Leaves == Leaves::Small && Stage == 0) return 9660;
			if (Age == 1 && Leaves == Leaves::Small && Stage == 1) return 9661;
			if (Age == 1 && Leaves == Leaves::Large && Stage == 0) return 9662;
			return 9663;
		}
		short Bamboo();
		unsigned char Age(short ID);
		enum Leaves Leaves(short ID);
		unsigned char Stage(short ID);
	}
	namespace BambooSapling
	{
		constexpr short BambooSapling()
		{
			return 9651;
		}
	}
	namespace Barrel
	{
		constexpr short Barrel(eBlockFace Facing, bool Open)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Open) return 14791;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Open) return 14792;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Open) return 14793;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Open) return 14794;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Open) return 14795;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Open) return 14796;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Open) return 14797;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Open) return 14798;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Open) return 14799;
			if (Facing == eBlockFace::BLOCK_FACE_YP && !Open) return 14800;
			if (Facing == eBlockFace::BLOCK_FACE_YM && Open) return 14801;
			return 14802;
		}
		short Barrel();
		eBlockFace Facing(short ID);
		bool Open(short ID);
	}
	namespace Barrier
	{
		constexpr short Barrier()
		{
			return 7536;
		}
	}
	namespace Basalt
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short Basalt(enum Axis Axis)
		{
			if (Axis == Axis::X) return 4002;
			if (Axis == Axis::Y) return 4003;
			return 4004;
		}
		short Basalt();
		enum Axis Axis(short ID);
	}
	namespace Beacon
	{
		constexpr short Beacon()
		{
			return 5656;
		}
	}
	namespace Bedrock
	{
		constexpr short Bedrock()
		{
			return 33;
		}
	}
	namespace BeeNest
	{
		constexpr short BeeNest(eBlockFace Facing, unsigned char HoneyLevel)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 0) return 15776;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 1) return 15777;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 2) return 15778;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 3) return 15779;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 4) return 15780;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 5) return 15781;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 0) return 15782;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 1) return 15783;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 2) return 15784;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 3) return 15785;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 4) return 15786;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 5) return 15787;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 0) return 15788;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 1) return 15789;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 2) return 15790;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 3) return 15791;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 4) return 15792;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 5) return 15793;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 0) return 15794;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 1) return 15795;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 2) return 15796;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 3) return 15797;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 4) return 15798;
			return 15799;
		}
		short BeeNest();
		eBlockFace Facing(short ID);
		unsigned char HoneyLevel(short ID);
	}
	namespace Beehive
	{
		constexpr short Beehive(eBlockFace Facing, unsigned char HoneyLevel)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 0) return 15800;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 1) return 15801;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 2) return 15802;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 3) return 15803;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 4) return 15804;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 5) return 15805;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 0) return 15806;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 1) return 15807;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 2) return 15808;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 3) return 15809;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 4) return 15810;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 5) return 15811;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 0) return 15812;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 1) return 15813;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 2) return 15814;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 3) return 15815;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 4) return 15816;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 5) return 15817;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 0) return 15818;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 1) return 15819;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 2) return 15820;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 3) return 15821;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 4) return 15822;
			return 15823;
		}
		short Beehive();
		eBlockFace Facing(short ID);
		unsigned char HoneyLevel(short ID);
	}
	namespace Beetroots
	{
		constexpr short Beetroots(unsigned char Age)
		{
			if (Age == 0) return 9219;
			if (Age == 1) return 9220;
			if (Age == 2) return 9221;
			return 9222;
		}
		short Beetroots();
		unsigned char Age(short ID);
	}
	namespace Bell
	{
		enum class Attachment
		{
			Floor,
			Ceiling,
			SingleWall,
			DoubleWall
		};
		constexpr short Bell(enum Attachment Attachment, eBlockFace Facing, bool Powered)
		{
			if (Attachment == Attachment::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 14854;
			if (Attachment == Attachment::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 14855;
			if (Attachment == Attachment::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 14856;
			if (Attachment == Attachment::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 14857;
			if (Attachment == Attachment::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 14858;
			if (Attachment == Attachment::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 14859;
			if (Attachment == Attachment::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 14860;
			if (Attachment == Attachment::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 14861;
			if (Attachment == Attachment::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 14862;
			if (Attachment == Attachment::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 14863;
			if (Attachment == Attachment::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 14864;
			if (Attachment == Attachment::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 14865;
			if (Attachment == Attachment::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 14866;
			if (Attachment == Attachment::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 14867;
			if (Attachment == Attachment::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 14868;
			if (Attachment == Attachment::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 14869;
			if (Attachment == Attachment::SingleWall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 14870;
			if (Attachment == Attachment::SingleWall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 14871;
			if (Attachment == Attachment::SingleWall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 14872;
			if (Attachment == Attachment::SingleWall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 14873;
			if (Attachment == Attachment::SingleWall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 14874;
			if (Attachment == Attachment::SingleWall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 14875;
			if (Attachment == Attachment::SingleWall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 14876;
			if (Attachment == Attachment::SingleWall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 14877;
			if (Attachment == Attachment::DoubleWall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 14878;
			if (Attachment == Attachment::DoubleWall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 14879;
			if (Attachment == Attachment::DoubleWall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 14880;
			if (Attachment == Attachment::DoubleWall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 14881;
			if (Attachment == Attachment::DoubleWall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 14882;
			if (Attachment == Attachment::DoubleWall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 14883;
			if (Attachment == Attachment::DoubleWall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 14884;
			return 14885;
		}
		short Bell();
		enum Attachment Attachment(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace BirchButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short BirchButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6394;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6395;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6396;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6397;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6398;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6399;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6400;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6401;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6402;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6403;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6404;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6405;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6406;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6407;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6408;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6409;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6410;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6411;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6412;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6413;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6414;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6415;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6416;
			return 6417;
		}
		short BirchButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace BirchDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short BirchDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8802;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8803;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8804;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8805;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8806;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8807;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8808;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8809;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8810;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8811;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8812;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8813;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8814;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8815;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8816;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8817;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8818;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8819;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8820;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8821;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8822;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8823;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8824;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8825;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8826;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8827;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8828;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8829;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8830;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8831;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8832;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8833;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8834;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8835;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8836;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8837;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8838;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8839;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8840;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8841;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8842;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8843;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8844;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8845;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8846;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8847;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8848;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8849;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8850;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8851;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8852;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8853;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8854;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8855;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8856;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8857;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8858;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8859;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8860;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8861;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8862;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8863;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8864;
			return 8865;
		}
		short BirchDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace BirchFence
	{
		constexpr short BirchFence(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 8612;
			if (East && North && South && !West) return 8613;
			if (East && North && !South && West) return 8616;
			if (East && North && !South && !West) return 8617;
			if (East && !North && South && West) return 8620;
			if (East && !North && South && !West) return 8621;
			if (East && !North && !South && West) return 8624;
			if (East && !North && !South && !West) return 8625;
			if (!East && North && South && West) return 8628;
			if (!East && North && South && !West) return 8629;
			if (!East && North && !South && West) return 8632;
			if (!East && North && !South && !West) return 8633;
			if (!East && !North && South && West) return 8636;
			if (!East && !North && South && !West) return 8637;
			if (!East && !North && !South && West) return 8640;
			return 8641;
		}
		short BirchFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace BirchFenceGate
	{
		constexpr short BirchFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && Powered) return 8450;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && !Powered) return 8451;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && Powered) return 8452;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && !Powered) return 8453;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && Powered) return 8454;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && !Powered) return 8455;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && Powered) return 8456;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && !Powered) return 8457;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && Powered) return 8458;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && !Powered) return 8459;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && Powered) return 8460;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && !Powered) return 8461;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && Powered) return 8462;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && !Powered) return 8463;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && Powered) return 8464;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && !Powered) return 8465;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && Powered) return 8466;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && !Powered) return 8467;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && Powered) return 8468;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && !Powered) return 8469;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && Powered) return 8470;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && !Powered) return 8471;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && Powered) return 8472;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && !Powered) return 8473;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && Powered) return 8474;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && !Powered) return 8475;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && Powered) return 8476;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && !Powered) return 8477;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && Powered) return 8478;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && !Powered) return 8479;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && !Open && Powered) return 8480;
			return 8481;
		}
		short BirchFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace BirchLeaves
	{
		constexpr short BirchLeaves(unsigned char Distance, bool Persistent)
		{
			if (Distance == 1 && Persistent) return 173;
			if (Distance == 1 && !Persistent) return 174;
			if (Distance == 2 && Persistent) return 175;
			if (Distance == 2 && !Persistent) return 176;
			if (Distance == 3 && Persistent) return 177;
			if (Distance == 3 && !Persistent) return 178;
			if (Distance == 4 && Persistent) return 179;
			if (Distance == 4 && !Persistent) return 180;
			if (Distance == 5 && Persistent) return 181;
			if (Distance == 5 && !Persistent) return 182;
			if (Distance == 6 && Persistent) return 183;
			if (Distance == 6 && !Persistent) return 184;
			if (Distance == 7 && Persistent) return 185;
			return 186;
		}
		short BirchLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace BirchLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short BirchLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 79;
			if (Axis == Axis::Y) return 80;
			return 81;
		}
		short BirchLog();
		enum Axis Axis(short ID);
	}
	namespace BirchPlanks
	{
		constexpr short BirchPlanks()
		{
			return 17;
		}
	}
	namespace BirchPressurePlate
	{
		constexpr short BirchPressurePlate(bool Powered)
		{
			if (Powered) return 3877;
			return 3878;
		}
		short BirchPressurePlate();
		bool Powered(short ID);
	}
	namespace BirchSapling
	{
		constexpr short BirchSapling(unsigned char Stage)
		{
			if (Stage == 0) return 25;
			return 26;
		}
		short BirchSapling();
		unsigned char Stage(short ID);
	}
	namespace BirchSign
	{
		constexpr short BirchSign(unsigned char Rotation)
		{
			if (Rotation == 0) return 3446;
			if (Rotation == 1) return 3448;
			if (Rotation == 2) return 3450;
			if (Rotation == 3) return 3452;
			if (Rotation == 4) return 3454;
			if (Rotation == 5) return 3456;
			if (Rotation == 6) return 3458;
			if (Rotation == 7) return 3460;
			if (Rotation == 8) return 3462;
			if (Rotation == 9) return 3464;
			if (Rotation == 10) return 3466;
			if (Rotation == 11) return 3468;
			if (Rotation == 12) return 3470;
			if (Rotation == 13) return 3472;
			if (Rotation == 14) return 3474;
			return 3476;
		}
		short BirchSign();
		unsigned char Rotation(short ID);
	}
	namespace BirchSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short BirchSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8313;
			if (Type == Type::Bottom) return 8315;
			return 8317;
		}
		short BirchSlab();
		enum Type Type(short ID);
	}
	namespace BirchStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short BirchStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 5485;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 5487;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 5489;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 5491;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 5493;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 5495;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5497;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5499;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5501;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5503;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 5505;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 5507;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 5509;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 5511;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 5513;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 5515;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5517;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5519;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5521;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 5523;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 5525;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 5527;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 5529;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 5531;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 5533;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 5535;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5537;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5539;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5541;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5543;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 5545;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 5547;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 5549;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 5551;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 5553;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 5555;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5557;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5559;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5561;
			return 5563;
		}
		short BirchStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace BirchTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short BirchTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && Powered) return 4240;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && !Powered) return 4242;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && Powered) return 4244;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && !Powered) return 4246;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && Powered) return 4248;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && !Powered) return 4250;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && Powered) return 4252;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && !Powered) return 4254;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && Powered) return 4256;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && !Powered) return 4258;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && Powered) return 4260;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && !Powered) return 4262;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && Powered) return 4264;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && !Powered) return 4266;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && Powered) return 4268;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && !Powered) return 4270;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && Powered) return 4272;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && !Powered) return 4274;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && Powered) return 4276;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && !Powered) return 4278;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && Powered) return 4280;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && !Powered) return 4282;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && Powered) return 4284;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && !Powered) return 4286;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && Powered) return 4288;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && !Powered) return 4290;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && Powered) return 4292;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && !Powered) return 4294;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && Powered) return 4296;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && !Powered) return 4298;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && !Open && Powered) return 4300;
			return 4302;
		}
		short BirchTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace BirchWallSign
	{
		constexpr short BirchWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3752;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3754;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 3756;
			return 3758;
		}
		short BirchWallSign();
		eBlockFace Facing(short ID);
	}
	namespace BirchWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short BirchWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 115;
			if (Axis == Axis::Y) return 116;
			return 117;
		}
		short BirchWood();
		enum Axis Axis(short ID);
	}
	namespace BlackBanner
	{
		constexpr short BlackBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8137;
			if (Rotation == 1) return 8138;
			if (Rotation == 2) return 8139;
			if (Rotation == 3) return 8140;
			if (Rotation == 4) return 8141;
			if (Rotation == 5) return 8142;
			if (Rotation == 6) return 8143;
			if (Rotation == 7) return 8144;
			if (Rotation == 8) return 8145;
			if (Rotation == 9) return 8146;
			if (Rotation == 10) return 8147;
			if (Rotation == 11) return 8148;
			if (Rotation == 12) return 8149;
			if (Rotation == 13) return 8150;
			if (Rotation == 14) return 8151;
			return 8152;
		}
		short BlackBanner();
		unsigned char Rotation(short ID);
	}
	namespace BlackBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short BlackBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1289;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1290;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1291;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1292;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1293;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1294;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1295;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1296;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1297;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1298;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1299;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1300;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1301;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1302;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1303;
			return 1304;
		}
		short BlackBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace BlackCarpet
	{
		constexpr short BlackCarpet()
		{
			return 7881;
		}
	}
	namespace BlackConcrete
	{
		constexpr short BlackConcrete()
		{
			return 9453;
		}
	}
	namespace BlackConcretePowder
	{
		constexpr short BlackConcretePowder()
		{
			return 9469;
		}
	}
	namespace BlackGlazedTerracotta
	{
		constexpr short BlackGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9434;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9435;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9436;
			return 9437;
		}
		short BlackGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace BlackShulkerBox
	{
		constexpr short BlackShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9368;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9369;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9370;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9371;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9372;
			return 9373;
		}
		short BlackShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace BlackStainedGlass
	{
		constexpr short BlackStainedGlass()
		{
			return 4110;
		}
	}
	namespace BlackStainedGlassPane
	{
		constexpr short BlackStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7345;
			if (East && North && South && !West) return 7346;
			if (East && North && !South && West) return 7349;
			if (East && North && !South && !West) return 7350;
			if (East && !North && South && West) return 7353;
			if (East && !North && South && !West) return 7354;
			if (East && !North && !South && West) return 7357;
			if (East && !North && !South && !West) return 7358;
			if (!East && North && South && West) return 7361;
			if (!East && North && South && !West) return 7362;
			if (!East && North && !South && West) return 7365;
			if (!East && North && !South && !West) return 7366;
			if (!East && !North && South && West) return 7369;
			if (!East && !North && South && !West) return 7370;
			if (!East && !North && !South && West) return 7373;
			return 7374;
		}
		short BlackStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace BlackTerracotta
	{
		constexpr short BlackTerracotta()
		{
			return 6862;
		}
	}
	namespace BlackWallBanner
	{
		constexpr short BlackWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8213;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8214;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8215;
			return 8216;
		}
		short BlackWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace BlackWool
	{
		constexpr short BlackWool()
		{
			return 1399;
		}
	}
	namespace Blackstone
	{
		constexpr short Blackstone()
		{
			return 15839;
		}
	}
	namespace BlackstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short BlackstoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 16245;
			if (Type == Type::Bottom) return 16247;
			return 16249;
		}
		short BlackstoneSlab();
		enum Type Type(short ID);
	}
	namespace BlackstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short BlackstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 15841;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 15843;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 15845;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 15847;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 15849;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 15851;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15853;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 15855;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15857;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 15859;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 15861;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 15863;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 15865;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 15867;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 15869;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 15871;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15873;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 15875;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15877;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 15879;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 15881;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 15883;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 15885;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 15887;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 15889;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 15891;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15893;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 15895;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15897;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 15899;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 15901;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 15903;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 15905;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 15907;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 15909;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 15911;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15913;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 15915;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15917;
			return 15919;
		}
		short BlackstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace BlackstoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short BlackstoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 15923;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 15924;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 15925;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 15929;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 15930;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 15931;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 15935;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 15936;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 15937;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 15941;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 15942;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 15943;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 15947;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 15948;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 15949;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 15953;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 15954;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 15955;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 15959;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 15960;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 15961;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 15965;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 15966;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 15967;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 15971;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 15972;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 15973;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 15977;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 15978;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 15979;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 15983;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 15984;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 15985;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 15989;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 15990;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 15991;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 15995;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 15996;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 15997;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 16001;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 16002;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 16003;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 16007;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 16008;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 16009;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 16013;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 16014;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 16015;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 16019;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 16020;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 16021;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 16025;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 16026;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 16027;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 16031;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 16032;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 16033;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 16037;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 16038;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 16039;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 16043;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 16044;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 16045;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 16049;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 16050;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 16051;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 16055;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 16056;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 16057;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 16061;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 16062;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 16063;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 16067;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 16068;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 16069;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 16073;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 16074;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 16075;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 16079;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 16080;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 16081;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 16085;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 16086;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 16087;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 16091;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 16092;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 16093;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 16097;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 16098;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 16099;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 16103;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 16104;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 16105;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 16109;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 16110;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 16111;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 16115;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 16116;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 16117;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 16121;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 16122;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 16123;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 16127;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 16128;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 16129;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 16133;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 16134;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 16135;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 16139;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 16140;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 16141;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 16145;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 16146;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 16147;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 16151;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 16152;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 16153;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 16157;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 16158;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 16159;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 16163;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 16164;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 16165;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 16169;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 16170;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 16171;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 16175;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 16176;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 16177;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 16181;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 16182;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 16183;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 16187;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 16188;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 16189;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 16193;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 16194;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 16195;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 16199;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 16200;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 16201;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 16205;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 16206;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 16207;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 16211;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 16212;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 16213;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 16217;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 16218;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 16219;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 16223;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 16224;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 16225;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 16229;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 16230;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 16231;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 16235;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 16236;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 16237;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 16241;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 16242;
			return 16243;
		}
		short BlackstoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace BlastFurnace
	{
		constexpr short BlastFurnace(eBlockFace Facing, bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit) return 14811;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit) return 14812;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit) return 14813;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit) return 14814;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit) return 14815;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit) return 14816;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit) return 14817;
			return 14818;
		}
		short BlastFurnace();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
	}
	namespace BlueBanner
	{
		constexpr short BlueBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8073;
			if (Rotation == 1) return 8074;
			if (Rotation == 2) return 8075;
			if (Rotation == 3) return 8076;
			if (Rotation == 4) return 8077;
			if (Rotation == 5) return 8078;
			if (Rotation == 6) return 8079;
			if (Rotation == 7) return 8080;
			if (Rotation == 8) return 8081;
			if (Rotation == 9) return 8082;
			if (Rotation == 10) return 8083;
			if (Rotation == 11) return 8084;
			if (Rotation == 12) return 8085;
			if (Rotation == 13) return 8086;
			if (Rotation == 14) return 8087;
			return 8088;
		}
		short BlueBanner();
		unsigned char Rotation(short ID);
	}
	namespace BlueBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short BlueBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1225;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1226;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1227;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1228;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1229;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1230;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1231;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1232;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1233;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1234;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1235;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1236;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1237;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1238;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1239;
			return 1240;
		}
		short BlueBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace BlueCarpet
	{
		constexpr short BlueCarpet()
		{
			return 7877;
		}
	}
	namespace BlueConcrete
	{
		constexpr short BlueConcrete()
		{
			return 9449;
		}
	}
	namespace BlueConcretePowder
	{
		constexpr short BlueConcretePowder()
		{
			return 9465;
		}
	}
	namespace BlueGlazedTerracotta
	{
		constexpr short BlueGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9418;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9419;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9420;
			return 9421;
		}
		short BlueGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace BlueIce
	{
		constexpr short BlueIce()
		{
			return 9648;
		}
	}
	namespace BlueOrchid
	{
		constexpr short BlueOrchid()
		{
			return 1414;
		}
	}
	namespace BlueShulkerBox
	{
		constexpr short BlueShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9344;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9345;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9346;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9347;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9348;
			return 9349;
		}
		short BlueShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace BlueStainedGlass
	{
		constexpr short BlueStainedGlass()
		{
			return 4106;
		}
	}
	namespace BlueStainedGlassPane
	{
		constexpr short BlueStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7217;
			if (East && North && South && !West) return 7218;
			if (East && North && !South && West) return 7221;
			if (East && North && !South && !West) return 7222;
			if (East && !North && South && West) return 7225;
			if (East && !North && South && !West) return 7226;
			if (East && !North && !South && West) return 7229;
			if (East && !North && !South && !West) return 7230;
			if (!East && North && South && West) return 7233;
			if (!East && North && South && !West) return 7234;
			if (!East && North && !South && West) return 7237;
			if (!East && North && !South && !West) return 7238;
			if (!East && !North && South && West) return 7241;
			if (!East && !North && South && !West) return 7242;
			if (!East && !North && !South && West) return 7245;
			return 7246;
		}
		short BlueStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace BlueTerracotta
	{
		constexpr short BlueTerracotta()
		{
			return 6858;
		}
	}
	namespace BlueWallBanner
	{
		constexpr short BlueWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8197;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8198;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8199;
			return 8200;
		}
		short BlueWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace BlueWool
	{
		constexpr short BlueWool()
		{
			return 1395;
		}
	}
	namespace BoneBlock
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short BoneBlock(enum Axis Axis)
		{
			if (Axis == Axis::X) return 9256;
			if (Axis == Axis::Y) return 9257;
			return 9258;
		}
		short BoneBlock();
		enum Axis Axis(short ID);
	}
	namespace Bookshelf
	{
		constexpr short Bookshelf()
		{
			return 1432;
		}
	}
	namespace BrainCoral
	{
		constexpr short BrainCoral()
		{
			return 9533;
		}
	}
	namespace BrainCoralBlock
	{
		constexpr short BrainCoralBlock()
		{
			return 9516;
		}
	}
	namespace BrainCoralFan
	{
		constexpr short BrainCoralFan()
		{
			return 9553;
		}
	}
	namespace BrainCoralWallFan
	{
		constexpr short BrainCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9609;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9611;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9613;
			return 9615;
		}
		short BrainCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace BrewingStand
	{
		constexpr short BrewingStand(bool HasBottle_0, bool HasBottle_1, bool HasBottle_2)
		{
			if (HasBottle_0 && HasBottle_1 && HasBottle_2) return 5133;
			if (HasBottle_0 && HasBottle_1 && !HasBottle_2) return 5134;
			if (HasBottle_0 && !HasBottle_1 && HasBottle_2) return 5135;
			if (HasBottle_0 && !HasBottle_1 && !HasBottle_2) return 5136;
			if (!HasBottle_0 && HasBottle_1 && HasBottle_2) return 5137;
			if (!HasBottle_0 && HasBottle_1 && !HasBottle_2) return 5138;
			if (!HasBottle_0 && !HasBottle_1 && HasBottle_2) return 5139;
			return 5140;
		}
		short BrewingStand();
		bool HasBottle_0(short ID);
		bool HasBottle_1(short ID);
		bool HasBottle_2(short ID);
	}
	namespace BrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short BrickSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8373;
			if (Type == Type::Bottom) return 8375;
			return 8377;
		}
		short BrickSlab();
		enum Type Type(short ID);
	}
	namespace BrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short BrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 4853;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 4855;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 4857;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 4859;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 4861;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 4863;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 4865;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 4867;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 4869;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 4871;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 4873;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 4875;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 4877;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 4879;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 4881;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 4883;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 4885;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 4887;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 4889;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 4891;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 4893;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 4895;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 4897;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 4899;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 4901;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 4903;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 4905;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 4907;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 4909;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 4911;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 4913;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 4915;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 4917;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 4919;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 4921;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 4923;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 4925;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 4927;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 4929;
			return 4931;
		}
		short BrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace BrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short BrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 10870;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 10871;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 10872;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 10876;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 10877;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 10878;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 10882;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 10883;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 10884;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 10888;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 10889;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 10890;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 10894;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 10895;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 10896;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 10900;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 10901;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 10902;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 10906;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 10907;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 10908;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 10912;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 10913;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 10914;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 10918;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 10919;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 10920;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 10924;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 10925;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 10926;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 10930;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 10931;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 10932;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 10936;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 10937;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 10938;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 10942;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 10943;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 10944;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 10948;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 10949;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 10950;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 10954;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 10955;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 10956;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 10960;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 10961;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 10962;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 10966;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 10967;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 10968;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 10972;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 10973;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 10974;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 10978;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 10979;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 10980;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 10984;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 10985;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 10986;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 10990;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 10991;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 10992;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 10996;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 10997;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 10998;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 11002;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 11003;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 11004;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 11008;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 11009;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11010;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 11014;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 11015;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 11016;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 11020;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 11021;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 11022;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 11026;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 11027;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 11028;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 11032;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 11033;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 11034;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 11038;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 11039;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 11040;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 11044;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 11045;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 11046;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 11050;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 11051;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 11052;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 11056;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 11057;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 11058;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 11062;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 11063;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 11064;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 11068;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 11069;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 11070;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 11074;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 11075;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 11076;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 11080;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 11081;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 11082;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 11086;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 11087;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 11088;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 11092;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 11093;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 11094;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 11098;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 11099;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 11100;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 11104;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 11105;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 11106;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 11110;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 11111;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 11112;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 11116;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 11117;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11118;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 11122;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 11123;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 11124;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 11128;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 11129;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 11130;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 11134;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 11135;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 11136;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 11140;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 11141;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 11142;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 11146;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 11147;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 11148;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 11152;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 11153;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 11154;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 11158;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 11159;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 11160;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 11164;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 11165;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 11166;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 11170;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 11171;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 11172;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 11176;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 11177;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 11178;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 11182;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 11183;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 11184;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 11188;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 11189;
			return 11190;
		}
		short BrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace Bricks
	{
		constexpr short Bricks()
		{
			return 1429;
		}
	}
	namespace BrownBanner
	{
		constexpr short BrownBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8089;
			if (Rotation == 1) return 8090;
			if (Rotation == 2) return 8091;
			if (Rotation == 3) return 8092;
			if (Rotation == 4) return 8093;
			if (Rotation == 5) return 8094;
			if (Rotation == 6) return 8095;
			if (Rotation == 7) return 8096;
			if (Rotation == 8) return 8097;
			if (Rotation == 9) return 8098;
			if (Rotation == 10) return 8099;
			if (Rotation == 11) return 8100;
			if (Rotation == 12) return 8101;
			if (Rotation == 13) return 8102;
			if (Rotation == 14) return 8103;
			return 8104;
		}
		short BrownBanner();
		unsigned char Rotation(short ID);
	}
	namespace BrownBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short BrownBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1241;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1242;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1243;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1244;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1245;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1246;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1247;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1248;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1249;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1250;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1251;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1252;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1253;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1254;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1255;
			return 1256;
		}
		short BrownBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace BrownCarpet
	{
		constexpr short BrownCarpet()
		{
			return 7878;
		}
	}
	namespace BrownConcrete
	{
		constexpr short BrownConcrete()
		{
			return 9450;
		}
	}
	namespace BrownConcretePowder
	{
		constexpr short BrownConcretePowder()
		{
			return 9466;
		}
	}
	namespace BrownGlazedTerracotta
	{
		constexpr short BrownGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9422;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9423;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9424;
			return 9425;
		}
		short BrownGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace BrownMushroom
	{
		constexpr short BrownMushroom()
		{
			return 1425;
		}
	}
	namespace BrownMushroomBlock
	{
		constexpr short BrownMushroomBlock(bool Down, bool East, bool North, bool South, bool Up, bool West)
		{
			if (Down && East && North && South && Up && West) return 4505;
			if (Down && East && North && South && Up && !West) return 4506;
			if (Down && East && North && South && !Up && West) return 4507;
			if (Down && East && North && South && !Up && !West) return 4508;
			if (Down && East && North && !South && Up && West) return 4509;
			if (Down && East && North && !South && Up && !West) return 4510;
			if (Down && East && North && !South && !Up && West) return 4511;
			if (Down && East && North && !South && !Up && !West) return 4512;
			if (Down && East && !North && South && Up && West) return 4513;
			if (Down && East && !North && South && Up && !West) return 4514;
			if (Down && East && !North && South && !Up && West) return 4515;
			if (Down && East && !North && South && !Up && !West) return 4516;
			if (Down && East && !North && !South && Up && West) return 4517;
			if (Down && East && !North && !South && Up && !West) return 4518;
			if (Down && East && !North && !South && !Up && West) return 4519;
			if (Down && East && !North && !South && !Up && !West) return 4520;
			if (Down && !East && North && South && Up && West) return 4521;
			if (Down && !East && North && South && Up && !West) return 4522;
			if (Down && !East && North && South && !Up && West) return 4523;
			if (Down && !East && North && South && !Up && !West) return 4524;
			if (Down && !East && North && !South && Up && West) return 4525;
			if (Down && !East && North && !South && Up && !West) return 4526;
			if (Down && !East && North && !South && !Up && West) return 4527;
			if (Down && !East && North && !South && !Up && !West) return 4528;
			if (Down && !East && !North && South && Up && West) return 4529;
			if (Down && !East && !North && South && Up && !West) return 4530;
			if (Down && !East && !North && South && !Up && West) return 4531;
			if (Down && !East && !North && South && !Up && !West) return 4532;
			if (Down && !East && !North && !South && Up && West) return 4533;
			if (Down && !East && !North && !South && Up && !West) return 4534;
			if (Down && !East && !North && !South && !Up && West) return 4535;
			if (Down && !East && !North && !South && !Up && !West) return 4536;
			if (!Down && East && North && South && Up && West) return 4537;
			if (!Down && East && North && South && Up && !West) return 4538;
			if (!Down && East && North && South && !Up && West) return 4539;
			if (!Down && East && North && South && !Up && !West) return 4540;
			if (!Down && East && North && !South && Up && West) return 4541;
			if (!Down && East && North && !South && Up && !West) return 4542;
			if (!Down && East && North && !South && !Up && West) return 4543;
			if (!Down && East && North && !South && !Up && !West) return 4544;
			if (!Down && East && !North && South && Up && West) return 4545;
			if (!Down && East && !North && South && Up && !West) return 4546;
			if (!Down && East && !North && South && !Up && West) return 4547;
			if (!Down && East && !North && South && !Up && !West) return 4548;
			if (!Down && East && !North && !South && Up && West) return 4549;
			if (!Down && East && !North && !South && Up && !West) return 4550;
			if (!Down && East && !North && !South && !Up && West) return 4551;
			if (!Down && East && !North && !South && !Up && !West) return 4552;
			if (!Down && !East && North && South && Up && West) return 4553;
			if (!Down && !East && North && South && Up && !West) return 4554;
			if (!Down && !East && North && South && !Up && West) return 4555;
			if (!Down && !East && North && South && !Up && !West) return 4556;
			if (!Down && !East && North && !South && Up && West) return 4557;
			if (!Down && !East && North && !South && Up && !West) return 4558;
			if (!Down && !East && North && !South && !Up && West) return 4559;
			if (!Down && !East && North && !South && !Up && !West) return 4560;
			if (!Down && !East && !North && South && Up && West) return 4561;
			if (!Down && !East && !North && South && Up && !West) return 4562;
			if (!Down && !East && !North && South && !Up && West) return 4563;
			if (!Down && !East && !North && South && !Up && !West) return 4564;
			if (!Down && !East && !North && !South && Up && West) return 4565;
			if (!Down && !East && !North && !South && Up && !West) return 4566;
			if (!Down && !East && !North && !South && !Up && West) return 4567;
			return 4568;
		}
		short BrownMushroomBlock();
		bool Down(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace BrownShulkerBox
	{
		constexpr short BrownShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9350;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9351;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9352;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9353;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9354;
			return 9355;
		}
		short BrownShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace BrownStainedGlass
	{
		constexpr short BrownStainedGlass()
		{
			return 4107;
		}
	}
	namespace BrownStainedGlassPane
	{
		constexpr short BrownStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7249;
			if (East && North && South && !West) return 7250;
			if (East && North && !South && West) return 7253;
			if (East && North && !South && !West) return 7254;
			if (East && !North && South && West) return 7257;
			if (East && !North && South && !West) return 7258;
			if (East && !North && !South && West) return 7261;
			if (East && !North && !South && !West) return 7262;
			if (!East && North && South && West) return 7265;
			if (!East && North && South && !West) return 7266;
			if (!East && North && !South && West) return 7269;
			if (!East && North && !South && !West) return 7270;
			if (!East && !North && South && West) return 7273;
			if (!East && !North && South && !West) return 7274;
			if (!East && !North && !South && West) return 7277;
			return 7278;
		}
		short BrownStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace BrownTerracotta
	{
		constexpr short BrownTerracotta()
		{
			return 6859;
		}
	}
	namespace BrownWallBanner
	{
		constexpr short BrownWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8201;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8202;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8203;
			return 8204;
		}
		short BrownWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace BrownWool
	{
		constexpr short BrownWool()
		{
			return 1396;
		}
	}
	namespace BubbleColumn
	{
		constexpr short BubbleColumn(bool Drag)
		{
			if (Drag) return 9667;
			return 9668;
		}
		short BubbleColumn();
		bool Drag(short ID);
	}
	namespace BubbleCoral
	{
		constexpr short BubbleCoral()
		{
			return 9535;
		}
	}
	namespace BubbleCoralBlock
	{
		constexpr short BubbleCoralBlock()
		{
			return 9517;
		}
	}
	namespace BubbleCoralFan
	{
		constexpr short BubbleCoralFan()
		{
			return 9555;
		}
	}
	namespace BubbleCoralWallFan
	{
		constexpr short BubbleCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9617;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9619;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9621;
			return 9623;
		}
		short BubbleCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace Cactus
	{
		constexpr short Cactus(unsigned char Age)
		{
			if (Age == 0) return 3931;
			if (Age == 1) return 3932;
			if (Age == 2) return 3933;
			if (Age == 3) return 3934;
			if (Age == 4) return 3935;
			if (Age == 5) return 3936;
			if (Age == 6) return 3937;
			if (Age == 7) return 3938;
			if (Age == 8) return 3939;
			if (Age == 9) return 3940;
			if (Age == 10) return 3941;
			if (Age == 11) return 3942;
			if (Age == 12) return 3943;
			if (Age == 13) return 3944;
			if (Age == 14) return 3945;
			return 3946;
		}
		short Cactus();
		unsigned char Age(short ID);
	}
	namespace Cake
	{
		constexpr short Cake(unsigned char Bites)
		{
			if (Bites == 0) return 4024;
			if (Bites == 1) return 4025;
			if (Bites == 2) return 4026;
			if (Bites == 3) return 4027;
			if (Bites == 4) return 4028;
			if (Bites == 5) return 4029;
			return 4030;
		}
		short Cake();
		unsigned char Bites(short ID);
	}
	namespace Campfire
	{
		constexpr short Campfire(eBlockFace Facing, bool Lit, bool SignalFire)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit && SignalFire) return 14891;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit && !SignalFire) return 14893;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit && SignalFire) return 14895;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit && !SignalFire) return 14897;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit && SignalFire) return 14899;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit && !SignalFire) return 14901;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit && SignalFire) return 14903;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit && !SignalFire) return 14905;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit && SignalFire) return 14907;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit && !SignalFire) return 14909;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit && SignalFire) return 14911;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit && !SignalFire) return 14913;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit && SignalFire) return 14915;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit && !SignalFire) return 14917;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Lit && SignalFire) return 14919;
			return 14921;
		}
		short Campfire();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
		bool SignalFire(short ID);
	}
	namespace Carrots
	{
		constexpr short Carrots(unsigned char Age)
		{
			if (Age == 0) return 6330;
			if (Age == 1) return 6331;
			if (Age == 2) return 6332;
			if (Age == 3) return 6333;
			if (Age == 4) return 6334;
			if (Age == 5) return 6335;
			if (Age == 6) return 6336;
			return 6337;
		}
		short Carrots();
		unsigned char Age(short ID);
	}
	namespace CartographyTable
	{
		constexpr short CartographyTable()
		{
			return 14819;
		}
	}
	namespace CarvedPumpkin
	{
		constexpr short CarvedPumpkin(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4016;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4017;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4018;
			return 4019;
		}
		short CarvedPumpkin();
		eBlockFace Facing(short ID);
	}
	namespace Cauldron
	{
		constexpr short Cauldron(unsigned char Level)
		{
			if (Level == 0) return 5141;
			if (Level == 1) return 5142;
			if (Level == 2) return 5143;
			return 5144;
		}
		short Cauldron();
		unsigned char Level(short ID);
	}
	namespace CaveAir
	{
		constexpr short CaveAir()
		{
			return 9666;
		}
	}
	namespace Chain
	{
		constexpr short Chain()
		{
			return 4730;
		}
	}
	namespace ChainCommandBlock
	{
		constexpr short ChainCommandBlock(bool Conditional, eBlockFace Facing)
		{
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 9237;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 9238;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 9239;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 9240;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 9241;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YM) return 9242;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 9243;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 9244;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 9245;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 9246;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 9247;
			return 9248;
		}
		short ChainCommandBlock();
		bool Conditional(short ID);
		eBlockFace Facing(short ID);
	}
	namespace Chest
	{
		enum class Type
		{
			Single,
			Left,
			Right
		};
		constexpr short Chest(eBlockFace Facing, enum Type Type)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Single) return 2035;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Left) return 2037;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Right) return 2039;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Single) return 2041;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Left) return 2043;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Right) return 2045;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Single) return 2047;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Left) return 2049;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Right) return 2051;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Type == Type::Single) return 2053;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Type == Type::Left) return 2055;
			return 2057;
		}
		short Chest();
		eBlockFace Facing(short ID);
		enum Type Type(short ID);
	}
	namespace ChippedAnvil
	{
		constexpr short ChippedAnvil(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6614;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6615;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6616;
			return 6617;
		}
		short ChippedAnvil();
		eBlockFace Facing(short ID);
	}
	namespace ChiseledNetherBricks
	{
		constexpr short ChiseledNetherBricks()
		{
			return 17101;
		}
	}
	namespace ChiseledPolishedBlackstone
	{
		constexpr short ChiseledPolishedBlackstone()
		{
			return 16253;
		}
	}
	namespace ChiseledQuartzBlock
	{
		constexpr short ChiseledQuartzBlock()
		{
			return 6739;
		}
	}
	namespace ChiseledRedSandstone
	{
		constexpr short ChiseledRedSandstone()
		{
			return 8218;
		}
	}
	namespace ChiseledSandstone
	{
		constexpr short ChiseledSandstone()
		{
			return 247;
		}
	}
	namespace ChiseledStoneBricks
	{
		constexpr short ChiseledStoneBricks()
		{
			return 4498;
		}
	}
	namespace ChorusFlower
	{
		constexpr short ChorusFlower(unsigned char Age)
		{
			if (Age == 0) return 9128;
			if (Age == 1) return 9129;
			if (Age == 2) return 9130;
			if (Age == 3) return 9131;
			if (Age == 4) return 9132;
			return 9133;
		}
		short ChorusFlower();
		unsigned char Age(short ID);
	}
	namespace ChorusPlant
	{
		constexpr short ChorusPlant(bool Down, bool East, bool North, bool South, bool Up, bool West)
		{
			if (Down && East && North && South && Up && West) return 9064;
			if (Down && East && North && South && Up && !West) return 9065;
			if (Down && East && North && South && !Up && West) return 9066;
			if (Down && East && North && South && !Up && !West) return 9067;
			if (Down && East && North && !South && Up && West) return 9068;
			if (Down && East && North && !South && Up && !West) return 9069;
			if (Down && East && North && !South && !Up && West) return 9070;
			if (Down && East && North && !South && !Up && !West) return 9071;
			if (Down && East && !North && South && Up && West) return 9072;
			if (Down && East && !North && South && Up && !West) return 9073;
			if (Down && East && !North && South && !Up && West) return 9074;
			if (Down && East && !North && South && !Up && !West) return 9075;
			if (Down && East && !North && !South && Up && West) return 9076;
			if (Down && East && !North && !South && Up && !West) return 9077;
			if (Down && East && !North && !South && !Up && West) return 9078;
			if (Down && East && !North && !South && !Up && !West) return 9079;
			if (Down && !East && North && South && Up && West) return 9080;
			if (Down && !East && North && South && Up && !West) return 9081;
			if (Down && !East && North && South && !Up && West) return 9082;
			if (Down && !East && North && South && !Up && !West) return 9083;
			if (Down && !East && North && !South && Up && West) return 9084;
			if (Down && !East && North && !South && Up && !West) return 9085;
			if (Down && !East && North && !South && !Up && West) return 9086;
			if (Down && !East && North && !South && !Up && !West) return 9087;
			if (Down && !East && !North && South && Up && West) return 9088;
			if (Down && !East && !North && South && Up && !West) return 9089;
			if (Down && !East && !North && South && !Up && West) return 9090;
			if (Down && !East && !North && South && !Up && !West) return 9091;
			if (Down && !East && !North && !South && Up && West) return 9092;
			if (Down && !East && !North && !South && Up && !West) return 9093;
			if (Down && !East && !North && !South && !Up && West) return 9094;
			if (Down && !East && !North && !South && !Up && !West) return 9095;
			if (!Down && East && North && South && Up && West) return 9096;
			if (!Down && East && North && South && Up && !West) return 9097;
			if (!Down && East && North && South && !Up && West) return 9098;
			if (!Down && East && North && South && !Up && !West) return 9099;
			if (!Down && East && North && !South && Up && West) return 9100;
			if (!Down && East && North && !South && Up && !West) return 9101;
			if (!Down && East && North && !South && !Up && West) return 9102;
			if (!Down && East && North && !South && !Up && !West) return 9103;
			if (!Down && East && !North && South && Up && West) return 9104;
			if (!Down && East && !North && South && Up && !West) return 9105;
			if (!Down && East && !North && South && !Up && West) return 9106;
			if (!Down && East && !North && South && !Up && !West) return 9107;
			if (!Down && East && !North && !South && Up && West) return 9108;
			if (!Down && East && !North && !South && Up && !West) return 9109;
			if (!Down && East && !North && !South && !Up && West) return 9110;
			if (!Down && East && !North && !South && !Up && !West) return 9111;
			if (!Down && !East && North && South && Up && West) return 9112;
			if (!Down && !East && North && South && Up && !West) return 9113;
			if (!Down && !East && North && South && !Up && West) return 9114;
			if (!Down && !East && North && South && !Up && !West) return 9115;
			if (!Down && !East && North && !South && Up && West) return 9116;
			if (!Down && !East && North && !South && Up && !West) return 9117;
			if (!Down && !East && North && !South && !Up && West) return 9118;
			if (!Down && !East && North && !South && !Up && !West) return 9119;
			if (!Down && !East && !North && South && Up && West) return 9120;
			if (!Down && !East && !North && South && Up && !West) return 9121;
			if (!Down && !East && !North && South && !Up && West) return 9122;
			if (!Down && !East && !North && South && !Up && !West) return 9123;
			if (!Down && !East && !North && !South && Up && West) return 9124;
			if (!Down && !East && !North && !South && Up && !West) return 9125;
			if (!Down && !East && !North && !South && !Up && West) return 9126;
			return 9127;
		}
		short ChorusPlant();
		bool Down(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace Clay
	{
		constexpr short Clay()
		{
			return 3947;
		}
	}
	namespace CoalBlock
	{
		constexpr short CoalBlock()
		{
			return 7883;
		}
	}
	namespace CoalOre
	{
		constexpr short CoalOre()
		{
			return 71;
		}
	}
	namespace CoarseDirt
	{
		constexpr short CoarseDirt()
		{
			return 11;
		}
	}
	namespace Cobblestone
	{
		constexpr short Cobblestone()
		{
			return 14;
		}
	}
	namespace CobblestoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short CobblestoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8367;
			if (Type == Type::Bottom) return 8369;
			return 8371;
		}
		short CobblestoneSlab();
		enum Type Type(short ID);
	}
	namespace CobblestoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short CobblestoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 3656;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 3658;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 3660;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 3662;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 3664;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 3666;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 3668;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 3670;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 3672;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 3674;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 3676;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 3678;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 3680;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 3682;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 3684;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 3686;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 3688;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 3690;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 3692;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 3694;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 3696;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 3698;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 3700;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 3702;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 3704;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 3706;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 3708;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 3710;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 3712;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 3714;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 3716;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 3718;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 3720;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 3722;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 3724;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 3726;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 3728;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 3730;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 3732;
			return 3734;
		}
		short CobblestoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace CobblestoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short CobblestoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 5660;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 5661;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 5662;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 5666;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 5667;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 5668;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 5672;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 5673;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 5674;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 5678;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 5679;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 5680;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 5684;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 5685;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 5686;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 5690;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 5691;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 5692;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 5696;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 5697;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 5698;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 5702;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 5703;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 5704;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 5708;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 5709;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 5710;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 5714;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 5715;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 5716;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 5720;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 5721;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 5722;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 5726;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 5727;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 5728;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 5732;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 5733;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 5734;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 5738;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 5739;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 5740;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 5744;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 5745;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 5746;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 5750;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 5751;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 5752;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 5756;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 5757;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 5758;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 5762;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 5763;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 5764;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 5768;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 5769;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 5770;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 5774;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 5775;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 5776;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 5780;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 5781;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 5782;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 5786;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 5787;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 5788;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 5792;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 5793;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 5794;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 5798;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 5799;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 5800;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 5804;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 5805;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 5806;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 5810;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 5811;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 5812;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 5816;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 5817;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 5818;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 5822;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 5823;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 5824;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 5828;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 5829;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 5830;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 5834;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 5835;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 5836;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 5840;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 5841;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 5842;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 5846;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 5847;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 5848;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 5852;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 5853;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 5854;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 5858;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 5859;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 5860;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 5864;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 5865;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 5866;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 5870;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 5871;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 5872;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 5876;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 5877;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 5878;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 5882;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 5883;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 5884;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 5888;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 5889;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 5890;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 5894;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 5895;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 5896;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 5900;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 5901;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 5902;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 5906;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 5907;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 5908;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 5912;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 5913;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 5914;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 5918;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 5919;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 5920;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 5924;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 5925;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 5926;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 5930;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 5931;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 5932;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 5936;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 5937;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 5938;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 5942;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 5943;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 5944;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 5948;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 5949;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 5950;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 5954;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 5955;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 5956;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 5960;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 5961;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 5962;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 5966;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 5967;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 5968;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 5972;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 5973;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 5974;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 5978;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 5979;
			return 5980;
		}
		short CobblestoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace Cobweb
	{
		constexpr short Cobweb()
		{
			return 1341;
		}
	}
	namespace Cocoa
	{
		constexpr short Cocoa(unsigned char Age, eBlockFace Facing)
		{
			if (Age == 0 && Facing == eBlockFace::BLOCK_FACE_ZM) return 5158;
			if (Age == 0 && Facing == eBlockFace::BLOCK_FACE_ZP) return 5159;
			if (Age == 0 && Facing == eBlockFace::BLOCK_FACE_XM) return 5160;
			if (Age == 0 && Facing == eBlockFace::BLOCK_FACE_XP) return 5161;
			if (Age == 1 && Facing == eBlockFace::BLOCK_FACE_ZM) return 5162;
			if (Age == 1 && Facing == eBlockFace::BLOCK_FACE_ZP) return 5163;
			if (Age == 1 && Facing == eBlockFace::BLOCK_FACE_XM) return 5164;
			if (Age == 1 && Facing == eBlockFace::BLOCK_FACE_XP) return 5165;
			if (Age == 2 && Facing == eBlockFace::BLOCK_FACE_ZM) return 5166;
			if (Age == 2 && Facing == eBlockFace::BLOCK_FACE_ZP) return 5167;
			if (Age == 2 && Facing == eBlockFace::BLOCK_FACE_XM) return 5168;
			return 5169;
		}
		short Cocoa();
		unsigned char Age(short ID);
		eBlockFace Facing(short ID);
	}
	namespace CommandBlock
	{
		constexpr short CommandBlock(bool Conditional, eBlockFace Facing)
		{
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 5644;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 5645;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 5646;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 5647;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 5648;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YM) return 5649;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 5650;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 5651;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 5652;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 5653;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 5654;
			return 5655;
		}
		short CommandBlock();
		bool Conditional(short ID);
		eBlockFace Facing(short ID);
	}
	namespace Comparator
	{
		enum class Mode
		{
			Compare,
			Subtract
		};
		constexpr short Comparator(eBlockFace Facing, enum Mode Mode, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Mode == Mode::Compare && Powered) return 6678;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Mode == Mode::Compare && !Powered) return 6679;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Mode == Mode::Subtract && Powered) return 6680;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Mode == Mode::Subtract && !Powered) return 6681;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Mode == Mode::Compare && Powered) return 6682;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Mode == Mode::Compare && !Powered) return 6683;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Mode == Mode::Subtract && Powered) return 6684;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Mode == Mode::Subtract && !Powered) return 6685;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Mode == Mode::Compare && Powered) return 6686;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Mode == Mode::Compare && !Powered) return 6687;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Mode == Mode::Subtract && Powered) return 6688;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Mode == Mode::Subtract && !Powered) return 6689;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Mode == Mode::Compare && Powered) return 6690;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Mode == Mode::Compare && !Powered) return 6691;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Mode == Mode::Subtract && Powered) return 6692;
			return 6693;
		}
		short Comparator();
		eBlockFace Facing(short ID);
		enum Mode Mode(short ID);
		bool Powered(short ID);
	}
	namespace Composter
	{
		constexpr short Composter(unsigned char Level)
		{
			if (Level == 0) return 15751;
			if (Level == 1) return 15752;
			if (Level == 2) return 15753;
			if (Level == 3) return 15754;
			if (Level == 4) return 15755;
			if (Level == 5) return 15756;
			if (Level == 6) return 15757;
			if (Level == 7) return 15758;
			return 15759;
		}
		short Composter();
		unsigned char Level(short ID);
	}
	namespace Conduit
	{
		constexpr short Conduit()
		{
			return 9650;
		}
	}
	namespace Cornflower
	{
		constexpr short Cornflower()
		{
			return 1422;
		}
	}
	namespace CrackedNetherBricks
	{
		constexpr short CrackedNetherBricks()
		{
			return 17102;
		}
	}
	namespace CrackedPolishedBlackstoneBricks
	{
		constexpr short CrackedPolishedBlackstoneBricks()
		{
			return 16252;
		}
	}
	namespace CrackedStoneBricks
	{
		constexpr short CrackedStoneBricks()
		{
			return 4497;
		}
	}
	namespace CraftingTable
	{
		constexpr short CraftingTable()
		{
			return 3356;
		}
	}
	namespace CreeperHead
	{
		constexpr short CreeperHead(unsigned char Rotation)
		{
			if (Rotation == 0) return 6570;
			if (Rotation == 1) return 6571;
			if (Rotation == 2) return 6572;
			if (Rotation == 3) return 6573;
			if (Rotation == 4) return 6574;
			if (Rotation == 5) return 6575;
			if (Rotation == 6) return 6576;
			if (Rotation == 7) return 6577;
			if (Rotation == 8) return 6578;
			if (Rotation == 9) return 6579;
			if (Rotation == 10) return 6580;
			if (Rotation == 11) return 6581;
			if (Rotation == 12) return 6582;
			if (Rotation == 13) return 6583;
			if (Rotation == 14) return 6584;
			return 6585;
		}
		short CreeperHead();
		unsigned char Rotation(short ID);
	}
	namespace CreeperWallHead
	{
		constexpr short CreeperWallHead(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6586;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6587;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6588;
			return 6589;
		}
		short CreeperWallHead();
		eBlockFace Facing(short ID);
	}
	namespace CrimsonButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short CrimsonButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 15479;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 15480;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 15481;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 15482;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 15483;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 15484;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 15485;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 15486;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 15487;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 15488;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 15489;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 15490;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 15491;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 15492;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 15493;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 15494;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 15495;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 15496;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 15497;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 15498;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 15499;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 15500;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 15501;
			return 15502;
		}
		short CrimsonButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace CrimsonDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short CrimsonDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 15527;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 15528;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 15529;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 15530;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 15531;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 15532;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 15533;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 15534;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 15535;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 15536;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 15537;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 15538;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 15539;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 15540;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 15541;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 15542;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 15543;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 15544;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 15545;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 15546;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 15547;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 15548;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 15549;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 15550;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 15551;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 15552;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 15553;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 15554;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 15555;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 15556;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 15557;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 15558;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 15559;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 15560;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 15561;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 15562;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 15563;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 15564;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 15565;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 15566;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 15567;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 15568;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 15569;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 15570;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 15571;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 15572;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 15573;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 15574;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 15575;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 15576;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 15577;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 15578;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 15579;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 15580;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 15581;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 15582;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 15583;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 15584;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 15585;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 15586;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 15587;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 15588;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 15589;
			return 15590;
		}
		short CrimsonDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace CrimsonFence
	{
		constexpr short CrimsonFence(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 15065;
			if (East && North && South && !West) return 15066;
			if (East && North && !South && West) return 15069;
			if (East && North && !South && !West) return 15070;
			if (East && !North && South && West) return 15073;
			if (East && !North && South && !West) return 15074;
			if (East && !North && !South && West) return 15077;
			if (East && !North && !South && !West) return 15078;
			if (!East && North && South && West) return 15081;
			if (!East && North && South && !West) return 15082;
			if (!East && North && !South && West) return 15085;
			if (!East && North && !South && !West) return 15086;
			if (!East && !North && South && West) return 15089;
			if (!East && !North && South && !West) return 15090;
			if (!East && !North && !South && West) return 15093;
			return 15094;
		}
		short CrimsonFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace CrimsonFenceGate
	{
		constexpr short CrimsonFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && Powered) return 15255;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && !Powered) return 15256;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && Powered) return 15257;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && !Powered) return 15258;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && Powered) return 15259;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && !Powered) return 15260;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && Powered) return 15261;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && !Powered) return 15262;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && Powered) return 15263;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && !Powered) return 15264;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && Powered) return 15265;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && !Powered) return 15266;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && Powered) return 15267;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && !Powered) return 15268;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && Powered) return 15269;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && !Powered) return 15270;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && Powered) return 15271;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && !Powered) return 15272;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && Powered) return 15273;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && !Powered) return 15274;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && Powered) return 15275;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && !Powered) return 15276;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && Powered) return 15277;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && !Powered) return 15278;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && Powered) return 15279;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && !Powered) return 15280;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && Powered) return 15281;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && !Powered) return 15282;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && Powered) return 15283;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && !Powered) return 15284;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && !Open && Powered) return 15285;
			return 15286;
		}
		short CrimsonFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace CrimsonFungus
	{
		constexpr short CrimsonFungus()
		{
			return 14988;
		}
	}
	namespace CrimsonHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short CrimsonHyphae(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14981;
			if (Axis == Axis::Y) return 14982;
			return 14983;
		}
		short CrimsonHyphae();
		enum Axis Axis(short ID);
	}
	namespace CrimsonNylium
	{
		constexpr short CrimsonNylium()
		{
			return 14987;
		}
	}
	namespace CrimsonPlanks
	{
		constexpr short CrimsonPlanks()
		{
			return 15045;
		}
	}
	namespace CrimsonPressurePlate
	{
		constexpr short CrimsonPressurePlate(bool Powered)
		{
			if (Powered) return 15059;
			return 15060;
		}
		short CrimsonPressurePlate();
		bool Powered(short ID);
	}
	namespace CrimsonRoots
	{
		constexpr short CrimsonRoots()
		{
			return 15044;
		}
	}
	namespace CrimsonSign
	{
		constexpr short CrimsonSign(unsigned char Rotation)
		{
			if (Rotation == 0) return 15656;
			if (Rotation == 1) return 15658;
			if (Rotation == 2) return 15660;
			if (Rotation == 3) return 15662;
			if (Rotation == 4) return 15664;
			if (Rotation == 5) return 15666;
			if (Rotation == 6) return 15668;
			if (Rotation == 7) return 15670;
			if (Rotation == 8) return 15672;
			if (Rotation == 9) return 15674;
			if (Rotation == 10) return 15676;
			if (Rotation == 11) return 15678;
			if (Rotation == 12) return 15680;
			if (Rotation == 13) return 15682;
			if (Rotation == 14) return 15684;
			return 15686;
		}
		short CrimsonSign();
		unsigned char Rotation(short ID);
	}
	namespace CrimsonSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short CrimsonSlab(enum Type Type)
		{
			if (Type == Type::Top) return 15048;
			if (Type == Type::Bottom) return 15050;
			return 15052;
		}
		short CrimsonSlab();
		enum Type Type(short ID);
	}
	namespace CrimsonStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short CrimsonStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 15320;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 15322;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 15324;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 15326;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 15328;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 15330;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15332;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 15334;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15336;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 15338;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 15340;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 15342;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 15344;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 15346;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 15348;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 15350;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15352;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 15354;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15356;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 15358;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 15360;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 15362;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 15364;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 15366;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 15368;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 15370;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15372;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 15374;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15376;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 15378;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 15380;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 15382;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 15384;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 15386;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 15388;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 15390;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15392;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 15394;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15396;
			return 15398;
		}
		short CrimsonStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace CrimsonStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short CrimsonStem(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14975;
			if (Axis == Axis::Y) return 14976;
			return 14977;
		}
		short CrimsonStem();
		enum Axis Axis(short ID);
	}
	namespace CrimsonTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short CrimsonTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && Powered) return 15128;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && !Powered) return 15130;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && Powered) return 15132;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && !Powered) return 15134;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && Powered) return 15136;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && !Powered) return 15138;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && Powered) return 15140;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && !Powered) return 15142;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && Powered) return 15144;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && !Powered) return 15146;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && Powered) return 15148;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && !Powered) return 15150;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && Powered) return 15152;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && !Powered) return 15154;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && Powered) return 15156;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && !Powered) return 15158;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && Powered) return 15160;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && !Powered) return 15162;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && Powered) return 15164;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && !Powered) return 15166;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && Powered) return 15168;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && !Powered) return 15170;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && Powered) return 15172;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && !Powered) return 15174;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && Powered) return 15176;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && !Powered) return 15178;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && Powered) return 15180;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && !Powered) return 15182;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && Powered) return 15184;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && !Powered) return 15186;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && !Open && Powered) return 15188;
			return 15190;
		}
		short CrimsonTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace CrimsonWallSign
	{
		constexpr short CrimsonWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 15720;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 15722;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 15724;
			return 15726;
		}
		short CrimsonWallSign();
		eBlockFace Facing(short ID);
	}
	namespace CryingObsidian
	{
		constexpr short CryingObsidian()
		{
			return 15828;
		}
	}
	namespace CutRedSandstone
	{
		constexpr short CutRedSandstone()
		{
			return 8219;
		}
	}
	namespace CutRedSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short CutRedSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8403;
			if (Type == Type::Bottom) return 8405;
			return 8407;
		}
		short CutRedSandstoneSlab();
		enum Type Type(short ID);
	}
	namespace CutSandstone
	{
		constexpr short CutSandstone()
		{
			return 248;
		}
	}
	namespace CutSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short CutSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8355;
			if (Type == Type::Bottom) return 8357;
			return 8359;
		}
		short CutSandstoneSlab();
		enum Type Type(short ID);
	}
	namespace CyanBanner
	{
		constexpr short CyanBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8041;
			if (Rotation == 1) return 8042;
			if (Rotation == 2) return 8043;
			if (Rotation == 3) return 8044;
			if (Rotation == 4) return 8045;
			if (Rotation == 5) return 8046;
			if (Rotation == 6) return 8047;
			if (Rotation == 7) return 8048;
			if (Rotation == 8) return 8049;
			if (Rotation == 9) return 8050;
			if (Rotation == 10) return 8051;
			if (Rotation == 11) return 8052;
			if (Rotation == 12) return 8053;
			if (Rotation == 13) return 8054;
			if (Rotation == 14) return 8055;
			return 8056;
		}
		short CyanBanner();
		unsigned char Rotation(short ID);
	}
	namespace CyanBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short CyanBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1193;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1194;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1195;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1196;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1197;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1198;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1199;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1200;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1201;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1202;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1203;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1204;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1205;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1206;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1207;
			return 1208;
		}
		short CyanBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace CyanCarpet
	{
		constexpr short CyanCarpet()
		{
			return 7875;
		}
	}
	namespace CyanConcrete
	{
		constexpr short CyanConcrete()
		{
			return 9447;
		}
	}
	namespace CyanConcretePowder
	{
		constexpr short CyanConcretePowder()
		{
			return 9463;
		}
	}
	namespace CyanGlazedTerracotta
	{
		constexpr short CyanGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9410;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9411;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9412;
			return 9413;
		}
		short CyanGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace CyanShulkerBox
	{
		constexpr short CyanShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9332;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9333;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9334;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9335;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9336;
			return 9337;
		}
		short CyanShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace CyanStainedGlass
	{
		constexpr short CyanStainedGlass()
		{
			return 4104;
		}
	}
	namespace CyanStainedGlassPane
	{
		constexpr short CyanStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7153;
			if (East && North && South && !West) return 7154;
			if (East && North && !South && West) return 7157;
			if (East && North && !South && !West) return 7158;
			if (East && !North && South && West) return 7161;
			if (East && !North && South && !West) return 7162;
			if (East && !North && !South && West) return 7165;
			if (East && !North && !South && !West) return 7166;
			if (!East && North && South && West) return 7169;
			if (!East && North && South && !West) return 7170;
			if (!East && North && !South && West) return 7173;
			if (!East && North && !South && !West) return 7174;
			if (!East && !North && South && West) return 7177;
			if (!East && !North && South && !West) return 7178;
			if (!East && !North && !South && West) return 7181;
			return 7182;
		}
		short CyanStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace CyanTerracotta
	{
		constexpr short CyanTerracotta()
		{
			return 6856;
		}
	}
	namespace CyanWallBanner
	{
		constexpr short CyanWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8189;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8190;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8191;
			return 8192;
		}
		short CyanWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace CyanWool
	{
		constexpr short CyanWool()
		{
			return 1393;
		}
	}
	namespace DamagedAnvil
	{
		constexpr short DamagedAnvil(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6618;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6619;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6620;
			return 6621;
		}
		short DamagedAnvil();
		eBlockFace Facing(short ID);
	}
	namespace Dandelion
	{
		constexpr short Dandelion()
		{
			return 1412;
		}
	}
	namespace DarkOakButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short DarkOakButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6466;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6467;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6468;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6469;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6470;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6471;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6472;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6473;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6474;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6475;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6476;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6477;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6478;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6479;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6480;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6481;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6482;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6483;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6484;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6485;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6486;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6487;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6488;
			return 6489;
		}
		short DarkOakButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace DarkOakDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short DarkOakDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8994;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8995;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8996;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8997;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8998;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8999;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 9000;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 9001;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 9002;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 9003;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 9004;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 9005;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 9006;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 9007;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 9008;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 9009;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 9010;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 9011;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 9012;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 9013;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 9014;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 9015;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 9016;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 9017;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 9018;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 9019;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 9020;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 9021;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 9022;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 9023;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 9024;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 9025;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 9026;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 9027;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 9028;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 9029;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 9030;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 9031;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 9032;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 9033;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 9034;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 9035;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 9036;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 9037;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 9038;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 9039;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 9040;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 9041;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 9042;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 9043;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 9044;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 9045;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 9046;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 9047;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 9048;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 9049;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 9050;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 9051;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 9052;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 9053;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 9054;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 9055;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 9056;
			return 9057;
		}
		short DarkOakDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace DarkOakFence
	{
		constexpr short DarkOakFence(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 8708;
			if (East && North && South && !West) return 8709;
			if (East && North && !South && West) return 8712;
			if (East && North && !South && !West) return 8713;
			if (East && !North && South && West) return 8716;
			if (East && !North && South && !West) return 8717;
			if (East && !North && !South && West) return 8720;
			if (East && !North && !South && !West) return 8721;
			if (!East && North && South && West) return 8724;
			if (!East && North && South && !West) return 8725;
			if (!East && North && !South && West) return 8728;
			if (!East && North && !South && !West) return 8729;
			if (!East && !North && South && West) return 8732;
			if (!East && !North && South && !West) return 8733;
			if (!East && !North && !South && West) return 8736;
			return 8737;
		}
		short DarkOakFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace DarkOakFenceGate
	{
		constexpr short DarkOakFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && Powered) return 8546;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && !Powered) return 8547;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && Powered) return 8548;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && !Powered) return 8549;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && Powered) return 8550;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && !Powered) return 8551;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && Powered) return 8552;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && !Powered) return 8553;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && Powered) return 8554;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && !Powered) return 8555;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && Powered) return 8556;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && !Powered) return 8557;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && Powered) return 8558;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && !Powered) return 8559;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && Powered) return 8560;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && !Powered) return 8561;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && Powered) return 8562;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && !Powered) return 8563;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && Powered) return 8564;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && !Powered) return 8565;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && Powered) return 8566;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && !Powered) return 8567;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && Powered) return 8568;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && !Powered) return 8569;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && Powered) return 8570;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && !Powered) return 8571;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && Powered) return 8572;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && !Powered) return 8573;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && Powered) return 8574;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && !Powered) return 8575;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && !Open && Powered) return 8576;
			return 8577;
		}
		short DarkOakFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace DarkOakLeaves
	{
		constexpr short DarkOakLeaves(unsigned char Distance, bool Persistent)
		{
			if (Distance == 1 && Persistent) return 215;
			if (Distance == 1 && !Persistent) return 216;
			if (Distance == 2 && Persistent) return 217;
			if (Distance == 2 && !Persistent) return 218;
			if (Distance == 3 && Persistent) return 219;
			if (Distance == 3 && !Persistent) return 220;
			if (Distance == 4 && Persistent) return 221;
			if (Distance == 4 && !Persistent) return 222;
			if (Distance == 5 && Persistent) return 223;
			if (Distance == 5 && !Persistent) return 224;
			if (Distance == 6 && Persistent) return 225;
			if (Distance == 6 && !Persistent) return 226;
			if (Distance == 7 && Persistent) return 227;
			return 228;
		}
		short DarkOakLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace DarkOakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short DarkOakLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 88;
			if (Axis == Axis::Y) return 89;
			return 90;
		}
		short DarkOakLog();
		enum Axis Axis(short ID);
	}
	namespace DarkOakPlanks
	{
		constexpr short DarkOakPlanks()
		{
			return 20;
		}
	}
	namespace DarkOakPressurePlate
	{
		constexpr short DarkOakPressurePlate(bool Powered)
		{
			if (Powered) return 3883;
			return 3884;
		}
		short DarkOakPressurePlate();
		bool Powered(short ID);
	}
	namespace DarkOakSapling
	{
		constexpr short DarkOakSapling(unsigned char Stage)
		{
			if (Stage == 0) return 31;
			return 32;
		}
		short DarkOakSapling();
		unsigned char Stage(short ID);
	}
	namespace DarkOakSign
	{
		constexpr short DarkOakSign(unsigned char Rotation)
		{
			if (Rotation == 0) return 3542;
			if (Rotation == 1) return 3544;
			if (Rotation == 2) return 3546;
			if (Rotation == 3) return 3548;
			if (Rotation == 4) return 3550;
			if (Rotation == 5) return 3552;
			if (Rotation == 6) return 3554;
			if (Rotation == 7) return 3556;
			if (Rotation == 8) return 3558;
			if (Rotation == 9) return 3560;
			if (Rotation == 10) return 3562;
			if (Rotation == 11) return 3564;
			if (Rotation == 12) return 3566;
			if (Rotation == 13) return 3568;
			if (Rotation == 14) return 3570;
			return 3572;
		}
		short DarkOakSign();
		unsigned char Rotation(short ID);
	}
	namespace DarkOakSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short DarkOakSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8331;
			if (Type == Type::Bottom) return 8333;
			return 8335;
		}
		short DarkOakSlab();
		enum Type Type(short ID);
	}
	namespace DarkOakStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short DarkOakStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 7456;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 7458;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 7460;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 7462;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 7464;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 7466;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7468;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7470;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7472;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7474;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 7476;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 7478;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 7480;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 7482;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 7484;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 7486;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7488;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7490;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7492;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 7494;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 7496;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 7498;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 7500;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 7502;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 7504;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 7506;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7508;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7510;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7512;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7514;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 7516;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 7518;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 7520;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 7522;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 7524;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 7526;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7528;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7530;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7532;
			return 7534;
		}
		short DarkOakStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace DarkOakTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short DarkOakTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && Powered) return 4432;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && !Powered) return 4434;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && Powered) return 4436;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && !Powered) return 4438;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && Powered) return 4440;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && !Powered) return 4442;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && Powered) return 4444;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && !Powered) return 4446;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && Powered) return 4448;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && !Powered) return 4450;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && Powered) return 4452;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && !Powered) return 4454;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && Powered) return 4456;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && !Powered) return 4458;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && Powered) return 4460;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && !Powered) return 4462;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && Powered) return 4464;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && !Powered) return 4466;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && Powered) return 4468;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && !Powered) return 4470;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && Powered) return 4472;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && !Powered) return 4474;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && Powered) return 4476;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && !Powered) return 4478;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && Powered) return 4480;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && !Powered) return 4482;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && Powered) return 4484;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && !Powered) return 4486;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && Powered) return 4488;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && !Powered) return 4490;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && !Open && Powered) return 4492;
			return 4494;
		}
		short DarkOakTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace DarkOakWallSign
	{
		constexpr short DarkOakWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3776;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3778;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 3780;
			return 3782;
		}
		short DarkOakWallSign();
		eBlockFace Facing(short ID);
	}
	namespace DarkOakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short DarkOakWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 124;
			if (Axis == Axis::Y) return 125;
			return 126;
		}
		short DarkOakWood();
		enum Axis Axis(short ID);
	}
	namespace DarkPrismarine
	{
		constexpr short DarkPrismarine()
		{
			return 7603;
		}
	}
	namespace DarkPrismarineSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short DarkPrismarineSlab(enum Type Type)
		{
			if (Type == Type::Top) return 7857;
			if (Type == Type::Bottom) return 7859;
			return 7861;
		}
		short DarkPrismarineSlab();
		enum Type Type(short ID);
	}
	namespace DarkPrismarineStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short DarkPrismarineStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 7765;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 7767;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 7769;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 7771;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 7773;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 7775;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7777;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7779;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7781;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7783;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 7785;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 7787;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 7789;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 7791;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 7793;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 7795;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7797;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7799;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7801;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 7803;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 7805;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 7807;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 7809;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 7811;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 7813;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 7815;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7817;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7819;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7821;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7823;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 7825;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 7827;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 7829;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 7831;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 7833;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 7835;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7837;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7839;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7841;
			return 7843;
		}
		short DarkPrismarineStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace DaylightDetector
	{
		constexpr short DaylightDetector(bool Inverted, unsigned char Power)
		{
			if (Inverted && Power == 0) return 6694;
			if (Inverted && Power == 1) return 6695;
			if (Inverted && Power == 2) return 6696;
			if (Inverted && Power == 3) return 6697;
			if (Inverted && Power == 4) return 6698;
			if (Inverted && Power == 5) return 6699;
			if (Inverted && Power == 6) return 6700;
			if (Inverted && Power == 7) return 6701;
			if (Inverted && Power == 8) return 6702;
			if (Inverted && Power == 9) return 6703;
			if (Inverted && Power == 10) return 6704;
			if (Inverted && Power == 11) return 6705;
			if (Inverted && Power == 12) return 6706;
			if (Inverted && Power == 13) return 6707;
			if (Inverted && Power == 14) return 6708;
			if (Inverted && Power == 15) return 6709;
			if (!Inverted && Power == 0) return 6710;
			if (!Inverted && Power == 1) return 6711;
			if (!Inverted && Power == 2) return 6712;
			if (!Inverted && Power == 3) return 6713;
			if (!Inverted && Power == 4) return 6714;
			if (!Inverted && Power == 5) return 6715;
			if (!Inverted && Power == 6) return 6716;
			if (!Inverted && Power == 7) return 6717;
			if (!Inverted && Power == 8) return 6718;
			if (!Inverted && Power == 9) return 6719;
			if (!Inverted && Power == 10) return 6720;
			if (!Inverted && Power == 11) return 6721;
			if (!Inverted && Power == 12) return 6722;
			if (!Inverted && Power == 13) return 6723;
			if (!Inverted && Power == 14) return 6724;
			return 6725;
		}
		short DaylightDetector();
		bool Inverted(short ID);
		unsigned char Power(short ID);
	}
	namespace DeadBrainCoral
	{
		constexpr short DeadBrainCoral()
		{
			return 9523;
		}
	}
	namespace DeadBrainCoralBlock
	{
		constexpr short DeadBrainCoralBlock()
		{
			return 9511;
		}
	}
	namespace DeadBrainCoralFan
	{
		constexpr short DeadBrainCoralFan()
		{
			return 9543;
		}
	}
	namespace DeadBrainCoralWallFan
	{
		constexpr short DeadBrainCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9569;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9571;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9573;
			return 9575;
		}
		short DeadBrainCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace DeadBubbleCoral
	{
		constexpr short DeadBubbleCoral()
		{
			return 9525;
		}
	}
	namespace DeadBubbleCoralBlock
	{
		constexpr short DeadBubbleCoralBlock()
		{
			return 9512;
		}
	}
	namespace DeadBubbleCoralFan
	{
		constexpr short DeadBubbleCoralFan()
		{
			return 9545;
		}
	}
	namespace DeadBubbleCoralWallFan
	{
		constexpr short DeadBubbleCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9577;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9579;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9581;
			return 9583;
		}
		short DeadBubbleCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace DeadBush
	{
		constexpr short DeadBush()
		{
			return 1344;
		}
	}
	namespace DeadFireCoral
	{
		constexpr short DeadFireCoral()
		{
			return 9527;
		}
	}
	namespace DeadFireCoralBlock
	{
		constexpr short DeadFireCoralBlock()
		{
			return 9513;
		}
	}
	namespace DeadFireCoralFan
	{
		constexpr short DeadFireCoralFan()
		{
			return 9547;
		}
	}
	namespace DeadFireCoralWallFan
	{
		constexpr short DeadFireCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9585;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9587;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9589;
			return 9591;
		}
		short DeadFireCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace DeadHornCoral
	{
		constexpr short DeadHornCoral()
		{
			return 9529;
		}
	}
	namespace DeadHornCoralBlock
	{
		constexpr short DeadHornCoralBlock()
		{
			return 9514;
		}
	}
	namespace DeadHornCoralFan
	{
		constexpr short DeadHornCoralFan()
		{
			return 9549;
		}
	}
	namespace DeadHornCoralWallFan
	{
		constexpr short DeadHornCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9593;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9595;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9597;
			return 9599;
		}
		short DeadHornCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace DeadTubeCoral
	{
		constexpr short DeadTubeCoral()
		{
			return 9521;
		}
	}
	namespace DeadTubeCoralBlock
	{
		constexpr short DeadTubeCoralBlock()
		{
			return 9510;
		}
	}
	namespace DeadTubeCoralFan
	{
		constexpr short DeadTubeCoralFan()
		{
			return 9541;
		}
	}
	namespace DeadTubeCoralWallFan
	{
		constexpr short DeadTubeCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9561;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9563;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9565;
			return 9567;
		}
		short DeadTubeCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace DetectorRail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth
		};
		constexpr short DetectorRail(bool Powered, enum Shape Shape)
		{
			if (Powered && Shape == Shape::NorthSouth) return 1317;
			if (Powered && Shape == Shape::EastWest) return 1318;
			if (Powered && Shape == Shape::AscendingEast) return 1319;
			if (Powered && Shape == Shape::AscendingWest) return 1320;
			if (Powered && Shape == Shape::AscendingNorth) return 1321;
			if (Powered && Shape == Shape::AscendingSouth) return 1322;
			if (!Powered && Shape == Shape::NorthSouth) return 1323;
			if (!Powered && Shape == Shape::EastWest) return 1324;
			if (!Powered && Shape == Shape::AscendingEast) return 1325;
			if (!Powered && Shape == Shape::AscendingWest) return 1326;
			if (!Powered && Shape == Shape::AscendingNorth) return 1327;
			return 1328;
		}
		short DetectorRail();
		bool Powered(short ID);
		enum Shape Shape(short ID);
	}
	namespace DiamondBlock
	{
		constexpr short DiamondBlock()
		{
			return 3355;
		}
	}
	namespace DiamondOre
	{
		constexpr short DiamondOre()
		{
			return 3354;
		}
	}
	namespace Diorite
	{
		constexpr short Diorite()
		{
			return 4;
		}
	}
	namespace DioriteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short DioriteSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10862;
			if (Type == Type::Bottom) return 10864;
			return 10866;
		}
		short DioriteSlab();
		enum Type Type(short ID);
	}
	namespace DioriteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short DioriteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 10710;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 10712;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 10714;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 10716;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 10718;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10720;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10722;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10724;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10726;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10728;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10730;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10732;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10734;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10736;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10738;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10740;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10742;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10744;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10746;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10748;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10750;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10752;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10754;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10756;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10758;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10760;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10762;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10764;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10766;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10768;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10770;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10772;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10774;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10776;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10778;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10780;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10782;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10784;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10786;
			return 10788;
		}
		short DioriteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace DioriteWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short DioriteWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 14434;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 14435;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 14436;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 14440;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 14441;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 14442;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 14446;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 14447;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 14448;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 14452;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 14453;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 14454;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 14458;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 14459;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 14460;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 14464;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 14465;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 14466;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 14470;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 14471;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 14472;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 14476;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 14477;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 14478;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 14482;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 14483;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 14484;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 14488;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 14489;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 14490;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 14494;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 14495;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 14496;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 14500;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 14501;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 14502;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 14506;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 14507;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 14508;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 14512;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 14513;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 14514;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 14518;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 14519;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 14520;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 14524;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 14525;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 14526;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 14530;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 14531;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 14532;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 14536;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 14537;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 14538;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 14542;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 14543;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 14544;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 14548;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 14549;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 14550;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 14554;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 14555;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 14556;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 14560;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 14561;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 14562;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 14566;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 14567;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 14568;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 14572;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 14573;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 14574;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 14578;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 14579;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 14580;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 14584;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 14585;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 14586;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 14590;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 14591;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 14592;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 14596;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 14597;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 14598;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 14602;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 14603;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 14604;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 14608;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 14609;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 14610;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 14614;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 14615;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 14616;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 14620;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 14621;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 14622;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 14626;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 14627;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 14628;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 14632;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 14633;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 14634;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 14638;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 14639;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 14640;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 14644;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 14645;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 14646;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 14650;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 14651;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 14652;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 14656;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 14657;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 14658;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 14662;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 14663;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 14664;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 14668;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 14669;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 14670;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 14674;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 14675;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 14676;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 14680;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 14681;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 14682;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 14686;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 14687;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 14688;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 14692;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 14693;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 14694;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 14698;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 14699;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 14700;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 14704;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 14705;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 14706;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 14710;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 14711;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 14712;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 14716;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 14717;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 14718;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 14722;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 14723;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 14724;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 14728;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 14729;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 14730;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 14734;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 14735;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 14736;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 14740;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 14741;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 14742;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 14746;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 14747;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 14748;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 14752;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 14753;
			return 14754;
		}
		short DioriteWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace Dirt
	{
		constexpr short Dirt()
		{
			return 10;
		}
	}
	namespace Dispenser
	{
		constexpr short Dispenser(eBlockFace Facing, bool Triggered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Triggered) return 234;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Triggered) return 235;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Triggered) return 236;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Triggered) return 237;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Triggered) return 238;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Triggered) return 239;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Triggered) return 240;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Triggered) return 241;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Triggered) return 242;
			if (Facing == eBlockFace::BLOCK_FACE_YP && !Triggered) return 243;
			if (Facing == eBlockFace::BLOCK_FACE_YM && Triggered) return 244;
			return 245;
		}
		short Dispenser();
		eBlockFace Facing(short ID);
		bool Triggered(short ID);
	}
	namespace DragonEgg
	{
		constexpr short DragonEgg()
		{
			return 5155;
		}
	}
	namespace DragonHead
	{
		constexpr short DragonHead(unsigned char Rotation)
		{
			if (Rotation == 0) return 6590;
			if (Rotation == 1) return 6591;
			if (Rotation == 2) return 6592;
			if (Rotation == 3) return 6593;
			if (Rotation == 4) return 6594;
			if (Rotation == 5) return 6595;
			if (Rotation == 6) return 6596;
			if (Rotation == 7) return 6597;
			if (Rotation == 8) return 6598;
			if (Rotation == 9) return 6599;
			if (Rotation == 10) return 6600;
			if (Rotation == 11) return 6601;
			if (Rotation == 12) return 6602;
			if (Rotation == 13) return 6603;
			if (Rotation == 14) return 6604;
			return 6605;
		}
		short DragonHead();
		unsigned char Rotation(short ID);
	}
	namespace DragonWallHead
	{
		constexpr short DragonWallHead(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6606;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6607;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6608;
			return 6609;
		}
		short DragonWallHead();
		eBlockFace Facing(short ID);
	}
	namespace DriedKelpBlock
	{
		constexpr short DriedKelpBlock()
		{
			return 9497;
		}
	}
	namespace Dropper
	{
		constexpr short Dropper(eBlockFace Facing, bool Triggered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Triggered) return 6835;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Triggered) return 6836;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Triggered) return 6837;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Triggered) return 6838;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Triggered) return 6839;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Triggered) return 6840;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Triggered) return 6841;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Triggered) return 6842;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Triggered) return 6843;
			if (Facing == eBlockFace::BLOCK_FACE_YP && !Triggered) return 6844;
			if (Facing == eBlockFace::BLOCK_FACE_YM && Triggered) return 6845;
			return 6846;
		}
		short Dropper();
		eBlockFace Facing(short ID);
		bool Triggered(short ID);
	}
	namespace EmeraldBlock
	{
		constexpr short EmeraldBlock()
		{
			return 5403;
		}
	}
	namespace EmeraldOre
	{
		constexpr short EmeraldOre()
		{
			return 5250;
		}
	}
	namespace EnchantingTable
	{
		constexpr short EnchantingTable()
		{
			return 5132;
		}
	}
	namespace EndGateway
	{
		constexpr short EndGateway()
		{
			return 9224;
		}
	}
	namespace EndPortal
	{
		constexpr short EndPortal()
		{
			return 5145;
		}
	}
	namespace EndPortalFrame
	{
		constexpr short EndPortalFrame(bool Eye, eBlockFace Facing)
		{
			if (Eye && Facing == eBlockFace::BLOCK_FACE_ZM) return 5146;
			if (Eye && Facing == eBlockFace::BLOCK_FACE_ZP) return 5147;
			if (Eye && Facing == eBlockFace::BLOCK_FACE_XM) return 5148;
			if (Eye && Facing == eBlockFace::BLOCK_FACE_XP) return 5149;
			if (!Eye && Facing == eBlockFace::BLOCK_FACE_ZM) return 5150;
			if (!Eye && Facing == eBlockFace::BLOCK_FACE_ZP) return 5151;
			if (!Eye && Facing == eBlockFace::BLOCK_FACE_XM) return 5152;
			return 5153;
		}
		short EndPortalFrame();
		bool Eye(short ID);
		eBlockFace Facing(short ID);
	}
	namespace EndRod
	{
		constexpr short EndRod(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9058;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9059;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9060;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9061;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9062;
			return 9063;
		}
		short EndRod();
		eBlockFace Facing(short ID);
	}
	namespace EndStone
	{
		constexpr short EndStone()
		{
			return 5154;
		}
	}
	namespace EndStoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short EndStoneBrickSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10820;
			if (Type == Type::Bottom) return 10822;
			return 10824;
		}
		short EndStoneBrickSlab();
		enum Type Type(short ID);
	}
	namespace EndStoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short EndStoneBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 10070;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 10072;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 10074;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 10076;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 10078;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10080;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10082;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10084;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10086;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10088;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10090;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10092;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10094;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10096;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10098;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10100;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10102;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10104;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10106;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10108;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10110;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10112;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10114;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10116;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10118;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10120;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10122;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10124;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10126;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10128;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10130;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10132;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10134;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10136;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10138;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10140;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10142;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10144;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10146;
			return 10148;
		}
		short EndStoneBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace EndStoneBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short EndStoneBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 14110;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 14111;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 14112;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 14116;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 14117;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 14118;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 14122;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 14123;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 14124;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 14128;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 14129;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 14130;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 14134;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 14135;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 14136;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 14140;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 14141;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 14142;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 14146;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 14147;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 14148;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 14152;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 14153;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 14154;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 14158;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 14159;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 14160;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 14164;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 14165;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 14166;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 14170;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 14171;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 14172;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 14176;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 14177;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 14178;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 14182;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 14183;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 14184;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 14188;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 14189;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 14190;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 14194;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 14195;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 14196;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 14200;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 14201;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 14202;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 14206;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 14207;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 14208;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 14212;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 14213;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 14214;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 14218;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 14219;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 14220;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 14224;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 14225;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 14226;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 14230;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 14231;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 14232;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 14236;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 14237;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 14238;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 14242;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 14243;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 14244;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 14248;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 14249;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 14250;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 14254;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 14255;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 14256;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 14260;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 14261;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 14262;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 14266;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 14267;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 14268;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 14272;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 14273;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 14274;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 14278;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 14279;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 14280;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 14284;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 14285;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 14286;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 14290;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 14291;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 14292;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 14296;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 14297;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 14298;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 14302;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 14303;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 14304;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 14308;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 14309;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 14310;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 14314;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 14315;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 14316;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 14320;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 14321;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 14322;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 14326;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 14327;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 14328;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 14332;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 14333;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 14334;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 14338;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 14339;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 14340;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 14344;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 14345;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 14346;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 14350;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 14351;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 14352;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 14356;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 14357;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 14358;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 14362;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 14363;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 14364;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 14368;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 14369;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 14370;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 14374;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 14375;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 14376;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 14380;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 14381;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 14382;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 14386;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 14387;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 14388;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 14392;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 14393;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 14394;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 14398;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 14399;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 14400;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 14404;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 14405;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 14406;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 14410;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 14411;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 14412;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 14416;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 14417;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 14418;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 14422;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 14423;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 14424;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 14428;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 14429;
			return 14430;
		}
		short EndStoneBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace EndStoneBricks
	{
		constexpr short EndStoneBricks()
		{
			return 9218;
		}
	}
	namespace EnderChest
	{
		constexpr short EnderChest(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5252;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5254;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 5256;
			return 5258;
		}
		short EnderChest();
		eBlockFace Facing(short ID);
	}
	namespace Farmland
	{
		constexpr short Farmland(unsigned char Moisture)
		{
			if (Moisture == 0) return 3365;
			if (Moisture == 1) return 3366;
			if (Moisture == 2) return 3367;
			if (Moisture == 3) return 3368;
			if (Moisture == 4) return 3369;
			if (Moisture == 5) return 3370;
			if (Moisture == 6) return 3371;
			return 3372;
		}
		short Farmland();
		unsigned char Moisture(short ID);
	}
	namespace Fern
	{
		constexpr short Fern()
		{
			return 1343;
		}
	}
	namespace Fire
	{
		constexpr short Fire(unsigned char Age, bool East, bool North, bool South, bool Up, bool West)
		{
			if (Age == 0 && East && North && South && Up && West) return 1440;
			if (Age == 0 && East && North && South && Up && !West) return 1441;
			if (Age == 0 && East && North && South && !Up && West) return 1442;
			if (Age == 0 && East && North && South && !Up && !West) return 1443;
			if (Age == 0 && East && North && !South && Up && West) return 1444;
			if (Age == 0 && East && North && !South && Up && !West) return 1445;
			if (Age == 0 && East && North && !South && !Up && West) return 1446;
			if (Age == 0 && East && North && !South && !Up && !West) return 1447;
			if (Age == 0 && East && !North && South && Up && West) return 1448;
			if (Age == 0 && East && !North && South && Up && !West) return 1449;
			if (Age == 0 && East && !North && South && !Up && West) return 1450;
			if (Age == 0 && East && !North && South && !Up && !West) return 1451;
			if (Age == 0 && East && !North && !South && Up && West) return 1452;
			if (Age == 0 && East && !North && !South && Up && !West) return 1453;
			if (Age == 0 && East && !North && !South && !Up && West) return 1454;
			if (Age == 0 && East && !North && !South && !Up && !West) return 1455;
			if (Age == 0 && !East && North && South && Up && West) return 1456;
			if (Age == 0 && !East && North && South && Up && !West) return 1457;
			if (Age == 0 && !East && North && South && !Up && West) return 1458;
			if (Age == 0 && !East && North && South && !Up && !West) return 1459;
			if (Age == 0 && !East && North && !South && Up && West) return 1460;
			if (Age == 0 && !East && North && !South && Up && !West) return 1461;
			if (Age == 0 && !East && North && !South && !Up && West) return 1462;
			if (Age == 0 && !East && North && !South && !Up && !West) return 1463;
			if (Age == 0 && !East && !North && South && Up && West) return 1464;
			if (Age == 0 && !East && !North && South && Up && !West) return 1465;
			if (Age == 0 && !East && !North && South && !Up && West) return 1466;
			if (Age == 0 && !East && !North && South && !Up && !West) return 1467;
			if (Age == 0 && !East && !North && !South && Up && West) return 1468;
			if (Age == 0 && !East && !North && !South && Up && !West) return 1469;
			if (Age == 0 && !East && !North && !South && !Up && West) return 1470;
			if (Age == 0 && !East && !North && !South && !Up && !West) return 1471;
			if (Age == 1 && East && North && South && Up && West) return 1472;
			if (Age == 1 && East && North && South && Up && !West) return 1473;
			if (Age == 1 && East && North && South && !Up && West) return 1474;
			if (Age == 1 && East && North && South && !Up && !West) return 1475;
			if (Age == 1 && East && North && !South && Up && West) return 1476;
			if (Age == 1 && East && North && !South && Up && !West) return 1477;
			if (Age == 1 && East && North && !South && !Up && West) return 1478;
			if (Age == 1 && East && North && !South && !Up && !West) return 1479;
			if (Age == 1 && East && !North && South && Up && West) return 1480;
			if (Age == 1 && East && !North && South && Up && !West) return 1481;
			if (Age == 1 && East && !North && South && !Up && West) return 1482;
			if (Age == 1 && East && !North && South && !Up && !West) return 1483;
			if (Age == 1 && East && !North && !South && Up && West) return 1484;
			if (Age == 1 && East && !North && !South && Up && !West) return 1485;
			if (Age == 1 && East && !North && !South && !Up && West) return 1486;
			if (Age == 1 && East && !North && !South && !Up && !West) return 1487;
			if (Age == 1 && !East && North && South && Up && West) return 1488;
			if (Age == 1 && !East && North && South && Up && !West) return 1489;
			if (Age == 1 && !East && North && South && !Up && West) return 1490;
			if (Age == 1 && !East && North && South && !Up && !West) return 1491;
			if (Age == 1 && !East && North && !South && Up && West) return 1492;
			if (Age == 1 && !East && North && !South && Up && !West) return 1493;
			if (Age == 1 && !East && North && !South && !Up && West) return 1494;
			if (Age == 1 && !East && North && !South && !Up && !West) return 1495;
			if (Age == 1 && !East && !North && South && Up && West) return 1496;
			if (Age == 1 && !East && !North && South && Up && !West) return 1497;
			if (Age == 1 && !East && !North && South && !Up && West) return 1498;
			if (Age == 1 && !East && !North && South && !Up && !West) return 1499;
			if (Age == 1 && !East && !North && !South && Up && West) return 1500;
			if (Age == 1 && !East && !North && !South && Up && !West) return 1501;
			if (Age == 1 && !East && !North && !South && !Up && West) return 1502;
			if (Age == 1 && !East && !North && !South && !Up && !West) return 1503;
			if (Age == 2 && East && North && South && Up && West) return 1504;
			if (Age == 2 && East && North && South && Up && !West) return 1505;
			if (Age == 2 && East && North && South && !Up && West) return 1506;
			if (Age == 2 && East && North && South && !Up && !West) return 1507;
			if (Age == 2 && East && North && !South && Up && West) return 1508;
			if (Age == 2 && East && North && !South && Up && !West) return 1509;
			if (Age == 2 && East && North && !South && !Up && West) return 1510;
			if (Age == 2 && East && North && !South && !Up && !West) return 1511;
			if (Age == 2 && East && !North && South && Up && West) return 1512;
			if (Age == 2 && East && !North && South && Up && !West) return 1513;
			if (Age == 2 && East && !North && South && !Up && West) return 1514;
			if (Age == 2 && East && !North && South && !Up && !West) return 1515;
			if (Age == 2 && East && !North && !South && Up && West) return 1516;
			if (Age == 2 && East && !North && !South && Up && !West) return 1517;
			if (Age == 2 && East && !North && !South && !Up && West) return 1518;
			if (Age == 2 && East && !North && !South && !Up && !West) return 1519;
			if (Age == 2 && !East && North && South && Up && West) return 1520;
			if (Age == 2 && !East && North && South && Up && !West) return 1521;
			if (Age == 2 && !East && North && South && !Up && West) return 1522;
			if (Age == 2 && !East && North && South && !Up && !West) return 1523;
			if (Age == 2 && !East && North && !South && Up && West) return 1524;
			if (Age == 2 && !East && North && !South && Up && !West) return 1525;
			if (Age == 2 && !East && North && !South && !Up && West) return 1526;
			if (Age == 2 && !East && North && !South && !Up && !West) return 1527;
			if (Age == 2 && !East && !North && South && Up && West) return 1528;
			if (Age == 2 && !East && !North && South && Up && !West) return 1529;
			if (Age == 2 && !East && !North && South && !Up && West) return 1530;
			if (Age == 2 && !East && !North && South && !Up && !West) return 1531;
			if (Age == 2 && !East && !North && !South && Up && West) return 1532;
			if (Age == 2 && !East && !North && !South && Up && !West) return 1533;
			if (Age == 2 && !East && !North && !South && !Up && West) return 1534;
			if (Age == 2 && !East && !North && !South && !Up && !West) return 1535;
			if (Age == 3 && East && North && South && Up && West) return 1536;
			if (Age == 3 && East && North && South && Up && !West) return 1537;
			if (Age == 3 && East && North && South && !Up && West) return 1538;
			if (Age == 3 && East && North && South && !Up && !West) return 1539;
			if (Age == 3 && East && North && !South && Up && West) return 1540;
			if (Age == 3 && East && North && !South && Up && !West) return 1541;
			if (Age == 3 && East && North && !South && !Up && West) return 1542;
			if (Age == 3 && East && North && !South && !Up && !West) return 1543;
			if (Age == 3 && East && !North && South && Up && West) return 1544;
			if (Age == 3 && East && !North && South && Up && !West) return 1545;
			if (Age == 3 && East && !North && South && !Up && West) return 1546;
			if (Age == 3 && East && !North && South && !Up && !West) return 1547;
			if (Age == 3 && East && !North && !South && Up && West) return 1548;
			if (Age == 3 && East && !North && !South && Up && !West) return 1549;
			if (Age == 3 && East && !North && !South && !Up && West) return 1550;
			if (Age == 3 && East && !North && !South && !Up && !West) return 1551;
			if (Age == 3 && !East && North && South && Up && West) return 1552;
			if (Age == 3 && !East && North && South && Up && !West) return 1553;
			if (Age == 3 && !East && North && South && !Up && West) return 1554;
			if (Age == 3 && !East && North && South && !Up && !West) return 1555;
			if (Age == 3 && !East && North && !South && Up && West) return 1556;
			if (Age == 3 && !East && North && !South && Up && !West) return 1557;
			if (Age == 3 && !East && North && !South && !Up && West) return 1558;
			if (Age == 3 && !East && North && !South && !Up && !West) return 1559;
			if (Age == 3 && !East && !North && South && Up && West) return 1560;
			if (Age == 3 && !East && !North && South && Up && !West) return 1561;
			if (Age == 3 && !East && !North && South && !Up && West) return 1562;
			if (Age == 3 && !East && !North && South && !Up && !West) return 1563;
			if (Age == 3 && !East && !North && !South && Up && West) return 1564;
			if (Age == 3 && !East && !North && !South && Up && !West) return 1565;
			if (Age == 3 && !East && !North && !South && !Up && West) return 1566;
			if (Age == 3 && !East && !North && !South && !Up && !West) return 1567;
			if (Age == 4 && East && North && South && Up && West) return 1568;
			if (Age == 4 && East && North && South && Up && !West) return 1569;
			if (Age == 4 && East && North && South && !Up && West) return 1570;
			if (Age == 4 && East && North && South && !Up && !West) return 1571;
			if (Age == 4 && East && North && !South && Up && West) return 1572;
			if (Age == 4 && East && North && !South && Up && !West) return 1573;
			if (Age == 4 && East && North && !South && !Up && West) return 1574;
			if (Age == 4 && East && North && !South && !Up && !West) return 1575;
			if (Age == 4 && East && !North && South && Up && West) return 1576;
			if (Age == 4 && East && !North && South && Up && !West) return 1577;
			if (Age == 4 && East && !North && South && !Up && West) return 1578;
			if (Age == 4 && East && !North && South && !Up && !West) return 1579;
			if (Age == 4 && East && !North && !South && Up && West) return 1580;
			if (Age == 4 && East && !North && !South && Up && !West) return 1581;
			if (Age == 4 && East && !North && !South && !Up && West) return 1582;
			if (Age == 4 && East && !North && !South && !Up && !West) return 1583;
			if (Age == 4 && !East && North && South && Up && West) return 1584;
			if (Age == 4 && !East && North && South && Up && !West) return 1585;
			if (Age == 4 && !East && North && South && !Up && West) return 1586;
			if (Age == 4 && !East && North && South && !Up && !West) return 1587;
			if (Age == 4 && !East && North && !South && Up && West) return 1588;
			if (Age == 4 && !East && North && !South && Up && !West) return 1589;
			if (Age == 4 && !East && North && !South && !Up && West) return 1590;
			if (Age == 4 && !East && North && !South && !Up && !West) return 1591;
			if (Age == 4 && !East && !North && South && Up && West) return 1592;
			if (Age == 4 && !East && !North && South && Up && !West) return 1593;
			if (Age == 4 && !East && !North && South && !Up && West) return 1594;
			if (Age == 4 && !East && !North && South && !Up && !West) return 1595;
			if (Age == 4 && !East && !North && !South && Up && West) return 1596;
			if (Age == 4 && !East && !North && !South && Up && !West) return 1597;
			if (Age == 4 && !East && !North && !South && !Up && West) return 1598;
			if (Age == 4 && !East && !North && !South && !Up && !West) return 1599;
			if (Age == 5 && East && North && South && Up && West) return 1600;
			if (Age == 5 && East && North && South && Up && !West) return 1601;
			if (Age == 5 && East && North && South && !Up && West) return 1602;
			if (Age == 5 && East && North && South && !Up && !West) return 1603;
			if (Age == 5 && East && North && !South && Up && West) return 1604;
			if (Age == 5 && East && North && !South && Up && !West) return 1605;
			if (Age == 5 && East && North && !South && !Up && West) return 1606;
			if (Age == 5 && East && North && !South && !Up && !West) return 1607;
			if (Age == 5 && East && !North && South && Up && West) return 1608;
			if (Age == 5 && East && !North && South && Up && !West) return 1609;
			if (Age == 5 && East && !North && South && !Up && West) return 1610;
			if (Age == 5 && East && !North && South && !Up && !West) return 1611;
			if (Age == 5 && East && !North && !South && Up && West) return 1612;
			if (Age == 5 && East && !North && !South && Up && !West) return 1613;
			if (Age == 5 && East && !North && !South && !Up && West) return 1614;
			if (Age == 5 && East && !North && !South && !Up && !West) return 1615;
			if (Age == 5 && !East && North && South && Up && West) return 1616;
			if (Age == 5 && !East && North && South && Up && !West) return 1617;
			if (Age == 5 && !East && North && South && !Up && West) return 1618;
			if (Age == 5 && !East && North && South && !Up && !West) return 1619;
			if (Age == 5 && !East && North && !South && Up && West) return 1620;
			if (Age == 5 && !East && North && !South && Up && !West) return 1621;
			if (Age == 5 && !East && North && !South && !Up && West) return 1622;
			if (Age == 5 && !East && North && !South && !Up && !West) return 1623;
			if (Age == 5 && !East && !North && South && Up && West) return 1624;
			if (Age == 5 && !East && !North && South && Up && !West) return 1625;
			if (Age == 5 && !East && !North && South && !Up && West) return 1626;
			if (Age == 5 && !East && !North && South && !Up && !West) return 1627;
			if (Age == 5 && !East && !North && !South && Up && West) return 1628;
			if (Age == 5 && !East && !North && !South && Up && !West) return 1629;
			if (Age == 5 && !East && !North && !South && !Up && West) return 1630;
			if (Age == 5 && !East && !North && !South && !Up && !West) return 1631;
			if (Age == 6 && East && North && South && Up && West) return 1632;
			if (Age == 6 && East && North && South && Up && !West) return 1633;
			if (Age == 6 && East && North && South && !Up && West) return 1634;
			if (Age == 6 && East && North && South && !Up && !West) return 1635;
			if (Age == 6 && East && North && !South && Up && West) return 1636;
			if (Age == 6 && East && North && !South && Up && !West) return 1637;
			if (Age == 6 && East && North && !South && !Up && West) return 1638;
			if (Age == 6 && East && North && !South && !Up && !West) return 1639;
			if (Age == 6 && East && !North && South && Up && West) return 1640;
			if (Age == 6 && East && !North && South && Up && !West) return 1641;
			if (Age == 6 && East && !North && South && !Up && West) return 1642;
			if (Age == 6 && East && !North && South && !Up && !West) return 1643;
			if (Age == 6 && East && !North && !South && Up && West) return 1644;
			if (Age == 6 && East && !North && !South && Up && !West) return 1645;
			if (Age == 6 && East && !North && !South && !Up && West) return 1646;
			if (Age == 6 && East && !North && !South && !Up && !West) return 1647;
			if (Age == 6 && !East && North && South && Up && West) return 1648;
			if (Age == 6 && !East && North && South && Up && !West) return 1649;
			if (Age == 6 && !East && North && South && !Up && West) return 1650;
			if (Age == 6 && !East && North && South && !Up && !West) return 1651;
			if (Age == 6 && !East && North && !South && Up && West) return 1652;
			if (Age == 6 && !East && North && !South && Up && !West) return 1653;
			if (Age == 6 && !East && North && !South && !Up && West) return 1654;
			if (Age == 6 && !East && North && !South && !Up && !West) return 1655;
			if (Age == 6 && !East && !North && South && Up && West) return 1656;
			if (Age == 6 && !East && !North && South && Up && !West) return 1657;
			if (Age == 6 && !East && !North && South && !Up && West) return 1658;
			if (Age == 6 && !East && !North && South && !Up && !West) return 1659;
			if (Age == 6 && !East && !North && !South && Up && West) return 1660;
			if (Age == 6 && !East && !North && !South && Up && !West) return 1661;
			if (Age == 6 && !East && !North && !South && !Up && West) return 1662;
			if (Age == 6 && !East && !North && !South && !Up && !West) return 1663;
			if (Age == 7 && East && North && South && Up && West) return 1664;
			if (Age == 7 && East && North && South && Up && !West) return 1665;
			if (Age == 7 && East && North && South && !Up && West) return 1666;
			if (Age == 7 && East && North && South && !Up && !West) return 1667;
			if (Age == 7 && East && North && !South && Up && West) return 1668;
			if (Age == 7 && East && North && !South && Up && !West) return 1669;
			if (Age == 7 && East && North && !South && !Up && West) return 1670;
			if (Age == 7 && East && North && !South && !Up && !West) return 1671;
			if (Age == 7 && East && !North && South && Up && West) return 1672;
			if (Age == 7 && East && !North && South && Up && !West) return 1673;
			if (Age == 7 && East && !North && South && !Up && West) return 1674;
			if (Age == 7 && East && !North && South && !Up && !West) return 1675;
			if (Age == 7 && East && !North && !South && Up && West) return 1676;
			if (Age == 7 && East && !North && !South && Up && !West) return 1677;
			if (Age == 7 && East && !North && !South && !Up && West) return 1678;
			if (Age == 7 && East && !North && !South && !Up && !West) return 1679;
			if (Age == 7 && !East && North && South && Up && West) return 1680;
			if (Age == 7 && !East && North && South && Up && !West) return 1681;
			if (Age == 7 && !East && North && South && !Up && West) return 1682;
			if (Age == 7 && !East && North && South && !Up && !West) return 1683;
			if (Age == 7 && !East && North && !South && Up && West) return 1684;
			if (Age == 7 && !East && North && !South && Up && !West) return 1685;
			if (Age == 7 && !East && North && !South && !Up && West) return 1686;
			if (Age == 7 && !East && North && !South && !Up && !West) return 1687;
			if (Age == 7 && !East && !North && South && Up && West) return 1688;
			if (Age == 7 && !East && !North && South && Up && !West) return 1689;
			if (Age == 7 && !East && !North && South && !Up && West) return 1690;
			if (Age == 7 && !East && !North && South && !Up && !West) return 1691;
			if (Age == 7 && !East && !North && !South && Up && West) return 1692;
			if (Age == 7 && !East && !North && !South && Up && !West) return 1693;
			if (Age == 7 && !East && !North && !South && !Up && West) return 1694;
			if (Age == 7 && !East && !North && !South && !Up && !West) return 1695;
			if (Age == 8 && East && North && South && Up && West) return 1696;
			if (Age == 8 && East && North && South && Up && !West) return 1697;
			if (Age == 8 && East && North && South && !Up && West) return 1698;
			if (Age == 8 && East && North && South && !Up && !West) return 1699;
			if (Age == 8 && East && North && !South && Up && West) return 1700;
			if (Age == 8 && East && North && !South && Up && !West) return 1701;
			if (Age == 8 && East && North && !South && !Up && West) return 1702;
			if (Age == 8 && East && North && !South && !Up && !West) return 1703;
			if (Age == 8 && East && !North && South && Up && West) return 1704;
			if (Age == 8 && East && !North && South && Up && !West) return 1705;
			if (Age == 8 && East && !North && South && !Up && West) return 1706;
			if (Age == 8 && East && !North && South && !Up && !West) return 1707;
			if (Age == 8 && East && !North && !South && Up && West) return 1708;
			if (Age == 8 && East && !North && !South && Up && !West) return 1709;
			if (Age == 8 && East && !North && !South && !Up && West) return 1710;
			if (Age == 8 && East && !North && !South && !Up && !West) return 1711;
			if (Age == 8 && !East && North && South && Up && West) return 1712;
			if (Age == 8 && !East && North && South && Up && !West) return 1713;
			if (Age == 8 && !East && North && South && !Up && West) return 1714;
			if (Age == 8 && !East && North && South && !Up && !West) return 1715;
			if (Age == 8 && !East && North && !South && Up && West) return 1716;
			if (Age == 8 && !East && North && !South && Up && !West) return 1717;
			if (Age == 8 && !East && North && !South && !Up && West) return 1718;
			if (Age == 8 && !East && North && !South && !Up && !West) return 1719;
			if (Age == 8 && !East && !North && South && Up && West) return 1720;
			if (Age == 8 && !East && !North && South && Up && !West) return 1721;
			if (Age == 8 && !East && !North && South && !Up && West) return 1722;
			if (Age == 8 && !East && !North && South && !Up && !West) return 1723;
			if (Age == 8 && !East && !North && !South && Up && West) return 1724;
			if (Age == 8 && !East && !North && !South && Up && !West) return 1725;
			if (Age == 8 && !East && !North && !South && !Up && West) return 1726;
			if (Age == 8 && !East && !North && !South && !Up && !West) return 1727;
			if (Age == 9 && East && North && South && Up && West) return 1728;
			if (Age == 9 && East && North && South && Up && !West) return 1729;
			if (Age == 9 && East && North && South && !Up && West) return 1730;
			if (Age == 9 && East && North && South && !Up && !West) return 1731;
			if (Age == 9 && East && North && !South && Up && West) return 1732;
			if (Age == 9 && East && North && !South && Up && !West) return 1733;
			if (Age == 9 && East && North && !South && !Up && West) return 1734;
			if (Age == 9 && East && North && !South && !Up && !West) return 1735;
			if (Age == 9 && East && !North && South && Up && West) return 1736;
			if (Age == 9 && East && !North && South && Up && !West) return 1737;
			if (Age == 9 && East && !North && South && !Up && West) return 1738;
			if (Age == 9 && East && !North && South && !Up && !West) return 1739;
			if (Age == 9 && East && !North && !South && Up && West) return 1740;
			if (Age == 9 && East && !North && !South && Up && !West) return 1741;
			if (Age == 9 && East && !North && !South && !Up && West) return 1742;
			if (Age == 9 && East && !North && !South && !Up && !West) return 1743;
			if (Age == 9 && !East && North && South && Up && West) return 1744;
			if (Age == 9 && !East && North && South && Up && !West) return 1745;
			if (Age == 9 && !East && North && South && !Up && West) return 1746;
			if (Age == 9 && !East && North && South && !Up && !West) return 1747;
			if (Age == 9 && !East && North && !South && Up && West) return 1748;
			if (Age == 9 && !East && North && !South && Up && !West) return 1749;
			if (Age == 9 && !East && North && !South && !Up && West) return 1750;
			if (Age == 9 && !East && North && !South && !Up && !West) return 1751;
			if (Age == 9 && !East && !North && South && Up && West) return 1752;
			if (Age == 9 && !East && !North && South && Up && !West) return 1753;
			if (Age == 9 && !East && !North && South && !Up && West) return 1754;
			if (Age == 9 && !East && !North && South && !Up && !West) return 1755;
			if (Age == 9 && !East && !North && !South && Up && West) return 1756;
			if (Age == 9 && !East && !North && !South && Up && !West) return 1757;
			if (Age == 9 && !East && !North && !South && !Up && West) return 1758;
			if (Age == 9 && !East && !North && !South && !Up && !West) return 1759;
			if (Age == 10 && East && North && South && Up && West) return 1760;
			if (Age == 10 && East && North && South && Up && !West) return 1761;
			if (Age == 10 && East && North && South && !Up && West) return 1762;
			if (Age == 10 && East && North && South && !Up && !West) return 1763;
			if (Age == 10 && East && North && !South && Up && West) return 1764;
			if (Age == 10 && East && North && !South && Up && !West) return 1765;
			if (Age == 10 && East && North && !South && !Up && West) return 1766;
			if (Age == 10 && East && North && !South && !Up && !West) return 1767;
			if (Age == 10 && East && !North && South && Up && West) return 1768;
			if (Age == 10 && East && !North && South && Up && !West) return 1769;
			if (Age == 10 && East && !North && South && !Up && West) return 1770;
			if (Age == 10 && East && !North && South && !Up && !West) return 1771;
			if (Age == 10 && East && !North && !South && Up && West) return 1772;
			if (Age == 10 && East && !North && !South && Up && !West) return 1773;
			if (Age == 10 && East && !North && !South && !Up && West) return 1774;
			if (Age == 10 && East && !North && !South && !Up && !West) return 1775;
			if (Age == 10 && !East && North && South && Up && West) return 1776;
			if (Age == 10 && !East && North && South && Up && !West) return 1777;
			if (Age == 10 && !East && North && South && !Up && West) return 1778;
			if (Age == 10 && !East && North && South && !Up && !West) return 1779;
			if (Age == 10 && !East && North && !South && Up && West) return 1780;
			if (Age == 10 && !East && North && !South && Up && !West) return 1781;
			if (Age == 10 && !East && North && !South && !Up && West) return 1782;
			if (Age == 10 && !East && North && !South && !Up && !West) return 1783;
			if (Age == 10 && !East && !North && South && Up && West) return 1784;
			if (Age == 10 && !East && !North && South && Up && !West) return 1785;
			if (Age == 10 && !East && !North && South && !Up && West) return 1786;
			if (Age == 10 && !East && !North && South && !Up && !West) return 1787;
			if (Age == 10 && !East && !North && !South && Up && West) return 1788;
			if (Age == 10 && !East && !North && !South && Up && !West) return 1789;
			if (Age == 10 && !East && !North && !South && !Up && West) return 1790;
			if (Age == 10 && !East && !North && !South && !Up && !West) return 1791;
			if (Age == 11 && East && North && South && Up && West) return 1792;
			if (Age == 11 && East && North && South && Up && !West) return 1793;
			if (Age == 11 && East && North && South && !Up && West) return 1794;
			if (Age == 11 && East && North && South && !Up && !West) return 1795;
			if (Age == 11 && East && North && !South && Up && West) return 1796;
			if (Age == 11 && East && North && !South && Up && !West) return 1797;
			if (Age == 11 && East && North && !South && !Up && West) return 1798;
			if (Age == 11 && East && North && !South && !Up && !West) return 1799;
			if (Age == 11 && East && !North && South && Up && West) return 1800;
			if (Age == 11 && East && !North && South && Up && !West) return 1801;
			if (Age == 11 && East && !North && South && !Up && West) return 1802;
			if (Age == 11 && East && !North && South && !Up && !West) return 1803;
			if (Age == 11 && East && !North && !South && Up && West) return 1804;
			if (Age == 11 && East && !North && !South && Up && !West) return 1805;
			if (Age == 11 && East && !North && !South && !Up && West) return 1806;
			if (Age == 11 && East && !North && !South && !Up && !West) return 1807;
			if (Age == 11 && !East && North && South && Up && West) return 1808;
			if (Age == 11 && !East && North && South && Up && !West) return 1809;
			if (Age == 11 && !East && North && South && !Up && West) return 1810;
			if (Age == 11 && !East && North && South && !Up && !West) return 1811;
			if (Age == 11 && !East && North && !South && Up && West) return 1812;
			if (Age == 11 && !East && North && !South && Up && !West) return 1813;
			if (Age == 11 && !East && North && !South && !Up && West) return 1814;
			if (Age == 11 && !East && North && !South && !Up && !West) return 1815;
			if (Age == 11 && !East && !North && South && Up && West) return 1816;
			if (Age == 11 && !East && !North && South && Up && !West) return 1817;
			if (Age == 11 && !East && !North && South && !Up && West) return 1818;
			if (Age == 11 && !East && !North && South && !Up && !West) return 1819;
			if (Age == 11 && !East && !North && !South && Up && West) return 1820;
			if (Age == 11 && !East && !North && !South && Up && !West) return 1821;
			if (Age == 11 && !East && !North && !South && !Up && West) return 1822;
			if (Age == 11 && !East && !North && !South && !Up && !West) return 1823;
			if (Age == 12 && East && North && South && Up && West) return 1824;
			if (Age == 12 && East && North && South && Up && !West) return 1825;
			if (Age == 12 && East && North && South && !Up && West) return 1826;
			if (Age == 12 && East && North && South && !Up && !West) return 1827;
			if (Age == 12 && East && North && !South && Up && West) return 1828;
			if (Age == 12 && East && North && !South && Up && !West) return 1829;
			if (Age == 12 && East && North && !South && !Up && West) return 1830;
			if (Age == 12 && East && North && !South && !Up && !West) return 1831;
			if (Age == 12 && East && !North && South && Up && West) return 1832;
			if (Age == 12 && East && !North && South && Up && !West) return 1833;
			if (Age == 12 && East && !North && South && !Up && West) return 1834;
			if (Age == 12 && East && !North && South && !Up && !West) return 1835;
			if (Age == 12 && East && !North && !South && Up && West) return 1836;
			if (Age == 12 && East && !North && !South && Up && !West) return 1837;
			if (Age == 12 && East && !North && !South && !Up && West) return 1838;
			if (Age == 12 && East && !North && !South && !Up && !West) return 1839;
			if (Age == 12 && !East && North && South && Up && West) return 1840;
			if (Age == 12 && !East && North && South && Up && !West) return 1841;
			if (Age == 12 && !East && North && South && !Up && West) return 1842;
			if (Age == 12 && !East && North && South && !Up && !West) return 1843;
			if (Age == 12 && !East && North && !South && Up && West) return 1844;
			if (Age == 12 && !East && North && !South && Up && !West) return 1845;
			if (Age == 12 && !East && North && !South && !Up && West) return 1846;
			if (Age == 12 && !East && North && !South && !Up && !West) return 1847;
			if (Age == 12 && !East && !North && South && Up && West) return 1848;
			if (Age == 12 && !East && !North && South && Up && !West) return 1849;
			if (Age == 12 && !East && !North && South && !Up && West) return 1850;
			if (Age == 12 && !East && !North && South && !Up && !West) return 1851;
			if (Age == 12 && !East && !North && !South && Up && West) return 1852;
			if (Age == 12 && !East && !North && !South && Up && !West) return 1853;
			if (Age == 12 && !East && !North && !South && !Up && West) return 1854;
			if (Age == 12 && !East && !North && !South && !Up && !West) return 1855;
			if (Age == 13 && East && North && South && Up && West) return 1856;
			if (Age == 13 && East && North && South && Up && !West) return 1857;
			if (Age == 13 && East && North && South && !Up && West) return 1858;
			if (Age == 13 && East && North && South && !Up && !West) return 1859;
			if (Age == 13 && East && North && !South && Up && West) return 1860;
			if (Age == 13 && East && North && !South && Up && !West) return 1861;
			if (Age == 13 && East && North && !South && !Up && West) return 1862;
			if (Age == 13 && East && North && !South && !Up && !West) return 1863;
			if (Age == 13 && East && !North && South && Up && West) return 1864;
			if (Age == 13 && East && !North && South && Up && !West) return 1865;
			if (Age == 13 && East && !North && South && !Up && West) return 1866;
			if (Age == 13 && East && !North && South && !Up && !West) return 1867;
			if (Age == 13 && East && !North && !South && Up && West) return 1868;
			if (Age == 13 && East && !North && !South && Up && !West) return 1869;
			if (Age == 13 && East && !North && !South && !Up && West) return 1870;
			if (Age == 13 && East && !North && !South && !Up && !West) return 1871;
			if (Age == 13 && !East && North && South && Up && West) return 1872;
			if (Age == 13 && !East && North && South && Up && !West) return 1873;
			if (Age == 13 && !East && North && South && !Up && West) return 1874;
			if (Age == 13 && !East && North && South && !Up && !West) return 1875;
			if (Age == 13 && !East && North && !South && Up && West) return 1876;
			if (Age == 13 && !East && North && !South && Up && !West) return 1877;
			if (Age == 13 && !East && North && !South && !Up && West) return 1878;
			if (Age == 13 && !East && North && !South && !Up && !West) return 1879;
			if (Age == 13 && !East && !North && South && Up && West) return 1880;
			if (Age == 13 && !East && !North && South && Up && !West) return 1881;
			if (Age == 13 && !East && !North && South && !Up && West) return 1882;
			if (Age == 13 && !East && !North && South && !Up && !West) return 1883;
			if (Age == 13 && !East && !North && !South && Up && West) return 1884;
			if (Age == 13 && !East && !North && !South && Up && !West) return 1885;
			if (Age == 13 && !East && !North && !South && !Up && West) return 1886;
			if (Age == 13 && !East && !North && !South && !Up && !West) return 1887;
			if (Age == 14 && East && North && South && Up && West) return 1888;
			if (Age == 14 && East && North && South && Up && !West) return 1889;
			if (Age == 14 && East && North && South && !Up && West) return 1890;
			if (Age == 14 && East && North && South && !Up && !West) return 1891;
			if (Age == 14 && East && North && !South && Up && West) return 1892;
			if (Age == 14 && East && North && !South && Up && !West) return 1893;
			if (Age == 14 && East && North && !South && !Up && West) return 1894;
			if (Age == 14 && East && North && !South && !Up && !West) return 1895;
			if (Age == 14 && East && !North && South && Up && West) return 1896;
			if (Age == 14 && East && !North && South && Up && !West) return 1897;
			if (Age == 14 && East && !North && South && !Up && West) return 1898;
			if (Age == 14 && East && !North && South && !Up && !West) return 1899;
			if (Age == 14 && East && !North && !South && Up && West) return 1900;
			if (Age == 14 && East && !North && !South && Up && !West) return 1901;
			if (Age == 14 && East && !North && !South && !Up && West) return 1902;
			if (Age == 14 && East && !North && !South && !Up && !West) return 1903;
			if (Age == 14 && !East && North && South && Up && West) return 1904;
			if (Age == 14 && !East && North && South && Up && !West) return 1905;
			if (Age == 14 && !East && North && South && !Up && West) return 1906;
			if (Age == 14 && !East && North && South && !Up && !West) return 1907;
			if (Age == 14 && !East && North && !South && Up && West) return 1908;
			if (Age == 14 && !East && North && !South && Up && !West) return 1909;
			if (Age == 14 && !East && North && !South && !Up && West) return 1910;
			if (Age == 14 && !East && North && !South && !Up && !West) return 1911;
			if (Age == 14 && !East && !North && South && Up && West) return 1912;
			if (Age == 14 && !East && !North && South && Up && !West) return 1913;
			if (Age == 14 && !East && !North && South && !Up && West) return 1914;
			if (Age == 14 && !East && !North && South && !Up && !West) return 1915;
			if (Age == 14 && !East && !North && !South && Up && West) return 1916;
			if (Age == 14 && !East && !North && !South && Up && !West) return 1917;
			if (Age == 14 && !East && !North && !South && !Up && West) return 1918;
			if (Age == 14 && !East && !North && !South && !Up && !West) return 1919;
			if (Age == 15 && East && North && South && Up && West) return 1920;
			if (Age == 15 && East && North && South && Up && !West) return 1921;
			if (Age == 15 && East && North && South && !Up && West) return 1922;
			if (Age == 15 && East && North && South && !Up && !West) return 1923;
			if (Age == 15 && East && North && !South && Up && West) return 1924;
			if (Age == 15 && East && North && !South && Up && !West) return 1925;
			if (Age == 15 && East && North && !South && !Up && West) return 1926;
			if (Age == 15 && East && North && !South && !Up && !West) return 1927;
			if (Age == 15 && East && !North && South && Up && West) return 1928;
			if (Age == 15 && East && !North && South && Up && !West) return 1929;
			if (Age == 15 && East && !North && South && !Up && West) return 1930;
			if (Age == 15 && East && !North && South && !Up && !West) return 1931;
			if (Age == 15 && East && !North && !South && Up && West) return 1932;
			if (Age == 15 && East && !North && !South && Up && !West) return 1933;
			if (Age == 15 && East && !North && !South && !Up && West) return 1934;
			if (Age == 15 && East && !North && !South && !Up && !West) return 1935;
			if (Age == 15 && !East && North && South && Up && West) return 1936;
			if (Age == 15 && !East && North && South && Up && !West) return 1937;
			if (Age == 15 && !East && North && South && !Up && West) return 1938;
			if (Age == 15 && !East && North && South && !Up && !West) return 1939;
			if (Age == 15 && !East && North && !South && Up && West) return 1940;
			if (Age == 15 && !East && North && !South && Up && !West) return 1941;
			if (Age == 15 && !East && North && !South && !Up && West) return 1942;
			if (Age == 15 && !East && North && !South && !Up && !West) return 1943;
			if (Age == 15 && !East && !North && South && Up && West) return 1944;
			if (Age == 15 && !East && !North && South && Up && !West) return 1945;
			if (Age == 15 && !East && !North && South && !Up && West) return 1946;
			if (Age == 15 && !East && !North && South && !Up && !West) return 1947;
			if (Age == 15 && !East && !North && !South && Up && West) return 1948;
			if (Age == 15 && !East && !North && !South && Up && !West) return 1949;
			if (Age == 15 && !East && !North && !South && !Up && West) return 1950;
			return 1951;
		}
		short Fire();
		unsigned char Age(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace FireCoral
	{
		constexpr short FireCoral()
		{
			return 9537;
		}
	}
	namespace FireCoralBlock
	{
		constexpr short FireCoralBlock()
		{
			return 9518;
		}
	}
	namespace FireCoralFan
	{
		constexpr short FireCoralFan()
		{
			return 9557;
		}
	}
	namespace FireCoralWallFan
	{
		constexpr short FireCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9625;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9627;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9629;
			return 9631;
		}
		short FireCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace FletchingTable
	{
		constexpr short FletchingTable()
		{
			return 14820;
		}
	}
	namespace FlowerPot
	{
		constexpr short FlowerPot()
		{
			return 6305;
		}
	}
	namespace FrostedIce
	{
		constexpr short FrostedIce(unsigned char Age)
		{
			if (Age == 0) return 9249;
			if (Age == 1) return 9250;
			if (Age == 2) return 9251;
			return 9252;
		}
		short FrostedIce();
		unsigned char Age(short ID);
	}
	namespace Furnace
	{
		constexpr short Furnace(eBlockFace Facing, bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit) return 3373;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit) return 3374;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit) return 3375;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit) return 3376;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit) return 3377;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit) return 3378;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit) return 3379;
			return 3380;
		}
		short Furnace();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
	}
	namespace GildedBlackstone
	{
		constexpr short GildedBlackstone()
		{
			return 16664;
		}
	}
	namespace Glass
	{
		constexpr short Glass()
		{
			return 231;
		}
	}
	namespace GlassPane
	{
		constexpr short GlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 4733;
			if (East && North && South && !West) return 4734;
			if (East && North && !South && West) return 4737;
			if (East && North && !South && !West) return 4738;
			if (East && !North && South && West) return 4741;
			if (East && !North && South && !West) return 4742;
			if (East && !North && !South && West) return 4745;
			if (East && !North && !South && !West) return 4746;
			if (!East && North && South && West) return 4749;
			if (!East && North && South && !West) return 4750;
			if (!East && North && !South && West) return 4753;
			if (!East && North && !South && !West) return 4754;
			if (!East && !North && South && West) return 4757;
			if (!East && !North && South && !West) return 4758;
			if (!East && !North && !South && West) return 4761;
			return 4762;
		}
		short GlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace Glowstone
	{
		constexpr short Glowstone()
		{
			return 4013;
		}
	}
	namespace GoldBlock
	{
		constexpr short GoldBlock()
		{
			return 1427;
		}
	}
	namespace GoldOre
	{
		constexpr short GoldOre()
		{
			return 69;
		}
	}
	namespace Granite
	{
		constexpr short Granite()
		{
			return 2;
		}
	}
	namespace GraniteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short GraniteSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10838;
			if (Type == Type::Bottom) return 10840;
			return 10842;
		}
		short GraniteSlab();
		enum Type Type(short ID);
	}
	namespace GraniteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short GraniteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 10390;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 10392;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 10394;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 10396;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 10398;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10400;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10402;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10404;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10406;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10408;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10410;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10412;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10414;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10416;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10418;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10420;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10422;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10424;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10426;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10428;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10430;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10432;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10434;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10436;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10438;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10440;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10442;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10444;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10446;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10448;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10450;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10452;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10454;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10456;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10458;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10460;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10462;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10464;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10466;
			return 10468;
		}
		short GraniteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace GraniteWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short GraniteWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 12166;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 12167;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 12168;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 12172;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 12173;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 12174;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 12178;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 12179;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 12180;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 12184;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 12185;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 12186;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 12190;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 12191;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 12192;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 12196;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 12197;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 12198;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 12202;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 12203;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 12204;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 12208;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 12209;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 12210;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 12214;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 12215;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 12216;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 12220;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 12221;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12222;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 12226;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 12227;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12228;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 12232;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12233;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12234;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 12238;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 12239;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 12240;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 12244;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 12245;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 12246;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 12250;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 12251;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 12252;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 12256;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 12257;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 12258;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 12262;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 12263;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 12264;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 12268;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 12269;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 12270;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 12274;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 12275;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 12276;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 12280;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 12281;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 12282;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 12286;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 12287;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 12288;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 12292;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 12293;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 12294;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 12298;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 12299;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 12300;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 12304;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 12305;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 12306;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 12310;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 12311;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 12312;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 12316;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 12317;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 12318;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 12322;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 12323;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 12324;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 12328;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 12329;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12330;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 12334;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 12335;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12336;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 12340;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12341;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12342;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 12346;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 12347;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 12348;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 12352;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 12353;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 12354;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 12358;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 12359;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 12360;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 12364;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 12365;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 12366;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 12370;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 12371;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 12372;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 12376;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 12377;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 12378;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 12382;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 12383;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 12384;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 12388;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 12389;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 12390;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 12394;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 12395;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 12396;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 12400;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 12401;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 12402;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 12406;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 12407;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 12408;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 12412;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 12413;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 12414;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 12418;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 12419;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 12420;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 12424;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 12425;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 12426;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 12430;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 12431;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 12432;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 12436;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 12437;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12438;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 12442;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 12443;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12444;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 12448;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12449;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12450;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 12454;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 12455;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 12456;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 12460;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 12461;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 12462;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 12466;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 12467;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 12468;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 12472;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 12473;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 12474;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 12478;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 12479;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 12480;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 12484;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 12485;
			return 12486;
		}
		short GraniteWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace Grass
	{
		constexpr short Grass()
		{
			return 1342;
		}
	}
	namespace GrassBlock
	{
		constexpr short GrassBlock(bool Snowy)
		{
			if (Snowy) return 8;
			return 9;
		}
		short GrassBlock();
		bool Snowy(short ID);
	}
	namespace GrassPath
	{
		constexpr short GrassPath()
		{
			return 9223;
		}
	}
	namespace Gravel
	{
		constexpr short Gravel()
		{
			return 68;
		}
	}
	namespace GrayBanner
	{
		constexpr short GrayBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8009;
			if (Rotation == 1) return 8010;
			if (Rotation == 2) return 8011;
			if (Rotation == 3) return 8012;
			if (Rotation == 4) return 8013;
			if (Rotation == 5) return 8014;
			if (Rotation == 6) return 8015;
			if (Rotation == 7) return 8016;
			if (Rotation == 8) return 8017;
			if (Rotation == 9) return 8018;
			if (Rotation == 10) return 8019;
			if (Rotation == 11) return 8020;
			if (Rotation == 12) return 8021;
			if (Rotation == 13) return 8022;
			if (Rotation == 14) return 8023;
			return 8024;
		}
		short GrayBanner();
		unsigned char Rotation(short ID);
	}
	namespace GrayBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short GrayBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1161;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1162;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1163;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1164;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1165;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1166;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1167;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1168;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1169;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1170;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1171;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1172;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1173;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1174;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1175;
			return 1176;
		}
		short GrayBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace GrayCarpet
	{
		constexpr short GrayCarpet()
		{
			return 7873;
		}
	}
	namespace GrayConcrete
	{
		constexpr short GrayConcrete()
		{
			return 9445;
		}
	}
	namespace GrayConcretePowder
	{
		constexpr short GrayConcretePowder()
		{
			return 9461;
		}
	}
	namespace GrayGlazedTerracotta
	{
		constexpr short GrayGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9402;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9403;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9404;
			return 9405;
		}
		short GrayGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace GrayShulkerBox
	{
		constexpr short GrayShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9320;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9321;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9322;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9323;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9324;
			return 9325;
		}
		short GrayShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace GrayStainedGlass
	{
		constexpr short GrayStainedGlass()
		{
			return 4102;
		}
	}
	namespace GrayStainedGlassPane
	{
		constexpr short GrayStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7089;
			if (East && North && South && !West) return 7090;
			if (East && North && !South && West) return 7093;
			if (East && North && !South && !West) return 7094;
			if (East && !North && South && West) return 7097;
			if (East && !North && South && !West) return 7098;
			if (East && !North && !South && West) return 7101;
			if (East && !North && !South && !West) return 7102;
			if (!East && North && South && West) return 7105;
			if (!East && North && South && !West) return 7106;
			if (!East && North && !South && West) return 7109;
			if (!East && North && !South && !West) return 7110;
			if (!East && !North && South && West) return 7113;
			if (!East && !North && South && !West) return 7114;
			if (!East && !North && !South && West) return 7117;
			return 7118;
		}
		short GrayStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace GrayTerracotta
	{
		constexpr short GrayTerracotta()
		{
			return 6854;
		}
	}
	namespace GrayWallBanner
	{
		constexpr short GrayWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8181;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8182;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8183;
			return 8184;
		}
		short GrayWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace GrayWool
	{
		constexpr short GrayWool()
		{
			return 1391;
		}
	}
	namespace GreenBanner
	{
		constexpr short GreenBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8105;
			if (Rotation == 1) return 8106;
			if (Rotation == 2) return 8107;
			if (Rotation == 3) return 8108;
			if (Rotation == 4) return 8109;
			if (Rotation == 5) return 8110;
			if (Rotation == 6) return 8111;
			if (Rotation == 7) return 8112;
			if (Rotation == 8) return 8113;
			if (Rotation == 9) return 8114;
			if (Rotation == 10) return 8115;
			if (Rotation == 11) return 8116;
			if (Rotation == 12) return 8117;
			if (Rotation == 13) return 8118;
			if (Rotation == 14) return 8119;
			return 8120;
		}
		short GreenBanner();
		unsigned char Rotation(short ID);
	}
	namespace GreenBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short GreenBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1257;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1258;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1259;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1260;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1261;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1262;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1263;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1264;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1265;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1266;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1267;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1268;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1269;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1270;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1271;
			return 1272;
		}
		short GreenBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace GreenCarpet
	{
		constexpr short GreenCarpet()
		{
			return 7879;
		}
	}
	namespace GreenConcrete
	{
		constexpr short GreenConcrete()
		{
			return 9451;
		}
	}
	namespace GreenConcretePowder
	{
		constexpr short GreenConcretePowder()
		{
			return 9467;
		}
	}
	namespace GreenGlazedTerracotta
	{
		constexpr short GreenGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9426;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9427;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9428;
			return 9429;
		}
		short GreenGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace GreenShulkerBox
	{
		constexpr short GreenShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9356;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9357;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9358;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9359;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9360;
			return 9361;
		}
		short GreenShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace GreenStainedGlass
	{
		constexpr short GreenStainedGlass()
		{
			return 4108;
		}
	}
	namespace GreenStainedGlassPane
	{
		constexpr short GreenStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7281;
			if (East && North && South && !West) return 7282;
			if (East && North && !South && West) return 7285;
			if (East && North && !South && !West) return 7286;
			if (East && !North && South && West) return 7289;
			if (East && !North && South && !West) return 7290;
			if (East && !North && !South && West) return 7293;
			if (East && !North && !South && !West) return 7294;
			if (!East && North && South && West) return 7297;
			if (!East && North && South && !West) return 7298;
			if (!East && North && !South && West) return 7301;
			if (!East && North && !South && !West) return 7302;
			if (!East && !North && South && West) return 7305;
			if (!East && !North && South && !West) return 7306;
			if (!East && !North && !South && West) return 7309;
			return 7310;
		}
		short GreenStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace GreenTerracotta
	{
		constexpr short GreenTerracotta()
		{
			return 6860;
		}
	}
	namespace GreenWallBanner
	{
		constexpr short GreenWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8205;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8206;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8207;
			return 8208;
		}
		short GreenWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace GreenWool
	{
		constexpr short GreenWool()
		{
			return 1397;
		}
	}
	namespace Grindstone
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short Grindstone(enum Face Face, eBlockFace Facing)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM) return 14821;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP) return 14822;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM) return 14823;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP) return 14824;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM) return 14825;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP) return 14826;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM) return 14827;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP) return 14828;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM) return 14829;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP) return 14830;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM) return 14831;
			return 14832;
		}
		short Grindstone();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
	}
	namespace HayBale
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short HayBale(enum Axis Axis)
		{
			if (Axis == Axis::X) return 7863;
			if (Axis == Axis::Y) return 7864;
			return 7865;
		}
		short HayBale();
		enum Axis Axis(short ID);
	}
	namespace HeavyWeightedPressurePlate
	{
		constexpr short HeavyWeightedPressurePlate(unsigned char Power)
		{
			if (Power == 0) return 6662;
			if (Power == 1) return 6663;
			if (Power == 2) return 6664;
			if (Power == 3) return 6665;
			if (Power == 4) return 6666;
			if (Power == 5) return 6667;
			if (Power == 6) return 6668;
			if (Power == 7) return 6669;
			if (Power == 8) return 6670;
			if (Power == 9) return 6671;
			if (Power == 10) return 6672;
			if (Power == 11) return 6673;
			if (Power == 12) return 6674;
			if (Power == 13) return 6675;
			if (Power == 14) return 6676;
			return 6677;
		}
		short HeavyWeightedPressurePlate();
		unsigned char Power(short ID);
	}
	namespace HoneyBlock
	{
		constexpr short HoneyBlock()
		{
			return 15824;
		}
	}
	namespace HoneycombBlock
	{
		constexpr short HoneycombBlock()
		{
			return 15825;
		}
	}
	namespace Hopper
	{
		constexpr short Hopper(bool Enabled, eBlockFace Facing)
		{
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_YM) return 6728;
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_ZM) return 6729;
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_ZP) return 6730;
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_XM) return 6731;
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_XP) return 6732;
			if (!Enabled && Facing == eBlockFace::BLOCK_FACE_YM) return 6733;
			if (!Enabled && Facing == eBlockFace::BLOCK_FACE_ZM) return 6734;
			if (!Enabled && Facing == eBlockFace::BLOCK_FACE_ZP) return 6735;
			if (!Enabled && Facing == eBlockFace::BLOCK_FACE_XM) return 6736;
			return 6737;
		}
		short Hopper();
		bool Enabled(short ID);
		eBlockFace Facing(short ID);
	}
	namespace HornCoral
	{
		constexpr short HornCoral()
		{
			return 9539;
		}
	}
	namespace HornCoralBlock
	{
		constexpr short HornCoralBlock()
		{
			return 9519;
		}
	}
	namespace HornCoralFan
	{
		constexpr short HornCoralFan()
		{
			return 9559;
		}
	}
	namespace HornCoralWallFan
	{
		constexpr short HornCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9633;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9635;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9637;
			return 9639;
		}
		short HornCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace Ice
	{
		constexpr short Ice()
		{
			return 3929;
		}
	}
	namespace InfestedChiseledStoneBricks
	{
		constexpr short InfestedChiseledStoneBricks()
		{
			return 4504;
		}
	}
	namespace InfestedCobblestone
	{
		constexpr short InfestedCobblestone()
		{
			return 4500;
		}
	}
	namespace InfestedCrackedStoneBricks
	{
		constexpr short InfestedCrackedStoneBricks()
		{
			return 4503;
		}
	}
	namespace InfestedMossyStoneBricks
	{
		constexpr short InfestedMossyStoneBricks()
		{
			return 4502;
		}
	}
	namespace InfestedStone
	{
		constexpr short InfestedStone()
		{
			return 4499;
		}
	}
	namespace InfestedStoneBricks
	{
		constexpr short InfestedStoneBricks()
		{
			return 4501;
		}
	}
	namespace IronBars
	{
		constexpr short IronBars(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 4699;
			if (East && North && South && !West) return 4700;
			if (East && North && !South && West) return 4703;
			if (East && North && !South && !West) return 4704;
			if (East && !North && South && West) return 4707;
			if (East && !North && South && !West) return 4708;
			if (East && !North && !South && West) return 4711;
			if (East && !North && !South && !West) return 4712;
			if (!East && North && South && West) return 4715;
			if (!East && North && South && !West) return 4716;
			if (!East && North && !South && West) return 4719;
			if (!East && North && !South && !West) return 4720;
			if (!East && !North && South && West) return 4723;
			if (!East && !North && South && !West) return 4724;
			if (!East && !North && !South && West) return 4727;
			return 4728;
		}
		short IronBars();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace IronBlock
	{
		constexpr short IronBlock()
		{
			return 1428;
		}
	}
	namespace IronDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short IronDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 3809;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 3810;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 3811;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 3812;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 3813;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 3814;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 3815;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 3816;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 3817;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 3818;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 3819;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 3820;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 3821;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 3822;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 3823;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 3824;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 3825;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 3826;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 3827;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 3828;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 3829;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 3830;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 3831;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 3832;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 3833;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 3834;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 3835;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 3836;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 3837;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 3838;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 3839;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 3840;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 3841;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 3842;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 3843;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 3844;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 3845;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 3846;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 3847;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 3848;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 3849;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 3850;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 3851;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 3852;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 3853;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 3854;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 3855;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 3856;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 3857;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 3858;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 3859;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 3860;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 3861;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 3862;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 3863;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 3864;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 3865;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 3866;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 3867;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 3868;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 3869;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 3870;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 3871;
			return 3872;
		}
		short IronDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace IronOre
	{
		constexpr short IronOre()
		{
			return 70;
		}
	}
	namespace IronTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short IronTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && Powered) return 7538;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && !Powered) return 7540;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && Powered) return 7542;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && !Powered) return 7544;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && Powered) return 7546;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && !Powered) return 7548;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && Powered) return 7550;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && !Powered) return 7552;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && Powered) return 7554;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && !Powered) return 7556;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && Powered) return 7558;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && !Powered) return 7560;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && Powered) return 7562;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && !Powered) return 7564;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && Powered) return 7566;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && !Powered) return 7568;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && Powered) return 7570;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && !Powered) return 7572;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && Powered) return 7574;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && !Powered) return 7576;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && Powered) return 7578;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && !Powered) return 7580;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && Powered) return 7582;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && !Powered) return 7584;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && Powered) return 7586;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && !Powered) return 7588;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && Powered) return 7590;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && !Powered) return 7592;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && Powered) return 7594;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && !Powered) return 7596;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && !Open && Powered) return 7598;
			return 7600;
		}
		short IronTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace JackOLantern
	{
		constexpr short JackOLantern(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4020;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4021;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4022;
			return 4023;
		}
		short JackOLantern();
		eBlockFace Facing(short ID);
	}
	namespace Jigsaw
	{
		enum class Orientation
		{
			DownEast,
			DownNorth,
			DownSouth,
			DownWest,
			UpEast,
			UpNorth,
			UpSouth,
			UpWest,
			WestUp,
			EastUp,
			NorthUp,
			SouthUp
		};
		constexpr short Jigsaw(enum Orientation Orientation)
		{
			if (Orientation == Orientation::DownEast) return 15739;
			if (Orientation == Orientation::DownNorth) return 15740;
			if (Orientation == Orientation::DownSouth) return 15741;
			if (Orientation == Orientation::DownWest) return 15742;
			if (Orientation == Orientation::UpEast) return 15743;
			if (Orientation == Orientation::UpNorth) return 15744;
			if (Orientation == Orientation::UpSouth) return 15745;
			if (Orientation == Orientation::UpWest) return 15746;
			if (Orientation == Orientation::WestUp) return 15747;
			if (Orientation == Orientation::EastUp) return 15748;
			if (Orientation == Orientation::NorthUp) return 15749;
			return 15750;
		}
		short Jigsaw();
		enum Orientation Orientation(short ID);
	}
	namespace Jukebox
	{
		constexpr short Jukebox(bool HasRecord)
		{
			if (HasRecord) return 3964;
			return 3965;
		}
		short Jukebox();
		bool HasRecord(short ID);
	}
	namespace JungleButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short JungleButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6418;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6419;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6420;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6421;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6422;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6423;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6424;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6425;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6426;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6427;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6428;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6429;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6430;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6431;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6432;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6433;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6434;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6435;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6436;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6437;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6438;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6439;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6440;
			return 6441;
		}
		short JungleButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace JungleDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short JungleDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8866;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8867;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8868;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8869;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8870;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8871;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8872;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8873;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8874;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8875;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8876;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8877;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8878;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8879;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8880;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8881;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8882;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8883;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8884;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8885;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8886;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8887;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8888;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8889;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8890;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8891;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8892;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8893;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8894;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8895;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8896;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8897;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8898;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8899;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8900;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8901;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8902;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8903;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8904;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8905;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8906;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8907;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8908;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8909;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8910;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8911;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8912;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8913;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8914;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8915;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8916;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8917;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8918;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8919;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8920;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8921;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8922;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8923;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8924;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8925;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8926;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8927;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8928;
			return 8929;
		}
		short JungleDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace JungleFence
	{
		constexpr short JungleFence(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 8644;
			if (East && North && South && !West) return 8645;
			if (East && North && !South && West) return 8648;
			if (East && North && !South && !West) return 8649;
			if (East && !North && South && West) return 8652;
			if (East && !North && South && !West) return 8653;
			if (East && !North && !South && West) return 8656;
			if (East && !North && !South && !West) return 8657;
			if (!East && North && South && West) return 8660;
			if (!East && North && South && !West) return 8661;
			if (!East && North && !South && West) return 8664;
			if (!East && North && !South && !West) return 8665;
			if (!East && !North && South && West) return 8668;
			if (!East && !North && South && !West) return 8669;
			if (!East && !North && !South && West) return 8672;
			return 8673;
		}
		short JungleFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace JungleFenceGate
	{
		constexpr short JungleFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && Powered) return 8482;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && !Powered) return 8483;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && Powered) return 8484;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && !Powered) return 8485;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && Powered) return 8486;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && !Powered) return 8487;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && Powered) return 8488;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && !Powered) return 8489;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && Powered) return 8490;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && !Powered) return 8491;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && Powered) return 8492;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && !Powered) return 8493;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && Powered) return 8494;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && !Powered) return 8495;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && Powered) return 8496;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && !Powered) return 8497;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && Powered) return 8498;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && !Powered) return 8499;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && Powered) return 8500;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && !Powered) return 8501;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && Powered) return 8502;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && !Powered) return 8503;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && Powered) return 8504;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && !Powered) return 8505;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && Powered) return 8506;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && !Powered) return 8507;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && Powered) return 8508;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && !Powered) return 8509;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && Powered) return 8510;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && !Powered) return 8511;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && !Open && Powered) return 8512;
			return 8513;
		}
		short JungleFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace JungleLeaves
	{
		constexpr short JungleLeaves(unsigned char Distance, bool Persistent)
		{
			if (Distance == 1 && Persistent) return 187;
			if (Distance == 1 && !Persistent) return 188;
			if (Distance == 2 && Persistent) return 189;
			if (Distance == 2 && !Persistent) return 190;
			if (Distance == 3 && Persistent) return 191;
			if (Distance == 3 && !Persistent) return 192;
			if (Distance == 4 && Persistent) return 193;
			if (Distance == 4 && !Persistent) return 194;
			if (Distance == 5 && Persistent) return 195;
			if (Distance == 5 && !Persistent) return 196;
			if (Distance == 6 && Persistent) return 197;
			if (Distance == 6 && !Persistent) return 198;
			if (Distance == 7 && Persistent) return 199;
			return 200;
		}
		short JungleLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace JungleLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short JungleLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 82;
			if (Axis == Axis::Y) return 83;
			return 84;
		}
		short JungleLog();
		enum Axis Axis(short ID);
	}
	namespace JunglePlanks
	{
		constexpr short JunglePlanks()
		{
			return 18;
		}
	}
	namespace JunglePressurePlate
	{
		constexpr short JunglePressurePlate(bool Powered)
		{
			if (Powered) return 3879;
			return 3880;
		}
		short JunglePressurePlate();
		bool Powered(short ID);
	}
	namespace JungleSapling
	{
		constexpr short JungleSapling(unsigned char Stage)
		{
			if (Stage == 0) return 27;
			return 28;
		}
		short JungleSapling();
		unsigned char Stage(short ID);
	}
	namespace JungleSign
	{
		constexpr short JungleSign(unsigned char Rotation)
		{
			if (Rotation == 0) return 3510;
			if (Rotation == 1) return 3512;
			if (Rotation == 2) return 3514;
			if (Rotation == 3) return 3516;
			if (Rotation == 4) return 3518;
			if (Rotation == 5) return 3520;
			if (Rotation == 6) return 3522;
			if (Rotation == 7) return 3524;
			if (Rotation == 8) return 3526;
			if (Rotation == 9) return 3528;
			if (Rotation == 10) return 3530;
			if (Rotation == 11) return 3532;
			if (Rotation == 12) return 3534;
			if (Rotation == 13) return 3536;
			if (Rotation == 14) return 3538;
			return 3540;
		}
		short JungleSign();
		unsigned char Rotation(short ID);
	}
	namespace JungleSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short JungleSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8319;
			if (Type == Type::Bottom) return 8321;
			return 8323;
		}
		short JungleSlab();
		enum Type Type(short ID);
	}
	namespace JungleStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short JungleStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 5565;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 5567;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 5569;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 5571;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 5573;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 5575;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5577;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5579;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5581;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5583;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 5585;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 5587;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 5589;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 5591;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 5593;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 5595;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5597;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5599;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5601;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 5603;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 5605;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 5607;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 5609;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 5611;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 5613;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 5615;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5617;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5619;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5621;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5623;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 5625;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 5627;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 5629;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 5631;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 5633;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 5635;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5637;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5639;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5641;
			return 5643;
		}
		short JungleStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace JungleTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short JungleTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && Powered) return 4304;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && !Powered) return 4306;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && Powered) return 4308;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && !Powered) return 4310;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && Powered) return 4312;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && !Powered) return 4314;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && Powered) return 4316;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && !Powered) return 4318;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && Powered) return 4320;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && !Powered) return 4322;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && Powered) return 4324;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && !Powered) return 4326;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && Powered) return 4328;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && !Powered) return 4330;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && Powered) return 4332;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && !Powered) return 4334;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && Powered) return 4336;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && !Powered) return 4338;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && Powered) return 4340;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && !Powered) return 4342;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && Powered) return 4344;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && !Powered) return 4346;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && Powered) return 4348;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && !Powered) return 4350;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && Powered) return 4352;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && !Powered) return 4354;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && Powered) return 4356;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && !Powered) return 4358;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && Powered) return 4360;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && !Powered) return 4362;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && !Open && Powered) return 4364;
			return 4366;
		}
		short JungleTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace JungleWallSign
	{
		constexpr short JungleWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3768;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3770;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 3772;
			return 3774;
		}
		short JungleWallSign();
		eBlockFace Facing(short ID);
	}
	namespace JungleWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short JungleWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 118;
			if (Axis == Axis::Y) return 119;
			return 120;
		}
		short JungleWood();
		enum Axis Axis(short ID);
	}
	namespace Kelp
	{
		constexpr short Kelp(unsigned char Age)
		{
			if (Age == 0) return 9470;
			if (Age == 1) return 9471;
			if (Age == 2) return 9472;
			if (Age == 3) return 9473;
			if (Age == 4) return 9474;
			if (Age == 5) return 9475;
			if (Age == 6) return 9476;
			if (Age == 7) return 9477;
			if (Age == 8) return 9478;
			if (Age == 9) return 9479;
			if (Age == 10) return 9480;
			if (Age == 11) return 9481;
			if (Age == 12) return 9482;
			if (Age == 13) return 9483;
			if (Age == 14) return 9484;
			if (Age == 15) return 9485;
			if (Age == 16) return 9486;
			if (Age == 17) return 9487;
			if (Age == 18) return 9488;
			if (Age == 19) return 9489;
			if (Age == 20) return 9490;
			if (Age == 21) return 9491;
			if (Age == 22) return 9492;
			if (Age == 23) return 9493;
			if (Age == 24) return 9494;
			return 9495;
		}
		short Kelp();
		unsigned char Age(short ID);
	}
	namespace KelpPlant
	{
		constexpr short KelpPlant()
		{
			return 9496;
		}
	}
	namespace Ladder
	{
		constexpr short Ladder(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3638;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3640;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 3642;
			return 3644;
		}
		short Ladder();
		eBlockFace Facing(short ID);
	}
	namespace Lantern
	{
		constexpr short Lantern(bool Hanging)
		{
			if (Hanging) return 14886;
			return 14887;
		}
		short Lantern();
		bool Hanging(short ID);
	}
	namespace LapisBlock
	{
		constexpr short LapisBlock()
		{
			return 233;
		}
	}
	namespace LapisOre
	{
		constexpr short LapisOre()
		{
			return 232;
		}
	}
	namespace LargeFern
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short LargeFern(enum Half Half)
		{
			if (Half == Half::Upper) return 7895;
			return 7896;
		}
		short LargeFern();
		enum Half Half(short ID);
	}
	namespace Lava
	{
		constexpr short Lava(unsigned char Level)
		{
			if (Level == 0) return 50;
			if (Level == 1) return 51;
			if (Level == 2) return 52;
			if (Level == 3) return 53;
			if (Level == 4) return 54;
			if (Level == 5) return 55;
			if (Level == 6) return 56;
			if (Level == 7) return 57;
			if (Level == 8) return 58;
			if (Level == 9) return 59;
			if (Level == 10) return 60;
			if (Level == 11) return 61;
			if (Level == 12) return 62;
			if (Level == 13) return 63;
			if (Level == 14) return 64;
			return 65;
		}
		short Lava();
		unsigned char Level(short ID);
	}
	namespace Lectern
	{
		constexpr short Lectern(eBlockFace Facing, bool HasBook, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HasBook && Powered) return 14833;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HasBook && !Powered) return 14834;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !HasBook && Powered) return 14835;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !HasBook && !Powered) return 14836;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HasBook && Powered) return 14837;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HasBook && !Powered) return 14838;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !HasBook && Powered) return 14839;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !HasBook && !Powered) return 14840;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HasBook && Powered) return 14841;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HasBook && !Powered) return 14842;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !HasBook && Powered) return 14843;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !HasBook && !Powered) return 14844;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HasBook && Powered) return 14845;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HasBook && !Powered) return 14846;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !HasBook && Powered) return 14847;
			return 14848;
		}
		short Lectern();
		eBlockFace Facing(short ID);
		bool HasBook(short ID);
		bool Powered(short ID);
	}
	namespace Lever
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short Lever(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 3783;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 3784;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 3785;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 3786;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 3787;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 3788;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 3789;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 3790;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 3791;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 3792;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 3793;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 3794;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 3795;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 3796;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 3797;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 3798;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 3799;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 3800;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 3801;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 3802;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 3803;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 3804;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 3805;
			return 3806;
		}
		short Lever();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace LightBlueBanner
	{
		constexpr short LightBlueBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 7945;
			if (Rotation == 1) return 7946;
			if (Rotation == 2) return 7947;
			if (Rotation == 3) return 7948;
			if (Rotation == 4) return 7949;
			if (Rotation == 5) return 7950;
			if (Rotation == 6) return 7951;
			if (Rotation == 7) return 7952;
			if (Rotation == 8) return 7953;
			if (Rotation == 9) return 7954;
			if (Rotation == 10) return 7955;
			if (Rotation == 11) return 7956;
			if (Rotation == 12) return 7957;
			if (Rotation == 13) return 7958;
			if (Rotation == 14) return 7959;
			return 7960;
		}
		short LightBlueBanner();
		unsigned char Rotation(short ID);
	}
	namespace LightBlueBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short LightBlueBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1097;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1098;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1099;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1100;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1101;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1102;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1103;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1104;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1105;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1106;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1107;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1108;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1109;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1110;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1111;
			return 1112;
		}
		short LightBlueBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace LightBlueCarpet
	{
		constexpr short LightBlueCarpet()
		{
			return 7869;
		}
	}
	namespace LightBlueConcrete
	{
		constexpr short LightBlueConcrete()
		{
			return 9441;
		}
	}
	namespace LightBlueConcretePowder
	{
		constexpr short LightBlueConcretePowder()
		{
			return 9457;
		}
	}
	namespace LightBlueGlazedTerracotta
	{
		constexpr short LightBlueGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9386;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9387;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9388;
			return 9389;
		}
		short LightBlueGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace LightBlueShulkerBox
	{
		constexpr short LightBlueShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9296;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9297;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9298;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9299;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9300;
			return 9301;
		}
		short LightBlueShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace LightBlueStainedGlass
	{
		constexpr short LightBlueStainedGlass()
		{
			return 4098;
		}
	}
	namespace LightBlueStainedGlassPane
	{
		constexpr short LightBlueStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 6961;
			if (East && North && South && !West) return 6962;
			if (East && North && !South && West) return 6965;
			if (East && North && !South && !West) return 6966;
			if (East && !North && South && West) return 6969;
			if (East && !North && South && !West) return 6970;
			if (East && !North && !South && West) return 6973;
			if (East && !North && !South && !West) return 6974;
			if (!East && North && South && West) return 6977;
			if (!East && North && South && !West) return 6978;
			if (!East && North && !South && West) return 6981;
			if (!East && North && !South && !West) return 6982;
			if (!East && !North && South && West) return 6985;
			if (!East && !North && South && !West) return 6986;
			if (!East && !North && !South && West) return 6989;
			return 6990;
		}
		short LightBlueStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace LightBlueTerracotta
	{
		constexpr short LightBlueTerracotta()
		{
			return 6850;
		}
	}
	namespace LightBlueWallBanner
	{
		constexpr short LightBlueWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8165;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8166;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8167;
			return 8168;
		}
		short LightBlueWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace LightBlueWool
	{
		constexpr short LightBlueWool()
		{
			return 1387;
		}
	}
	namespace LightGrayBanner
	{
		constexpr short LightGrayBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8025;
			if (Rotation == 1) return 8026;
			if (Rotation == 2) return 8027;
			if (Rotation == 3) return 8028;
			if (Rotation == 4) return 8029;
			if (Rotation == 5) return 8030;
			if (Rotation == 6) return 8031;
			if (Rotation == 7) return 8032;
			if (Rotation == 8) return 8033;
			if (Rotation == 9) return 8034;
			if (Rotation == 10) return 8035;
			if (Rotation == 11) return 8036;
			if (Rotation == 12) return 8037;
			if (Rotation == 13) return 8038;
			if (Rotation == 14) return 8039;
			return 8040;
		}
		short LightGrayBanner();
		unsigned char Rotation(short ID);
	}
	namespace LightGrayBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short LightGrayBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1177;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1178;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1179;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1180;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1181;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1182;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1183;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1184;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1185;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1186;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1187;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1188;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1189;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1190;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1191;
			return 1192;
		}
		short LightGrayBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace LightGrayCarpet
	{
		constexpr short LightGrayCarpet()
		{
			return 7874;
		}
	}
	namespace LightGrayConcrete
	{
		constexpr short LightGrayConcrete()
		{
			return 9446;
		}
	}
	namespace LightGrayConcretePowder
	{
		constexpr short LightGrayConcretePowder()
		{
			return 9462;
		}
	}
	namespace LightGrayGlazedTerracotta
	{
		constexpr short LightGrayGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9406;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9407;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9408;
			return 9409;
		}
		short LightGrayGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace LightGrayShulkerBox
	{
		constexpr short LightGrayShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9326;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9327;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9328;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9329;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9330;
			return 9331;
		}
		short LightGrayShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace LightGrayStainedGlass
	{
		constexpr short LightGrayStainedGlass()
		{
			return 4103;
		}
	}
	namespace LightGrayStainedGlassPane
	{
		constexpr short LightGrayStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7121;
			if (East && North && South && !West) return 7122;
			if (East && North && !South && West) return 7125;
			if (East && North && !South && !West) return 7126;
			if (East && !North && South && West) return 7129;
			if (East && !North && South && !West) return 7130;
			if (East && !North && !South && West) return 7133;
			if (East && !North && !South && !West) return 7134;
			if (!East && North && South && West) return 7137;
			if (!East && North && South && !West) return 7138;
			if (!East && North && !South && West) return 7141;
			if (!East && North && !South && !West) return 7142;
			if (!East && !North && South && West) return 7145;
			if (!East && !North && South && !West) return 7146;
			if (!East && !North && !South && West) return 7149;
			return 7150;
		}
		short LightGrayStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace LightGrayTerracotta
	{
		constexpr short LightGrayTerracotta()
		{
			return 6855;
		}
	}
	namespace LightGrayWallBanner
	{
		constexpr short LightGrayWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8185;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8186;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8187;
			return 8188;
		}
		short LightGrayWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace LightGrayWool
	{
		constexpr short LightGrayWool()
		{
			return 1392;
		}
	}
	namespace LightWeightedPressurePlate
	{
		constexpr short LightWeightedPressurePlate(unsigned char Power)
		{
			if (Power == 0) return 6646;
			if (Power == 1) return 6647;
			if (Power == 2) return 6648;
			if (Power == 3) return 6649;
			if (Power == 4) return 6650;
			if (Power == 5) return 6651;
			if (Power == 6) return 6652;
			if (Power == 7) return 6653;
			if (Power == 8) return 6654;
			if (Power == 9) return 6655;
			if (Power == 10) return 6656;
			if (Power == 11) return 6657;
			if (Power == 12) return 6658;
			if (Power == 13) return 6659;
			if (Power == 14) return 6660;
			return 6661;
		}
		short LightWeightedPressurePlate();
		unsigned char Power(short ID);
	}
	namespace Lilac
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short Lilac(enum Half Half)
		{
			if (Half == Half::Upper) return 7887;
			return 7888;
		}
		short Lilac();
		enum Half Half(short ID);
	}
	namespace LilyOfTheValley
	{
		constexpr short LilyOfTheValley()
		{
			return 1424;
		}
	}
	namespace LilyPad
	{
		constexpr short LilyPad()
		{
			return 5014;
		}
	}
	namespace LimeBanner
	{
		constexpr short LimeBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 7977;
			if (Rotation == 1) return 7978;
			if (Rotation == 2) return 7979;
			if (Rotation == 3) return 7980;
			if (Rotation == 4) return 7981;
			if (Rotation == 5) return 7982;
			if (Rotation == 6) return 7983;
			if (Rotation == 7) return 7984;
			if (Rotation == 8) return 7985;
			if (Rotation == 9) return 7986;
			if (Rotation == 10) return 7987;
			if (Rotation == 11) return 7988;
			if (Rotation == 12) return 7989;
			if (Rotation == 13) return 7990;
			if (Rotation == 14) return 7991;
			return 7992;
		}
		short LimeBanner();
		unsigned char Rotation(short ID);
	}
	namespace LimeBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short LimeBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1129;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1130;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1131;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1132;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1133;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1134;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1135;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1136;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1137;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1138;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1139;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1140;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1141;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1142;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1143;
			return 1144;
		}
		short LimeBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace LimeCarpet
	{
		constexpr short LimeCarpet()
		{
			return 7871;
		}
	}
	namespace LimeConcrete
	{
		constexpr short LimeConcrete()
		{
			return 9443;
		}
	}
	namespace LimeConcretePowder
	{
		constexpr short LimeConcretePowder()
		{
			return 9459;
		}
	}
	namespace LimeGlazedTerracotta
	{
		constexpr short LimeGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9394;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9395;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9396;
			return 9397;
		}
		short LimeGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace LimeShulkerBox
	{
		constexpr short LimeShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9308;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9309;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9310;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9311;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9312;
			return 9313;
		}
		short LimeShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace LimeStainedGlass
	{
		constexpr short LimeStainedGlass()
		{
			return 4100;
		}
	}
	namespace LimeStainedGlassPane
	{
		constexpr short LimeStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7025;
			if (East && North && South && !West) return 7026;
			if (East && North && !South && West) return 7029;
			if (East && North && !South && !West) return 7030;
			if (East && !North && South && West) return 7033;
			if (East && !North && South && !West) return 7034;
			if (East && !North && !South && West) return 7037;
			if (East && !North && !South && !West) return 7038;
			if (!East && North && South && West) return 7041;
			if (!East && North && South && !West) return 7042;
			if (!East && North && !South && West) return 7045;
			if (!East && North && !South && !West) return 7046;
			if (!East && !North && South && West) return 7049;
			if (!East && !North && South && !West) return 7050;
			if (!East && !North && !South && West) return 7053;
			return 7054;
		}
		short LimeStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace LimeTerracotta
	{
		constexpr short LimeTerracotta()
		{
			return 6852;
		}
	}
	namespace LimeWallBanner
	{
		constexpr short LimeWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8173;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8174;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8175;
			return 8176;
		}
		short LimeWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace LimeWool
	{
		constexpr short LimeWool()
		{
			return 1389;
		}
	}
	namespace Lodestone
	{
		constexpr short Lodestone()
		{
			return 15838;
		}
	}
	namespace Loom
	{
		constexpr short Loom(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14787;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14788;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 14789;
			return 14790;
		}
		short Loom();
		eBlockFace Facing(short ID);
	}
	namespace MagentaBanner
	{
		constexpr short MagentaBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 7929;
			if (Rotation == 1) return 7930;
			if (Rotation == 2) return 7931;
			if (Rotation == 3) return 7932;
			if (Rotation == 4) return 7933;
			if (Rotation == 5) return 7934;
			if (Rotation == 6) return 7935;
			if (Rotation == 7) return 7936;
			if (Rotation == 8) return 7937;
			if (Rotation == 9) return 7938;
			if (Rotation == 10) return 7939;
			if (Rotation == 11) return 7940;
			if (Rotation == 12) return 7941;
			if (Rotation == 13) return 7942;
			if (Rotation == 14) return 7943;
			return 7944;
		}
		short MagentaBanner();
		unsigned char Rotation(short ID);
	}
	namespace MagentaBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short MagentaBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1081;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1082;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1083;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1084;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1085;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1086;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1087;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1088;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1089;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1090;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1091;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1092;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1093;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1094;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1095;
			return 1096;
		}
		short MagentaBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace MagentaCarpet
	{
		constexpr short MagentaCarpet()
		{
			return 7868;
		}
	}
	namespace MagentaConcrete
	{
		constexpr short MagentaConcrete()
		{
			return 9440;
		}
	}
	namespace MagentaConcretePowder
	{
		constexpr short MagentaConcretePowder()
		{
			return 9456;
		}
	}
	namespace MagentaGlazedTerracotta
	{
		constexpr short MagentaGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9382;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9383;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9384;
			return 9385;
		}
		short MagentaGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace MagentaShulkerBox
	{
		constexpr short MagentaShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9290;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9291;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9292;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9293;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9294;
			return 9295;
		}
		short MagentaShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace MagentaStainedGlass
	{
		constexpr short MagentaStainedGlass()
		{
			return 4097;
		}
	}
	namespace MagentaStainedGlassPane
	{
		constexpr short MagentaStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 6929;
			if (East && North && South && !West) return 6930;
			if (East && North && !South && West) return 6933;
			if (East && North && !South && !West) return 6934;
			if (East && !North && South && West) return 6937;
			if (East && !North && South && !West) return 6938;
			if (East && !North && !South && West) return 6941;
			if (East && !North && !South && !West) return 6942;
			if (!East && North && South && West) return 6945;
			if (!East && North && South && !West) return 6946;
			if (!East && North && !South && West) return 6949;
			if (!East && North && !South && !West) return 6950;
			if (!East && !North && South && West) return 6953;
			if (!East && !North && South && !West) return 6954;
			if (!East && !North && !South && West) return 6957;
			return 6958;
		}
		short MagentaStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace MagentaTerracotta
	{
		constexpr short MagentaTerracotta()
		{
			return 6849;
		}
	}
	namespace MagentaWallBanner
	{
		constexpr short MagentaWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8161;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8162;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8163;
			return 8164;
		}
		short MagentaWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace MagentaWool
	{
		constexpr short MagentaWool()
		{
			return 1386;
		}
	}
	namespace MagmaBlock
	{
		constexpr short MagmaBlock()
		{
			return 9253;
		}
	}
	namespace Melon
	{
		constexpr short Melon()
		{
			return 4763;
		}
	}
	namespace MelonStem
	{
		constexpr short MelonStem(unsigned char Age)
		{
			if (Age == 0) return 4780;
			if (Age == 1) return 4781;
			if (Age == 2) return 4782;
			if (Age == 3) return 4783;
			if (Age == 4) return 4784;
			if (Age == 5) return 4785;
			if (Age == 6) return 4786;
			return 4787;
		}
		short MelonStem();
		unsigned char Age(short ID);
	}
	namespace MossyCobblestone
	{
		constexpr short MossyCobblestone()
		{
			return 1433;
		}
	}
	namespace MossyCobblestoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short MossyCobblestoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10814;
			if (Type == Type::Bottom) return 10816;
			return 10818;
		}
		short MossyCobblestoneSlab();
		enum Type Type(short ID);
	}
	namespace MossyCobblestoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short MossyCobblestoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 9990;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 9992;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 9994;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 9996;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 9998;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10000;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10002;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10004;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10006;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10008;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10010;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10012;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10014;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10016;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10018;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10020;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10022;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10024;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10026;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10028;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10030;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10032;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10034;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10036;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10038;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10040;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10042;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10044;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10046;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10048;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10050;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10052;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10054;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10056;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10058;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10060;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10062;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10064;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10066;
			return 10068;
		}
		short MossyCobblestoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace MossyCobblestoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short MossyCobblestoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 5984;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 5985;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 5986;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 5990;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 5991;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 5992;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 5996;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 5997;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 5998;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 6002;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 6003;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 6004;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 6008;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 6009;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 6010;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 6014;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 6015;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 6016;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 6020;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 6021;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 6022;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 6026;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 6027;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 6028;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 6032;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 6033;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 6034;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 6038;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 6039;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 6040;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 6044;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 6045;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 6046;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 6050;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 6051;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 6052;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 6056;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 6057;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 6058;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 6062;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 6063;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 6064;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 6068;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 6069;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 6070;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 6074;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 6075;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 6076;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 6080;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 6081;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 6082;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 6086;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 6087;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 6088;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 6092;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 6093;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 6094;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 6098;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 6099;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 6100;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 6104;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 6105;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 6106;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 6110;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 6111;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 6112;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 6116;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 6117;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 6118;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 6122;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 6123;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 6124;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 6128;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 6129;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 6130;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 6134;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 6135;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 6136;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 6140;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 6141;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 6142;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 6146;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 6147;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 6148;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 6152;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 6153;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 6154;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 6158;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 6159;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 6160;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 6164;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 6165;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 6166;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 6170;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 6171;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 6172;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 6176;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 6177;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 6178;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 6182;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 6183;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 6184;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 6188;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 6189;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 6190;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 6194;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 6195;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 6196;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 6200;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 6201;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 6202;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 6206;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 6207;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 6208;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 6212;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 6213;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 6214;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 6218;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 6219;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 6220;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 6224;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 6225;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 6226;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 6230;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 6231;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 6232;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 6236;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 6237;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 6238;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 6242;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 6243;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 6244;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 6248;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 6249;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 6250;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 6254;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 6255;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 6256;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 6260;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 6261;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 6262;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 6266;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 6267;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 6268;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 6272;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 6273;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 6274;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 6278;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 6279;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 6280;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 6284;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 6285;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 6286;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 6290;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 6291;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 6292;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 6296;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 6297;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 6298;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 6302;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 6303;
			return 6304;
		}
		short MossyCobblestoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace MossyStoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short MossyStoneBrickSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10802;
			if (Type == Type::Bottom) return 10804;
			return 10806;
		}
		short MossyStoneBrickSlab();
		enum Type Type(short ID);
	}
	namespace MossyStoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short MossyStoneBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 9830;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 9832;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 9834;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 9836;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 9838;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 9840;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9842;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9844;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9846;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9848;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 9850;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 9852;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 9854;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 9856;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 9858;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 9860;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9862;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9864;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9866;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 9868;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 9870;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 9872;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 9874;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 9876;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 9878;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 9880;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9882;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9884;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9886;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9888;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 9890;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 9892;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 9894;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 9896;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 9898;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 9900;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9902;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9904;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9906;
			return 9908;
		}
		short MossyStoneBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace MossyStoneBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short MossyStoneBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 11842;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 11843;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 11844;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 11848;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 11849;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 11850;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 11854;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 11855;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 11856;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 11860;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 11861;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 11862;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 11866;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 11867;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 11868;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 11872;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 11873;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11874;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 11878;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 11879;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 11880;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 11884;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 11885;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 11886;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 11890;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 11891;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 11892;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 11896;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 11897;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 11898;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 11902;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 11903;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 11904;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 11908;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 11909;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 11910;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 11914;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 11915;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 11916;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 11920;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 11921;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 11922;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 11926;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 11927;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 11928;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 11932;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 11933;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 11934;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 11938;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 11939;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 11940;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 11944;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 11945;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 11946;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 11950;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 11951;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 11952;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 11956;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 11957;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 11958;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 11962;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 11963;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 11964;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 11968;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 11969;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 11970;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 11974;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 11975;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 11976;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 11980;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 11981;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11982;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 11986;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 11987;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 11988;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 11992;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 11993;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 11994;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 11998;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 11999;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 12000;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 12004;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 12005;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12006;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 12010;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 12011;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12012;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 12016;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12017;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12018;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 12022;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 12023;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 12024;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 12028;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 12029;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 12030;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 12034;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 12035;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 12036;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 12040;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 12041;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 12042;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 12046;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 12047;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 12048;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 12052;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 12053;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 12054;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 12058;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 12059;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 12060;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 12064;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 12065;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 12066;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 12070;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 12071;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 12072;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 12076;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 12077;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 12078;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 12082;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 12083;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 12084;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 12088;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 12089;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 12090;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 12094;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 12095;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 12096;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 12100;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 12101;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 12102;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 12106;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 12107;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 12108;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 12112;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 12113;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12114;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 12118;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 12119;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12120;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 12124;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12125;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12126;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 12130;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 12131;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 12132;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 12136;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 12137;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 12138;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 12142;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 12143;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 12144;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 12148;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 12149;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 12150;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 12154;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 12155;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 12156;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 12160;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 12161;
			return 12162;
		}
		short MossyStoneBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace MossyStoneBricks
	{
		constexpr short MossyStoneBricks()
		{
			return 4496;
		}
	}
	namespace MovingPiston
	{
		enum class Type
		{
			Normal,
			Sticky
		};
		constexpr short MovingPiston(eBlockFace Facing, enum Type Type)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Normal) return 1400;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Sticky) return 1401;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Type == Type::Normal) return 1402;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Type == Type::Sticky) return 1403;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Normal) return 1404;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Sticky) return 1405;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Normal) return 1406;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Sticky) return 1407;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Type == Type::Normal) return 1408;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Type == Type::Sticky) return 1409;
			if (Facing == eBlockFace::BLOCK_FACE_YM && Type == Type::Normal) return 1410;
			return 1411;
		}
		short MovingPiston();
		eBlockFace Facing(short ID);
		enum Type Type(short ID);
	}
	namespace MushroomStem
	{
		constexpr short MushroomStem(bool Down, bool East, bool North, bool South, bool Up, bool West)
		{
			if (Down && East && North && South && Up && West) return 4633;
			if (Down && East && North && South && Up && !West) return 4634;
			if (Down && East && North && South && !Up && West) return 4635;
			if (Down && East && North && South && !Up && !West) return 4636;
			if (Down && East && North && !South && Up && West) return 4637;
			if (Down && East && North && !South && Up && !West) return 4638;
			if (Down && East && North && !South && !Up && West) return 4639;
			if (Down && East && North && !South && !Up && !West) return 4640;
			if (Down && East && !North && South && Up && West) return 4641;
			if (Down && East && !North && South && Up && !West) return 4642;
			if (Down && East && !North && South && !Up && West) return 4643;
			if (Down && East && !North && South && !Up && !West) return 4644;
			if (Down && East && !North && !South && Up && West) return 4645;
			if (Down && East && !North && !South && Up && !West) return 4646;
			if (Down && East && !North && !South && !Up && West) return 4647;
			if (Down && East && !North && !South && !Up && !West) return 4648;
			if (Down && !East && North && South && Up && West) return 4649;
			if (Down && !East && North && South && Up && !West) return 4650;
			if (Down && !East && North && South && !Up && West) return 4651;
			if (Down && !East && North && South && !Up && !West) return 4652;
			if (Down && !East && North && !South && Up && West) return 4653;
			if (Down && !East && North && !South && Up && !West) return 4654;
			if (Down && !East && North && !South && !Up && West) return 4655;
			if (Down && !East && North && !South && !Up && !West) return 4656;
			if (Down && !East && !North && South && Up && West) return 4657;
			if (Down && !East && !North && South && Up && !West) return 4658;
			if (Down && !East && !North && South && !Up && West) return 4659;
			if (Down && !East && !North && South && !Up && !West) return 4660;
			if (Down && !East && !North && !South && Up && West) return 4661;
			if (Down && !East && !North && !South && Up && !West) return 4662;
			if (Down && !East && !North && !South && !Up && West) return 4663;
			if (Down && !East && !North && !South && !Up && !West) return 4664;
			if (!Down && East && North && South && Up && West) return 4665;
			if (!Down && East && North && South && Up && !West) return 4666;
			if (!Down && East && North && South && !Up && West) return 4667;
			if (!Down && East && North && South && !Up && !West) return 4668;
			if (!Down && East && North && !South && Up && West) return 4669;
			if (!Down && East && North && !South && Up && !West) return 4670;
			if (!Down && East && North && !South && !Up && West) return 4671;
			if (!Down && East && North && !South && !Up && !West) return 4672;
			if (!Down && East && !North && South && Up && West) return 4673;
			if (!Down && East && !North && South && Up && !West) return 4674;
			if (!Down && East && !North && South && !Up && West) return 4675;
			if (!Down && East && !North && South && !Up && !West) return 4676;
			if (!Down && East && !North && !South && Up && West) return 4677;
			if (!Down && East && !North && !South && Up && !West) return 4678;
			if (!Down && East && !North && !South && !Up && West) return 4679;
			if (!Down && East && !North && !South && !Up && !West) return 4680;
			if (!Down && !East && North && South && Up && West) return 4681;
			if (!Down && !East && North && South && Up && !West) return 4682;
			if (!Down && !East && North && South && !Up && West) return 4683;
			if (!Down && !East && North && South && !Up && !West) return 4684;
			if (!Down && !East && North && !South && Up && West) return 4685;
			if (!Down && !East && North && !South && Up && !West) return 4686;
			if (!Down && !East && North && !South && !Up && West) return 4687;
			if (!Down && !East && North && !South && !Up && !West) return 4688;
			if (!Down && !East && !North && South && Up && West) return 4689;
			if (!Down && !East && !North && South && Up && !West) return 4690;
			if (!Down && !East && !North && South && !Up && West) return 4691;
			if (!Down && !East && !North && South && !Up && !West) return 4692;
			if (!Down && !East && !North && !South && Up && West) return 4693;
			if (!Down && !East && !North && !South && Up && !West) return 4694;
			if (!Down && !East && !North && !South && !Up && West) return 4695;
			return 4696;
		}
		short MushroomStem();
		bool Down(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace Mycelium
	{
		constexpr short Mycelium(bool Snowy)
		{
			if (Snowy) return 5012;
			return 5013;
		}
		short Mycelium();
		bool Snowy(short ID);
	}
	namespace NetherBrickFence
	{
		constexpr short NetherBrickFence(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 5018;
			if (East && North && South && !West) return 5019;
			if (East && North && !South && West) return 5022;
			if (East && North && !South && !West) return 5023;
			if (East && !North && South && West) return 5026;
			if (East && !North && South && !West) return 5027;
			if (East && !North && !South && West) return 5030;
			if (East && !North && !South && !West) return 5031;
			if (!East && North && South && West) return 5034;
			if (!East && North && South && !West) return 5035;
			if (!East && North && !South && West) return 5038;
			if (!East && North && !South && !West) return 5039;
			if (!East && !North && South && West) return 5042;
			if (!East && !North && South && !West) return 5043;
			if (!East && !North && !South && West) return 5046;
			return 5047;
		}
		short NetherBrickFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace NetherBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short NetherBrickSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8385;
			if (Type == Type::Bottom) return 8387;
			return 8389;
		}
		short NetherBrickSlab();
		enum Type Type(short ID);
	}
	namespace NetherBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short NetherBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 5049;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 5051;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 5053;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 5055;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 5057;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 5059;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5061;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5063;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5065;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5067;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 5069;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 5071;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 5073;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 5075;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 5077;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 5079;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5081;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5083;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5085;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 5087;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 5089;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 5091;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 5093;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 5095;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 5097;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 5099;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5101;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5103;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5105;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5107;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 5109;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 5111;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 5113;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 5115;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 5117;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 5119;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5121;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5123;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5125;
			return 5127;
		}
		short NetherBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace NetherBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short NetherBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 12814;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 12815;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 12816;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 12820;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 12821;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 12822;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 12826;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 12827;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 12828;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 12832;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 12833;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 12834;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 12838;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 12839;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 12840;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 12844;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 12845;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 12846;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 12850;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 12851;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 12852;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 12856;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 12857;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 12858;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 12862;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 12863;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 12864;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 12868;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 12869;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12870;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 12874;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 12875;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12876;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 12880;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12881;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12882;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 12886;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 12887;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 12888;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 12892;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 12893;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 12894;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 12898;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 12899;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 12900;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 12904;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 12905;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 12906;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 12910;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 12911;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 12912;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 12916;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 12917;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 12918;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 12922;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 12923;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 12924;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 12928;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 12929;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 12930;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 12934;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 12935;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 12936;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 12940;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 12941;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 12942;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 12946;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 12947;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 12948;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 12952;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 12953;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 12954;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 12958;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 12959;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 12960;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 12964;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 12965;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 12966;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 12970;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 12971;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 12972;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 12976;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 12977;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12978;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 12982;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 12983;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12984;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 12988;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12989;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12990;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 12994;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 12995;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 12996;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 13000;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 13001;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13002;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 13006;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 13007;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13008;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 13012;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13013;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13014;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 13018;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13019;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13020;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13024;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13025;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 13026;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 13030;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 13031;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 13032;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 13036;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 13037;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 13038;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 13042;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 13043;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 13044;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 13048;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 13049;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 13050;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 13054;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 13055;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 13056;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 13060;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 13061;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 13062;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 13066;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 13067;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 13068;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 13072;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 13073;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 13074;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 13078;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 13079;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 13080;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 13084;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 13085;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 13086;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 13090;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 13091;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 13092;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 13096;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 13097;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 13098;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 13102;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 13103;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 13104;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 13108;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 13109;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13110;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 13114;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 13115;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13116;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 13120;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13121;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13122;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 13126;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13127;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13128;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13132;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13133;
			return 13134;
		}
		short NetherBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace NetherBricks
	{
		constexpr short NetherBricks()
		{
			return 5015;
		}
	}
	namespace NetherGoldOre
	{
		constexpr short NetherGoldOre()
		{
			return 72;
		}
	}
	namespace NetherPortal
	{
		enum class Axis
		{
			X,
			Z
		};
		constexpr short NetherPortal(enum Axis Axis)
		{
			if (Axis == Axis::X) return 4014;
			return 4015;
		}
		short NetherPortal();
		enum Axis Axis(short ID);
	}
	namespace NetherQuartzOre
	{
		constexpr short NetherQuartzOre()
		{
			return 6727;
		}
	}
	namespace NetherSprouts
	{
		constexpr short NetherSprouts()
		{
			return 14974;
		}
	}
	namespace NetherWart
	{
		constexpr short NetherWart(unsigned char Age)
		{
			if (Age == 0) return 5128;
			if (Age == 1) return 5129;
			if (Age == 2) return 5130;
			return 5131;
		}
		short NetherWart();
		unsigned char Age(short ID);
	}
	namespace NetherWartBlock
	{
		constexpr short NetherWartBlock()
		{
			return 9254;
		}
	}
	namespace NetheriteBlock
	{
		constexpr short NetheriteBlock()
		{
			return 15826;
		}
	}
	namespace Netherrack
	{
		constexpr short Netherrack()
		{
			return 3999;
		}
	}
	namespace NoteBlock
	{
		enum class Instrument
		{
			Harp,
			Basedrum,
			Snare,
			Hat,
			Bass,
			Flute,
			Bell,
			Guitar,
			Chime,
			Xylophone,
			IronXylophone,
			CowBell,
			Didgeridoo,
			Bit,
			Banjo,
			Pling
		};
		constexpr short NoteBlock(enum Instrument Instrument, unsigned char Note, bool Powered)
		{
			if (Instrument == Instrument::Harp && Note == 0 && Powered) return 249;
			if (Instrument == Instrument::Harp && Note == 0 && !Powered) return 250;
			if (Instrument == Instrument::Harp && Note == 1 && Powered) return 251;
			if (Instrument == Instrument::Harp && Note == 1 && !Powered) return 252;
			if (Instrument == Instrument::Harp && Note == 2 && Powered) return 253;
			if (Instrument == Instrument::Harp && Note == 2 && !Powered) return 254;
			if (Instrument == Instrument::Harp && Note == 3 && Powered) return 255;
			if (Instrument == Instrument::Harp && Note == 3 && !Powered) return 256;
			if (Instrument == Instrument::Harp && Note == 4 && Powered) return 257;
			if (Instrument == Instrument::Harp && Note == 4 && !Powered) return 258;
			if (Instrument == Instrument::Harp && Note == 5 && Powered) return 259;
			if (Instrument == Instrument::Harp && Note == 5 && !Powered) return 260;
			if (Instrument == Instrument::Harp && Note == 6 && Powered) return 261;
			if (Instrument == Instrument::Harp && Note == 6 && !Powered) return 262;
			if (Instrument == Instrument::Harp && Note == 7 && Powered) return 263;
			if (Instrument == Instrument::Harp && Note == 7 && !Powered) return 264;
			if (Instrument == Instrument::Harp && Note == 8 && Powered) return 265;
			if (Instrument == Instrument::Harp && Note == 8 && !Powered) return 266;
			if (Instrument == Instrument::Harp && Note == 9 && Powered) return 267;
			if (Instrument == Instrument::Harp && Note == 9 && !Powered) return 268;
			if (Instrument == Instrument::Harp && Note == 10 && Powered) return 269;
			if (Instrument == Instrument::Harp && Note == 10 && !Powered) return 270;
			if (Instrument == Instrument::Harp && Note == 11 && Powered) return 271;
			if (Instrument == Instrument::Harp && Note == 11 && !Powered) return 272;
			if (Instrument == Instrument::Harp && Note == 12 && Powered) return 273;
			if (Instrument == Instrument::Harp && Note == 12 && !Powered) return 274;
			if (Instrument == Instrument::Harp && Note == 13 && Powered) return 275;
			if (Instrument == Instrument::Harp && Note == 13 && !Powered) return 276;
			if (Instrument == Instrument::Harp && Note == 14 && Powered) return 277;
			if (Instrument == Instrument::Harp && Note == 14 && !Powered) return 278;
			if (Instrument == Instrument::Harp && Note == 15 && Powered) return 279;
			if (Instrument == Instrument::Harp && Note == 15 && !Powered) return 280;
			if (Instrument == Instrument::Harp && Note == 16 && Powered) return 281;
			if (Instrument == Instrument::Harp && Note == 16 && !Powered) return 282;
			if (Instrument == Instrument::Harp && Note == 17 && Powered) return 283;
			if (Instrument == Instrument::Harp && Note == 17 && !Powered) return 284;
			if (Instrument == Instrument::Harp && Note == 18 && Powered) return 285;
			if (Instrument == Instrument::Harp && Note == 18 && !Powered) return 286;
			if (Instrument == Instrument::Harp && Note == 19 && Powered) return 287;
			if (Instrument == Instrument::Harp && Note == 19 && !Powered) return 288;
			if (Instrument == Instrument::Harp && Note == 20 && Powered) return 289;
			if (Instrument == Instrument::Harp && Note == 20 && !Powered) return 290;
			if (Instrument == Instrument::Harp && Note == 21 && Powered) return 291;
			if (Instrument == Instrument::Harp && Note == 21 && !Powered) return 292;
			if (Instrument == Instrument::Harp && Note == 22 && Powered) return 293;
			if (Instrument == Instrument::Harp && Note == 22 && !Powered) return 294;
			if (Instrument == Instrument::Harp && Note == 23 && Powered) return 295;
			if (Instrument == Instrument::Harp && Note == 23 && !Powered) return 296;
			if (Instrument == Instrument::Harp && Note == 24 && Powered) return 297;
			if (Instrument == Instrument::Harp && Note == 24 && !Powered) return 298;
			if (Instrument == Instrument::Basedrum && Note == 0 && Powered) return 299;
			if (Instrument == Instrument::Basedrum && Note == 0 && !Powered) return 300;
			if (Instrument == Instrument::Basedrum && Note == 1 && Powered) return 301;
			if (Instrument == Instrument::Basedrum && Note == 1 && !Powered) return 302;
			if (Instrument == Instrument::Basedrum && Note == 2 && Powered) return 303;
			if (Instrument == Instrument::Basedrum && Note == 2 && !Powered) return 304;
			if (Instrument == Instrument::Basedrum && Note == 3 && Powered) return 305;
			if (Instrument == Instrument::Basedrum && Note == 3 && !Powered) return 306;
			if (Instrument == Instrument::Basedrum && Note == 4 && Powered) return 307;
			if (Instrument == Instrument::Basedrum && Note == 4 && !Powered) return 308;
			if (Instrument == Instrument::Basedrum && Note == 5 && Powered) return 309;
			if (Instrument == Instrument::Basedrum && Note == 5 && !Powered) return 310;
			if (Instrument == Instrument::Basedrum && Note == 6 && Powered) return 311;
			if (Instrument == Instrument::Basedrum && Note == 6 && !Powered) return 312;
			if (Instrument == Instrument::Basedrum && Note == 7 && Powered) return 313;
			if (Instrument == Instrument::Basedrum && Note == 7 && !Powered) return 314;
			if (Instrument == Instrument::Basedrum && Note == 8 && Powered) return 315;
			if (Instrument == Instrument::Basedrum && Note == 8 && !Powered) return 316;
			if (Instrument == Instrument::Basedrum && Note == 9 && Powered) return 317;
			if (Instrument == Instrument::Basedrum && Note == 9 && !Powered) return 318;
			if (Instrument == Instrument::Basedrum && Note == 10 && Powered) return 319;
			if (Instrument == Instrument::Basedrum && Note == 10 && !Powered) return 320;
			if (Instrument == Instrument::Basedrum && Note == 11 && Powered) return 321;
			if (Instrument == Instrument::Basedrum && Note == 11 && !Powered) return 322;
			if (Instrument == Instrument::Basedrum && Note == 12 && Powered) return 323;
			if (Instrument == Instrument::Basedrum && Note == 12 && !Powered) return 324;
			if (Instrument == Instrument::Basedrum && Note == 13 && Powered) return 325;
			if (Instrument == Instrument::Basedrum && Note == 13 && !Powered) return 326;
			if (Instrument == Instrument::Basedrum && Note == 14 && Powered) return 327;
			if (Instrument == Instrument::Basedrum && Note == 14 && !Powered) return 328;
			if (Instrument == Instrument::Basedrum && Note == 15 && Powered) return 329;
			if (Instrument == Instrument::Basedrum && Note == 15 && !Powered) return 330;
			if (Instrument == Instrument::Basedrum && Note == 16 && Powered) return 331;
			if (Instrument == Instrument::Basedrum && Note == 16 && !Powered) return 332;
			if (Instrument == Instrument::Basedrum && Note == 17 && Powered) return 333;
			if (Instrument == Instrument::Basedrum && Note == 17 && !Powered) return 334;
			if (Instrument == Instrument::Basedrum && Note == 18 && Powered) return 335;
			if (Instrument == Instrument::Basedrum && Note == 18 && !Powered) return 336;
			if (Instrument == Instrument::Basedrum && Note == 19 && Powered) return 337;
			if (Instrument == Instrument::Basedrum && Note == 19 && !Powered) return 338;
			if (Instrument == Instrument::Basedrum && Note == 20 && Powered) return 339;
			if (Instrument == Instrument::Basedrum && Note == 20 && !Powered) return 340;
			if (Instrument == Instrument::Basedrum && Note == 21 && Powered) return 341;
			if (Instrument == Instrument::Basedrum && Note == 21 && !Powered) return 342;
			if (Instrument == Instrument::Basedrum && Note == 22 && Powered) return 343;
			if (Instrument == Instrument::Basedrum && Note == 22 && !Powered) return 344;
			if (Instrument == Instrument::Basedrum && Note == 23 && Powered) return 345;
			if (Instrument == Instrument::Basedrum && Note == 23 && !Powered) return 346;
			if (Instrument == Instrument::Basedrum && Note == 24 && Powered) return 347;
			if (Instrument == Instrument::Basedrum && Note == 24 && !Powered) return 348;
			if (Instrument == Instrument::Snare && Note == 0 && Powered) return 349;
			if (Instrument == Instrument::Snare && Note == 0 && !Powered) return 350;
			if (Instrument == Instrument::Snare && Note == 1 && Powered) return 351;
			if (Instrument == Instrument::Snare && Note == 1 && !Powered) return 352;
			if (Instrument == Instrument::Snare && Note == 2 && Powered) return 353;
			if (Instrument == Instrument::Snare && Note == 2 && !Powered) return 354;
			if (Instrument == Instrument::Snare && Note == 3 && Powered) return 355;
			if (Instrument == Instrument::Snare && Note == 3 && !Powered) return 356;
			if (Instrument == Instrument::Snare && Note == 4 && Powered) return 357;
			if (Instrument == Instrument::Snare && Note == 4 && !Powered) return 358;
			if (Instrument == Instrument::Snare && Note == 5 && Powered) return 359;
			if (Instrument == Instrument::Snare && Note == 5 && !Powered) return 360;
			if (Instrument == Instrument::Snare && Note == 6 && Powered) return 361;
			if (Instrument == Instrument::Snare && Note == 6 && !Powered) return 362;
			if (Instrument == Instrument::Snare && Note == 7 && Powered) return 363;
			if (Instrument == Instrument::Snare && Note == 7 && !Powered) return 364;
			if (Instrument == Instrument::Snare && Note == 8 && Powered) return 365;
			if (Instrument == Instrument::Snare && Note == 8 && !Powered) return 366;
			if (Instrument == Instrument::Snare && Note == 9 && Powered) return 367;
			if (Instrument == Instrument::Snare && Note == 9 && !Powered) return 368;
			if (Instrument == Instrument::Snare && Note == 10 && Powered) return 369;
			if (Instrument == Instrument::Snare && Note == 10 && !Powered) return 370;
			if (Instrument == Instrument::Snare && Note == 11 && Powered) return 371;
			if (Instrument == Instrument::Snare && Note == 11 && !Powered) return 372;
			if (Instrument == Instrument::Snare && Note == 12 && Powered) return 373;
			if (Instrument == Instrument::Snare && Note == 12 && !Powered) return 374;
			if (Instrument == Instrument::Snare && Note == 13 && Powered) return 375;
			if (Instrument == Instrument::Snare && Note == 13 && !Powered) return 376;
			if (Instrument == Instrument::Snare && Note == 14 && Powered) return 377;
			if (Instrument == Instrument::Snare && Note == 14 && !Powered) return 378;
			if (Instrument == Instrument::Snare && Note == 15 && Powered) return 379;
			if (Instrument == Instrument::Snare && Note == 15 && !Powered) return 380;
			if (Instrument == Instrument::Snare && Note == 16 && Powered) return 381;
			if (Instrument == Instrument::Snare && Note == 16 && !Powered) return 382;
			if (Instrument == Instrument::Snare && Note == 17 && Powered) return 383;
			if (Instrument == Instrument::Snare && Note == 17 && !Powered) return 384;
			if (Instrument == Instrument::Snare && Note == 18 && Powered) return 385;
			if (Instrument == Instrument::Snare && Note == 18 && !Powered) return 386;
			if (Instrument == Instrument::Snare && Note == 19 && Powered) return 387;
			if (Instrument == Instrument::Snare && Note == 19 && !Powered) return 388;
			if (Instrument == Instrument::Snare && Note == 20 && Powered) return 389;
			if (Instrument == Instrument::Snare && Note == 20 && !Powered) return 390;
			if (Instrument == Instrument::Snare && Note == 21 && Powered) return 391;
			if (Instrument == Instrument::Snare && Note == 21 && !Powered) return 392;
			if (Instrument == Instrument::Snare && Note == 22 && Powered) return 393;
			if (Instrument == Instrument::Snare && Note == 22 && !Powered) return 394;
			if (Instrument == Instrument::Snare && Note == 23 && Powered) return 395;
			if (Instrument == Instrument::Snare && Note == 23 && !Powered) return 396;
			if (Instrument == Instrument::Snare && Note == 24 && Powered) return 397;
			if (Instrument == Instrument::Snare && Note == 24 && !Powered) return 398;
			if (Instrument == Instrument::Hat && Note == 0 && Powered) return 399;
			if (Instrument == Instrument::Hat && Note == 0 && !Powered) return 400;
			if (Instrument == Instrument::Hat && Note == 1 && Powered) return 401;
			if (Instrument == Instrument::Hat && Note == 1 && !Powered) return 402;
			if (Instrument == Instrument::Hat && Note == 2 && Powered) return 403;
			if (Instrument == Instrument::Hat && Note == 2 && !Powered) return 404;
			if (Instrument == Instrument::Hat && Note == 3 && Powered) return 405;
			if (Instrument == Instrument::Hat && Note == 3 && !Powered) return 406;
			if (Instrument == Instrument::Hat && Note == 4 && Powered) return 407;
			if (Instrument == Instrument::Hat && Note == 4 && !Powered) return 408;
			if (Instrument == Instrument::Hat && Note == 5 && Powered) return 409;
			if (Instrument == Instrument::Hat && Note == 5 && !Powered) return 410;
			if (Instrument == Instrument::Hat && Note == 6 && Powered) return 411;
			if (Instrument == Instrument::Hat && Note == 6 && !Powered) return 412;
			if (Instrument == Instrument::Hat && Note == 7 && Powered) return 413;
			if (Instrument == Instrument::Hat && Note == 7 && !Powered) return 414;
			if (Instrument == Instrument::Hat && Note == 8 && Powered) return 415;
			if (Instrument == Instrument::Hat && Note == 8 && !Powered) return 416;
			if (Instrument == Instrument::Hat && Note == 9 && Powered) return 417;
			if (Instrument == Instrument::Hat && Note == 9 && !Powered) return 418;
			if (Instrument == Instrument::Hat && Note == 10 && Powered) return 419;
			if (Instrument == Instrument::Hat && Note == 10 && !Powered) return 420;
			if (Instrument == Instrument::Hat && Note == 11 && Powered) return 421;
			if (Instrument == Instrument::Hat && Note == 11 && !Powered) return 422;
			if (Instrument == Instrument::Hat && Note == 12 && Powered) return 423;
			if (Instrument == Instrument::Hat && Note == 12 && !Powered) return 424;
			if (Instrument == Instrument::Hat && Note == 13 && Powered) return 425;
			if (Instrument == Instrument::Hat && Note == 13 && !Powered) return 426;
			if (Instrument == Instrument::Hat && Note == 14 && Powered) return 427;
			if (Instrument == Instrument::Hat && Note == 14 && !Powered) return 428;
			if (Instrument == Instrument::Hat && Note == 15 && Powered) return 429;
			if (Instrument == Instrument::Hat && Note == 15 && !Powered) return 430;
			if (Instrument == Instrument::Hat && Note == 16 && Powered) return 431;
			if (Instrument == Instrument::Hat && Note == 16 && !Powered) return 432;
			if (Instrument == Instrument::Hat && Note == 17 && Powered) return 433;
			if (Instrument == Instrument::Hat && Note == 17 && !Powered) return 434;
			if (Instrument == Instrument::Hat && Note == 18 && Powered) return 435;
			if (Instrument == Instrument::Hat && Note == 18 && !Powered) return 436;
			if (Instrument == Instrument::Hat && Note == 19 && Powered) return 437;
			if (Instrument == Instrument::Hat && Note == 19 && !Powered) return 438;
			if (Instrument == Instrument::Hat && Note == 20 && Powered) return 439;
			if (Instrument == Instrument::Hat && Note == 20 && !Powered) return 440;
			if (Instrument == Instrument::Hat && Note == 21 && Powered) return 441;
			if (Instrument == Instrument::Hat && Note == 21 && !Powered) return 442;
			if (Instrument == Instrument::Hat && Note == 22 && Powered) return 443;
			if (Instrument == Instrument::Hat && Note == 22 && !Powered) return 444;
			if (Instrument == Instrument::Hat && Note == 23 && Powered) return 445;
			if (Instrument == Instrument::Hat && Note == 23 && !Powered) return 446;
			if (Instrument == Instrument::Hat && Note == 24 && Powered) return 447;
			if (Instrument == Instrument::Hat && Note == 24 && !Powered) return 448;
			if (Instrument == Instrument::Bass && Note == 0 && Powered) return 449;
			if (Instrument == Instrument::Bass && Note == 0 && !Powered) return 450;
			if (Instrument == Instrument::Bass && Note == 1 && Powered) return 451;
			if (Instrument == Instrument::Bass && Note == 1 && !Powered) return 452;
			if (Instrument == Instrument::Bass && Note == 2 && Powered) return 453;
			if (Instrument == Instrument::Bass && Note == 2 && !Powered) return 454;
			if (Instrument == Instrument::Bass && Note == 3 && Powered) return 455;
			if (Instrument == Instrument::Bass && Note == 3 && !Powered) return 456;
			if (Instrument == Instrument::Bass && Note == 4 && Powered) return 457;
			if (Instrument == Instrument::Bass && Note == 4 && !Powered) return 458;
			if (Instrument == Instrument::Bass && Note == 5 && Powered) return 459;
			if (Instrument == Instrument::Bass && Note == 5 && !Powered) return 460;
			if (Instrument == Instrument::Bass && Note == 6 && Powered) return 461;
			if (Instrument == Instrument::Bass && Note == 6 && !Powered) return 462;
			if (Instrument == Instrument::Bass && Note == 7 && Powered) return 463;
			if (Instrument == Instrument::Bass && Note == 7 && !Powered) return 464;
			if (Instrument == Instrument::Bass && Note == 8 && Powered) return 465;
			if (Instrument == Instrument::Bass && Note == 8 && !Powered) return 466;
			if (Instrument == Instrument::Bass && Note == 9 && Powered) return 467;
			if (Instrument == Instrument::Bass && Note == 9 && !Powered) return 468;
			if (Instrument == Instrument::Bass && Note == 10 && Powered) return 469;
			if (Instrument == Instrument::Bass && Note == 10 && !Powered) return 470;
			if (Instrument == Instrument::Bass && Note == 11 && Powered) return 471;
			if (Instrument == Instrument::Bass && Note == 11 && !Powered) return 472;
			if (Instrument == Instrument::Bass && Note == 12 && Powered) return 473;
			if (Instrument == Instrument::Bass && Note == 12 && !Powered) return 474;
			if (Instrument == Instrument::Bass && Note == 13 && Powered) return 475;
			if (Instrument == Instrument::Bass && Note == 13 && !Powered) return 476;
			if (Instrument == Instrument::Bass && Note == 14 && Powered) return 477;
			if (Instrument == Instrument::Bass && Note == 14 && !Powered) return 478;
			if (Instrument == Instrument::Bass && Note == 15 && Powered) return 479;
			if (Instrument == Instrument::Bass && Note == 15 && !Powered) return 480;
			if (Instrument == Instrument::Bass && Note == 16 && Powered) return 481;
			if (Instrument == Instrument::Bass && Note == 16 && !Powered) return 482;
			if (Instrument == Instrument::Bass && Note == 17 && Powered) return 483;
			if (Instrument == Instrument::Bass && Note == 17 && !Powered) return 484;
			if (Instrument == Instrument::Bass && Note == 18 && Powered) return 485;
			if (Instrument == Instrument::Bass && Note == 18 && !Powered) return 486;
			if (Instrument == Instrument::Bass && Note == 19 && Powered) return 487;
			if (Instrument == Instrument::Bass && Note == 19 && !Powered) return 488;
			if (Instrument == Instrument::Bass && Note == 20 && Powered) return 489;
			if (Instrument == Instrument::Bass && Note == 20 && !Powered) return 490;
			if (Instrument == Instrument::Bass && Note == 21 && Powered) return 491;
			if (Instrument == Instrument::Bass && Note == 21 && !Powered) return 492;
			if (Instrument == Instrument::Bass && Note == 22 && Powered) return 493;
			if (Instrument == Instrument::Bass && Note == 22 && !Powered) return 494;
			if (Instrument == Instrument::Bass && Note == 23 && Powered) return 495;
			if (Instrument == Instrument::Bass && Note == 23 && !Powered) return 496;
			if (Instrument == Instrument::Bass && Note == 24 && Powered) return 497;
			if (Instrument == Instrument::Bass && Note == 24 && !Powered) return 498;
			if (Instrument == Instrument::Flute && Note == 0 && Powered) return 499;
			if (Instrument == Instrument::Flute && Note == 0 && !Powered) return 500;
			if (Instrument == Instrument::Flute && Note == 1 && Powered) return 501;
			if (Instrument == Instrument::Flute && Note == 1 && !Powered) return 502;
			if (Instrument == Instrument::Flute && Note == 2 && Powered) return 503;
			if (Instrument == Instrument::Flute && Note == 2 && !Powered) return 504;
			if (Instrument == Instrument::Flute && Note == 3 && Powered) return 505;
			if (Instrument == Instrument::Flute && Note == 3 && !Powered) return 506;
			if (Instrument == Instrument::Flute && Note == 4 && Powered) return 507;
			if (Instrument == Instrument::Flute && Note == 4 && !Powered) return 508;
			if (Instrument == Instrument::Flute && Note == 5 && Powered) return 509;
			if (Instrument == Instrument::Flute && Note == 5 && !Powered) return 510;
			if (Instrument == Instrument::Flute && Note == 6 && Powered) return 511;
			if (Instrument == Instrument::Flute && Note == 6 && !Powered) return 512;
			if (Instrument == Instrument::Flute && Note == 7 && Powered) return 513;
			if (Instrument == Instrument::Flute && Note == 7 && !Powered) return 514;
			if (Instrument == Instrument::Flute && Note == 8 && Powered) return 515;
			if (Instrument == Instrument::Flute && Note == 8 && !Powered) return 516;
			if (Instrument == Instrument::Flute && Note == 9 && Powered) return 517;
			if (Instrument == Instrument::Flute && Note == 9 && !Powered) return 518;
			if (Instrument == Instrument::Flute && Note == 10 && Powered) return 519;
			if (Instrument == Instrument::Flute && Note == 10 && !Powered) return 520;
			if (Instrument == Instrument::Flute && Note == 11 && Powered) return 521;
			if (Instrument == Instrument::Flute && Note == 11 && !Powered) return 522;
			if (Instrument == Instrument::Flute && Note == 12 && Powered) return 523;
			if (Instrument == Instrument::Flute && Note == 12 && !Powered) return 524;
			if (Instrument == Instrument::Flute && Note == 13 && Powered) return 525;
			if (Instrument == Instrument::Flute && Note == 13 && !Powered) return 526;
			if (Instrument == Instrument::Flute && Note == 14 && Powered) return 527;
			if (Instrument == Instrument::Flute && Note == 14 && !Powered) return 528;
			if (Instrument == Instrument::Flute && Note == 15 && Powered) return 529;
			if (Instrument == Instrument::Flute && Note == 15 && !Powered) return 530;
			if (Instrument == Instrument::Flute && Note == 16 && Powered) return 531;
			if (Instrument == Instrument::Flute && Note == 16 && !Powered) return 532;
			if (Instrument == Instrument::Flute && Note == 17 && Powered) return 533;
			if (Instrument == Instrument::Flute && Note == 17 && !Powered) return 534;
			if (Instrument == Instrument::Flute && Note == 18 && Powered) return 535;
			if (Instrument == Instrument::Flute && Note == 18 && !Powered) return 536;
			if (Instrument == Instrument::Flute && Note == 19 && Powered) return 537;
			if (Instrument == Instrument::Flute && Note == 19 && !Powered) return 538;
			if (Instrument == Instrument::Flute && Note == 20 && Powered) return 539;
			if (Instrument == Instrument::Flute && Note == 20 && !Powered) return 540;
			if (Instrument == Instrument::Flute && Note == 21 && Powered) return 541;
			if (Instrument == Instrument::Flute && Note == 21 && !Powered) return 542;
			if (Instrument == Instrument::Flute && Note == 22 && Powered) return 543;
			if (Instrument == Instrument::Flute && Note == 22 && !Powered) return 544;
			if (Instrument == Instrument::Flute && Note == 23 && Powered) return 545;
			if (Instrument == Instrument::Flute && Note == 23 && !Powered) return 546;
			if (Instrument == Instrument::Flute && Note == 24 && Powered) return 547;
			if (Instrument == Instrument::Flute && Note == 24 && !Powered) return 548;
			if (Instrument == Instrument::Bell && Note == 0 && Powered) return 549;
			if (Instrument == Instrument::Bell && Note == 0 && !Powered) return 550;
			if (Instrument == Instrument::Bell && Note == 1 && Powered) return 551;
			if (Instrument == Instrument::Bell && Note == 1 && !Powered) return 552;
			if (Instrument == Instrument::Bell && Note == 2 && Powered) return 553;
			if (Instrument == Instrument::Bell && Note == 2 && !Powered) return 554;
			if (Instrument == Instrument::Bell && Note == 3 && Powered) return 555;
			if (Instrument == Instrument::Bell && Note == 3 && !Powered) return 556;
			if (Instrument == Instrument::Bell && Note == 4 && Powered) return 557;
			if (Instrument == Instrument::Bell && Note == 4 && !Powered) return 558;
			if (Instrument == Instrument::Bell && Note == 5 && Powered) return 559;
			if (Instrument == Instrument::Bell && Note == 5 && !Powered) return 560;
			if (Instrument == Instrument::Bell && Note == 6 && Powered) return 561;
			if (Instrument == Instrument::Bell && Note == 6 && !Powered) return 562;
			if (Instrument == Instrument::Bell && Note == 7 && Powered) return 563;
			if (Instrument == Instrument::Bell && Note == 7 && !Powered) return 564;
			if (Instrument == Instrument::Bell && Note == 8 && Powered) return 565;
			if (Instrument == Instrument::Bell && Note == 8 && !Powered) return 566;
			if (Instrument == Instrument::Bell && Note == 9 && Powered) return 567;
			if (Instrument == Instrument::Bell && Note == 9 && !Powered) return 568;
			if (Instrument == Instrument::Bell && Note == 10 && Powered) return 569;
			if (Instrument == Instrument::Bell && Note == 10 && !Powered) return 570;
			if (Instrument == Instrument::Bell && Note == 11 && Powered) return 571;
			if (Instrument == Instrument::Bell && Note == 11 && !Powered) return 572;
			if (Instrument == Instrument::Bell && Note == 12 && Powered) return 573;
			if (Instrument == Instrument::Bell && Note == 12 && !Powered) return 574;
			if (Instrument == Instrument::Bell && Note == 13 && Powered) return 575;
			if (Instrument == Instrument::Bell && Note == 13 && !Powered) return 576;
			if (Instrument == Instrument::Bell && Note == 14 && Powered) return 577;
			if (Instrument == Instrument::Bell && Note == 14 && !Powered) return 578;
			if (Instrument == Instrument::Bell && Note == 15 && Powered) return 579;
			if (Instrument == Instrument::Bell && Note == 15 && !Powered) return 580;
			if (Instrument == Instrument::Bell && Note == 16 && Powered) return 581;
			if (Instrument == Instrument::Bell && Note == 16 && !Powered) return 582;
			if (Instrument == Instrument::Bell && Note == 17 && Powered) return 583;
			if (Instrument == Instrument::Bell && Note == 17 && !Powered) return 584;
			if (Instrument == Instrument::Bell && Note == 18 && Powered) return 585;
			if (Instrument == Instrument::Bell && Note == 18 && !Powered) return 586;
			if (Instrument == Instrument::Bell && Note == 19 && Powered) return 587;
			if (Instrument == Instrument::Bell && Note == 19 && !Powered) return 588;
			if (Instrument == Instrument::Bell && Note == 20 && Powered) return 589;
			if (Instrument == Instrument::Bell && Note == 20 && !Powered) return 590;
			if (Instrument == Instrument::Bell && Note == 21 && Powered) return 591;
			if (Instrument == Instrument::Bell && Note == 21 && !Powered) return 592;
			if (Instrument == Instrument::Bell && Note == 22 && Powered) return 593;
			if (Instrument == Instrument::Bell && Note == 22 && !Powered) return 594;
			if (Instrument == Instrument::Bell && Note == 23 && Powered) return 595;
			if (Instrument == Instrument::Bell && Note == 23 && !Powered) return 596;
			if (Instrument == Instrument::Bell && Note == 24 && Powered) return 597;
			if (Instrument == Instrument::Bell && Note == 24 && !Powered) return 598;
			if (Instrument == Instrument::Guitar && Note == 0 && Powered) return 599;
			if (Instrument == Instrument::Guitar && Note == 0 && !Powered) return 600;
			if (Instrument == Instrument::Guitar && Note == 1 && Powered) return 601;
			if (Instrument == Instrument::Guitar && Note == 1 && !Powered) return 602;
			if (Instrument == Instrument::Guitar && Note == 2 && Powered) return 603;
			if (Instrument == Instrument::Guitar && Note == 2 && !Powered) return 604;
			if (Instrument == Instrument::Guitar && Note == 3 && Powered) return 605;
			if (Instrument == Instrument::Guitar && Note == 3 && !Powered) return 606;
			if (Instrument == Instrument::Guitar && Note == 4 && Powered) return 607;
			if (Instrument == Instrument::Guitar && Note == 4 && !Powered) return 608;
			if (Instrument == Instrument::Guitar && Note == 5 && Powered) return 609;
			if (Instrument == Instrument::Guitar && Note == 5 && !Powered) return 610;
			if (Instrument == Instrument::Guitar && Note == 6 && Powered) return 611;
			if (Instrument == Instrument::Guitar && Note == 6 && !Powered) return 612;
			if (Instrument == Instrument::Guitar && Note == 7 && Powered) return 613;
			if (Instrument == Instrument::Guitar && Note == 7 && !Powered) return 614;
			if (Instrument == Instrument::Guitar && Note == 8 && Powered) return 615;
			if (Instrument == Instrument::Guitar && Note == 8 && !Powered) return 616;
			if (Instrument == Instrument::Guitar && Note == 9 && Powered) return 617;
			if (Instrument == Instrument::Guitar && Note == 9 && !Powered) return 618;
			if (Instrument == Instrument::Guitar && Note == 10 && Powered) return 619;
			if (Instrument == Instrument::Guitar && Note == 10 && !Powered) return 620;
			if (Instrument == Instrument::Guitar && Note == 11 && Powered) return 621;
			if (Instrument == Instrument::Guitar && Note == 11 && !Powered) return 622;
			if (Instrument == Instrument::Guitar && Note == 12 && Powered) return 623;
			if (Instrument == Instrument::Guitar && Note == 12 && !Powered) return 624;
			if (Instrument == Instrument::Guitar && Note == 13 && Powered) return 625;
			if (Instrument == Instrument::Guitar && Note == 13 && !Powered) return 626;
			if (Instrument == Instrument::Guitar && Note == 14 && Powered) return 627;
			if (Instrument == Instrument::Guitar && Note == 14 && !Powered) return 628;
			if (Instrument == Instrument::Guitar && Note == 15 && Powered) return 629;
			if (Instrument == Instrument::Guitar && Note == 15 && !Powered) return 630;
			if (Instrument == Instrument::Guitar && Note == 16 && Powered) return 631;
			if (Instrument == Instrument::Guitar && Note == 16 && !Powered) return 632;
			if (Instrument == Instrument::Guitar && Note == 17 && Powered) return 633;
			if (Instrument == Instrument::Guitar && Note == 17 && !Powered) return 634;
			if (Instrument == Instrument::Guitar && Note == 18 && Powered) return 635;
			if (Instrument == Instrument::Guitar && Note == 18 && !Powered) return 636;
			if (Instrument == Instrument::Guitar && Note == 19 && Powered) return 637;
			if (Instrument == Instrument::Guitar && Note == 19 && !Powered) return 638;
			if (Instrument == Instrument::Guitar && Note == 20 && Powered) return 639;
			if (Instrument == Instrument::Guitar && Note == 20 && !Powered) return 640;
			if (Instrument == Instrument::Guitar && Note == 21 && Powered) return 641;
			if (Instrument == Instrument::Guitar && Note == 21 && !Powered) return 642;
			if (Instrument == Instrument::Guitar && Note == 22 && Powered) return 643;
			if (Instrument == Instrument::Guitar && Note == 22 && !Powered) return 644;
			if (Instrument == Instrument::Guitar && Note == 23 && Powered) return 645;
			if (Instrument == Instrument::Guitar && Note == 23 && !Powered) return 646;
			if (Instrument == Instrument::Guitar && Note == 24 && Powered) return 647;
			if (Instrument == Instrument::Guitar && Note == 24 && !Powered) return 648;
			if (Instrument == Instrument::Chime && Note == 0 && Powered) return 649;
			if (Instrument == Instrument::Chime && Note == 0 && !Powered) return 650;
			if (Instrument == Instrument::Chime && Note == 1 && Powered) return 651;
			if (Instrument == Instrument::Chime && Note == 1 && !Powered) return 652;
			if (Instrument == Instrument::Chime && Note == 2 && Powered) return 653;
			if (Instrument == Instrument::Chime && Note == 2 && !Powered) return 654;
			if (Instrument == Instrument::Chime && Note == 3 && Powered) return 655;
			if (Instrument == Instrument::Chime && Note == 3 && !Powered) return 656;
			if (Instrument == Instrument::Chime && Note == 4 && Powered) return 657;
			if (Instrument == Instrument::Chime && Note == 4 && !Powered) return 658;
			if (Instrument == Instrument::Chime && Note == 5 && Powered) return 659;
			if (Instrument == Instrument::Chime && Note == 5 && !Powered) return 660;
			if (Instrument == Instrument::Chime && Note == 6 && Powered) return 661;
			if (Instrument == Instrument::Chime && Note == 6 && !Powered) return 662;
			if (Instrument == Instrument::Chime && Note == 7 && Powered) return 663;
			if (Instrument == Instrument::Chime && Note == 7 && !Powered) return 664;
			if (Instrument == Instrument::Chime && Note == 8 && Powered) return 665;
			if (Instrument == Instrument::Chime && Note == 8 && !Powered) return 666;
			if (Instrument == Instrument::Chime && Note == 9 && Powered) return 667;
			if (Instrument == Instrument::Chime && Note == 9 && !Powered) return 668;
			if (Instrument == Instrument::Chime && Note == 10 && Powered) return 669;
			if (Instrument == Instrument::Chime && Note == 10 && !Powered) return 670;
			if (Instrument == Instrument::Chime && Note == 11 && Powered) return 671;
			if (Instrument == Instrument::Chime && Note == 11 && !Powered) return 672;
			if (Instrument == Instrument::Chime && Note == 12 && Powered) return 673;
			if (Instrument == Instrument::Chime && Note == 12 && !Powered) return 674;
			if (Instrument == Instrument::Chime && Note == 13 && Powered) return 675;
			if (Instrument == Instrument::Chime && Note == 13 && !Powered) return 676;
			if (Instrument == Instrument::Chime && Note == 14 && Powered) return 677;
			if (Instrument == Instrument::Chime && Note == 14 && !Powered) return 678;
			if (Instrument == Instrument::Chime && Note == 15 && Powered) return 679;
			if (Instrument == Instrument::Chime && Note == 15 && !Powered) return 680;
			if (Instrument == Instrument::Chime && Note == 16 && Powered) return 681;
			if (Instrument == Instrument::Chime && Note == 16 && !Powered) return 682;
			if (Instrument == Instrument::Chime && Note == 17 && Powered) return 683;
			if (Instrument == Instrument::Chime && Note == 17 && !Powered) return 684;
			if (Instrument == Instrument::Chime && Note == 18 && Powered) return 685;
			if (Instrument == Instrument::Chime && Note == 18 && !Powered) return 686;
			if (Instrument == Instrument::Chime && Note == 19 && Powered) return 687;
			if (Instrument == Instrument::Chime && Note == 19 && !Powered) return 688;
			if (Instrument == Instrument::Chime && Note == 20 && Powered) return 689;
			if (Instrument == Instrument::Chime && Note == 20 && !Powered) return 690;
			if (Instrument == Instrument::Chime && Note == 21 && Powered) return 691;
			if (Instrument == Instrument::Chime && Note == 21 && !Powered) return 692;
			if (Instrument == Instrument::Chime && Note == 22 && Powered) return 693;
			if (Instrument == Instrument::Chime && Note == 22 && !Powered) return 694;
			if (Instrument == Instrument::Chime && Note == 23 && Powered) return 695;
			if (Instrument == Instrument::Chime && Note == 23 && !Powered) return 696;
			if (Instrument == Instrument::Chime && Note == 24 && Powered) return 697;
			if (Instrument == Instrument::Chime && Note == 24 && !Powered) return 698;
			if (Instrument == Instrument::Xylophone && Note == 0 && Powered) return 699;
			if (Instrument == Instrument::Xylophone && Note == 0 && !Powered) return 700;
			if (Instrument == Instrument::Xylophone && Note == 1 && Powered) return 701;
			if (Instrument == Instrument::Xylophone && Note == 1 && !Powered) return 702;
			if (Instrument == Instrument::Xylophone && Note == 2 && Powered) return 703;
			if (Instrument == Instrument::Xylophone && Note == 2 && !Powered) return 704;
			if (Instrument == Instrument::Xylophone && Note == 3 && Powered) return 705;
			if (Instrument == Instrument::Xylophone && Note == 3 && !Powered) return 706;
			if (Instrument == Instrument::Xylophone && Note == 4 && Powered) return 707;
			if (Instrument == Instrument::Xylophone && Note == 4 && !Powered) return 708;
			if (Instrument == Instrument::Xylophone && Note == 5 && Powered) return 709;
			if (Instrument == Instrument::Xylophone && Note == 5 && !Powered) return 710;
			if (Instrument == Instrument::Xylophone && Note == 6 && Powered) return 711;
			if (Instrument == Instrument::Xylophone && Note == 6 && !Powered) return 712;
			if (Instrument == Instrument::Xylophone && Note == 7 && Powered) return 713;
			if (Instrument == Instrument::Xylophone && Note == 7 && !Powered) return 714;
			if (Instrument == Instrument::Xylophone && Note == 8 && Powered) return 715;
			if (Instrument == Instrument::Xylophone && Note == 8 && !Powered) return 716;
			if (Instrument == Instrument::Xylophone && Note == 9 && Powered) return 717;
			if (Instrument == Instrument::Xylophone && Note == 9 && !Powered) return 718;
			if (Instrument == Instrument::Xylophone && Note == 10 && Powered) return 719;
			if (Instrument == Instrument::Xylophone && Note == 10 && !Powered) return 720;
			if (Instrument == Instrument::Xylophone && Note == 11 && Powered) return 721;
			if (Instrument == Instrument::Xylophone && Note == 11 && !Powered) return 722;
			if (Instrument == Instrument::Xylophone && Note == 12 && Powered) return 723;
			if (Instrument == Instrument::Xylophone && Note == 12 && !Powered) return 724;
			if (Instrument == Instrument::Xylophone && Note == 13 && Powered) return 725;
			if (Instrument == Instrument::Xylophone && Note == 13 && !Powered) return 726;
			if (Instrument == Instrument::Xylophone && Note == 14 && Powered) return 727;
			if (Instrument == Instrument::Xylophone && Note == 14 && !Powered) return 728;
			if (Instrument == Instrument::Xylophone && Note == 15 && Powered) return 729;
			if (Instrument == Instrument::Xylophone && Note == 15 && !Powered) return 730;
			if (Instrument == Instrument::Xylophone && Note == 16 && Powered) return 731;
			if (Instrument == Instrument::Xylophone && Note == 16 && !Powered) return 732;
			if (Instrument == Instrument::Xylophone && Note == 17 && Powered) return 733;
			if (Instrument == Instrument::Xylophone && Note == 17 && !Powered) return 734;
			if (Instrument == Instrument::Xylophone && Note == 18 && Powered) return 735;
			if (Instrument == Instrument::Xylophone && Note == 18 && !Powered) return 736;
			if (Instrument == Instrument::Xylophone && Note == 19 && Powered) return 737;
			if (Instrument == Instrument::Xylophone && Note == 19 && !Powered) return 738;
			if (Instrument == Instrument::Xylophone && Note == 20 && Powered) return 739;
			if (Instrument == Instrument::Xylophone && Note == 20 && !Powered) return 740;
			if (Instrument == Instrument::Xylophone && Note == 21 && Powered) return 741;
			if (Instrument == Instrument::Xylophone && Note == 21 && !Powered) return 742;
			if (Instrument == Instrument::Xylophone && Note == 22 && Powered) return 743;
			if (Instrument == Instrument::Xylophone && Note == 22 && !Powered) return 744;
			if (Instrument == Instrument::Xylophone && Note == 23 && Powered) return 745;
			if (Instrument == Instrument::Xylophone && Note == 23 && !Powered) return 746;
			if (Instrument == Instrument::Xylophone && Note == 24 && Powered) return 747;
			if (Instrument == Instrument::Xylophone && Note == 24 && !Powered) return 748;
			if (Instrument == Instrument::IronXylophone && Note == 0 && Powered) return 749;
			if (Instrument == Instrument::IronXylophone && Note == 0 && !Powered) return 750;
			if (Instrument == Instrument::IronXylophone && Note == 1 && Powered) return 751;
			if (Instrument == Instrument::IronXylophone && Note == 1 && !Powered) return 752;
			if (Instrument == Instrument::IronXylophone && Note == 2 && Powered) return 753;
			if (Instrument == Instrument::IronXylophone && Note == 2 && !Powered) return 754;
			if (Instrument == Instrument::IronXylophone && Note == 3 && Powered) return 755;
			if (Instrument == Instrument::IronXylophone && Note == 3 && !Powered) return 756;
			if (Instrument == Instrument::IronXylophone && Note == 4 && Powered) return 757;
			if (Instrument == Instrument::IronXylophone && Note == 4 && !Powered) return 758;
			if (Instrument == Instrument::IronXylophone && Note == 5 && Powered) return 759;
			if (Instrument == Instrument::IronXylophone && Note == 5 && !Powered) return 760;
			if (Instrument == Instrument::IronXylophone && Note == 6 && Powered) return 761;
			if (Instrument == Instrument::IronXylophone && Note == 6 && !Powered) return 762;
			if (Instrument == Instrument::IronXylophone && Note == 7 && Powered) return 763;
			if (Instrument == Instrument::IronXylophone && Note == 7 && !Powered) return 764;
			if (Instrument == Instrument::IronXylophone && Note == 8 && Powered) return 765;
			if (Instrument == Instrument::IronXylophone && Note == 8 && !Powered) return 766;
			if (Instrument == Instrument::IronXylophone && Note == 9 && Powered) return 767;
			if (Instrument == Instrument::IronXylophone && Note == 9 && !Powered) return 768;
			if (Instrument == Instrument::IronXylophone && Note == 10 && Powered) return 769;
			if (Instrument == Instrument::IronXylophone && Note == 10 && !Powered) return 770;
			if (Instrument == Instrument::IronXylophone && Note == 11 && Powered) return 771;
			if (Instrument == Instrument::IronXylophone && Note == 11 && !Powered) return 772;
			if (Instrument == Instrument::IronXylophone && Note == 12 && Powered) return 773;
			if (Instrument == Instrument::IronXylophone && Note == 12 && !Powered) return 774;
			if (Instrument == Instrument::IronXylophone && Note == 13 && Powered) return 775;
			if (Instrument == Instrument::IronXylophone && Note == 13 && !Powered) return 776;
			if (Instrument == Instrument::IronXylophone && Note == 14 && Powered) return 777;
			if (Instrument == Instrument::IronXylophone && Note == 14 && !Powered) return 778;
			if (Instrument == Instrument::IronXylophone && Note == 15 && Powered) return 779;
			if (Instrument == Instrument::IronXylophone && Note == 15 && !Powered) return 780;
			if (Instrument == Instrument::IronXylophone && Note == 16 && Powered) return 781;
			if (Instrument == Instrument::IronXylophone && Note == 16 && !Powered) return 782;
			if (Instrument == Instrument::IronXylophone && Note == 17 && Powered) return 783;
			if (Instrument == Instrument::IronXylophone && Note == 17 && !Powered) return 784;
			if (Instrument == Instrument::IronXylophone && Note == 18 && Powered) return 785;
			if (Instrument == Instrument::IronXylophone && Note == 18 && !Powered) return 786;
			if (Instrument == Instrument::IronXylophone && Note == 19 && Powered) return 787;
			if (Instrument == Instrument::IronXylophone && Note == 19 && !Powered) return 788;
			if (Instrument == Instrument::IronXylophone && Note == 20 && Powered) return 789;
			if (Instrument == Instrument::IronXylophone && Note == 20 && !Powered) return 790;
			if (Instrument == Instrument::IronXylophone && Note == 21 && Powered) return 791;
			if (Instrument == Instrument::IronXylophone && Note == 21 && !Powered) return 792;
			if (Instrument == Instrument::IronXylophone && Note == 22 && Powered) return 793;
			if (Instrument == Instrument::IronXylophone && Note == 22 && !Powered) return 794;
			if (Instrument == Instrument::IronXylophone && Note == 23 && Powered) return 795;
			if (Instrument == Instrument::IronXylophone && Note == 23 && !Powered) return 796;
			if (Instrument == Instrument::IronXylophone && Note == 24 && Powered) return 797;
			if (Instrument == Instrument::IronXylophone && Note == 24 && !Powered) return 798;
			if (Instrument == Instrument::CowBell && Note == 0 && Powered) return 799;
			if (Instrument == Instrument::CowBell && Note == 0 && !Powered) return 800;
			if (Instrument == Instrument::CowBell && Note == 1 && Powered) return 801;
			if (Instrument == Instrument::CowBell && Note == 1 && !Powered) return 802;
			if (Instrument == Instrument::CowBell && Note == 2 && Powered) return 803;
			if (Instrument == Instrument::CowBell && Note == 2 && !Powered) return 804;
			if (Instrument == Instrument::CowBell && Note == 3 && Powered) return 805;
			if (Instrument == Instrument::CowBell && Note == 3 && !Powered) return 806;
			if (Instrument == Instrument::CowBell && Note == 4 && Powered) return 807;
			if (Instrument == Instrument::CowBell && Note == 4 && !Powered) return 808;
			if (Instrument == Instrument::CowBell && Note == 5 && Powered) return 809;
			if (Instrument == Instrument::CowBell && Note == 5 && !Powered) return 810;
			if (Instrument == Instrument::CowBell && Note == 6 && Powered) return 811;
			if (Instrument == Instrument::CowBell && Note == 6 && !Powered) return 812;
			if (Instrument == Instrument::CowBell && Note == 7 && Powered) return 813;
			if (Instrument == Instrument::CowBell && Note == 7 && !Powered) return 814;
			if (Instrument == Instrument::CowBell && Note == 8 && Powered) return 815;
			if (Instrument == Instrument::CowBell && Note == 8 && !Powered) return 816;
			if (Instrument == Instrument::CowBell && Note == 9 && Powered) return 817;
			if (Instrument == Instrument::CowBell && Note == 9 && !Powered) return 818;
			if (Instrument == Instrument::CowBell && Note == 10 && Powered) return 819;
			if (Instrument == Instrument::CowBell && Note == 10 && !Powered) return 820;
			if (Instrument == Instrument::CowBell && Note == 11 && Powered) return 821;
			if (Instrument == Instrument::CowBell && Note == 11 && !Powered) return 822;
			if (Instrument == Instrument::CowBell && Note == 12 && Powered) return 823;
			if (Instrument == Instrument::CowBell && Note == 12 && !Powered) return 824;
			if (Instrument == Instrument::CowBell && Note == 13 && Powered) return 825;
			if (Instrument == Instrument::CowBell && Note == 13 && !Powered) return 826;
			if (Instrument == Instrument::CowBell && Note == 14 && Powered) return 827;
			if (Instrument == Instrument::CowBell && Note == 14 && !Powered) return 828;
			if (Instrument == Instrument::CowBell && Note == 15 && Powered) return 829;
			if (Instrument == Instrument::CowBell && Note == 15 && !Powered) return 830;
			if (Instrument == Instrument::CowBell && Note == 16 && Powered) return 831;
			if (Instrument == Instrument::CowBell && Note == 16 && !Powered) return 832;
			if (Instrument == Instrument::CowBell && Note == 17 && Powered) return 833;
			if (Instrument == Instrument::CowBell && Note == 17 && !Powered) return 834;
			if (Instrument == Instrument::CowBell && Note == 18 && Powered) return 835;
			if (Instrument == Instrument::CowBell && Note == 18 && !Powered) return 836;
			if (Instrument == Instrument::CowBell && Note == 19 && Powered) return 837;
			if (Instrument == Instrument::CowBell && Note == 19 && !Powered) return 838;
			if (Instrument == Instrument::CowBell && Note == 20 && Powered) return 839;
			if (Instrument == Instrument::CowBell && Note == 20 && !Powered) return 840;
			if (Instrument == Instrument::CowBell && Note == 21 && Powered) return 841;
			if (Instrument == Instrument::CowBell && Note == 21 && !Powered) return 842;
			if (Instrument == Instrument::CowBell && Note == 22 && Powered) return 843;
			if (Instrument == Instrument::CowBell && Note == 22 && !Powered) return 844;
			if (Instrument == Instrument::CowBell && Note == 23 && Powered) return 845;
			if (Instrument == Instrument::CowBell && Note == 23 && !Powered) return 846;
			if (Instrument == Instrument::CowBell && Note == 24 && Powered) return 847;
			if (Instrument == Instrument::CowBell && Note == 24 && !Powered) return 848;
			if (Instrument == Instrument::Didgeridoo && Note == 0 && Powered) return 849;
			if (Instrument == Instrument::Didgeridoo && Note == 0 && !Powered) return 850;
			if (Instrument == Instrument::Didgeridoo && Note == 1 && Powered) return 851;
			if (Instrument == Instrument::Didgeridoo && Note == 1 && !Powered) return 852;
			if (Instrument == Instrument::Didgeridoo && Note == 2 && Powered) return 853;
			if (Instrument == Instrument::Didgeridoo && Note == 2 && !Powered) return 854;
			if (Instrument == Instrument::Didgeridoo && Note == 3 && Powered) return 855;
			if (Instrument == Instrument::Didgeridoo && Note == 3 && !Powered) return 856;
			if (Instrument == Instrument::Didgeridoo && Note == 4 && Powered) return 857;
			if (Instrument == Instrument::Didgeridoo && Note == 4 && !Powered) return 858;
			if (Instrument == Instrument::Didgeridoo && Note == 5 && Powered) return 859;
			if (Instrument == Instrument::Didgeridoo && Note == 5 && !Powered) return 860;
			if (Instrument == Instrument::Didgeridoo && Note == 6 && Powered) return 861;
			if (Instrument == Instrument::Didgeridoo && Note == 6 && !Powered) return 862;
			if (Instrument == Instrument::Didgeridoo && Note == 7 && Powered) return 863;
			if (Instrument == Instrument::Didgeridoo && Note == 7 && !Powered) return 864;
			if (Instrument == Instrument::Didgeridoo && Note == 8 && Powered) return 865;
			if (Instrument == Instrument::Didgeridoo && Note == 8 && !Powered) return 866;
			if (Instrument == Instrument::Didgeridoo && Note == 9 && Powered) return 867;
			if (Instrument == Instrument::Didgeridoo && Note == 9 && !Powered) return 868;
			if (Instrument == Instrument::Didgeridoo && Note == 10 && Powered) return 869;
			if (Instrument == Instrument::Didgeridoo && Note == 10 && !Powered) return 870;
			if (Instrument == Instrument::Didgeridoo && Note == 11 && Powered) return 871;
			if (Instrument == Instrument::Didgeridoo && Note == 11 && !Powered) return 872;
			if (Instrument == Instrument::Didgeridoo && Note == 12 && Powered) return 873;
			if (Instrument == Instrument::Didgeridoo && Note == 12 && !Powered) return 874;
			if (Instrument == Instrument::Didgeridoo && Note == 13 && Powered) return 875;
			if (Instrument == Instrument::Didgeridoo && Note == 13 && !Powered) return 876;
			if (Instrument == Instrument::Didgeridoo && Note == 14 && Powered) return 877;
			if (Instrument == Instrument::Didgeridoo && Note == 14 && !Powered) return 878;
			if (Instrument == Instrument::Didgeridoo && Note == 15 && Powered) return 879;
			if (Instrument == Instrument::Didgeridoo && Note == 15 && !Powered) return 880;
			if (Instrument == Instrument::Didgeridoo && Note == 16 && Powered) return 881;
			if (Instrument == Instrument::Didgeridoo && Note == 16 && !Powered) return 882;
			if (Instrument == Instrument::Didgeridoo && Note == 17 && Powered) return 883;
			if (Instrument == Instrument::Didgeridoo && Note == 17 && !Powered) return 884;
			if (Instrument == Instrument::Didgeridoo && Note == 18 && Powered) return 885;
			if (Instrument == Instrument::Didgeridoo && Note == 18 && !Powered) return 886;
			if (Instrument == Instrument::Didgeridoo && Note == 19 && Powered) return 887;
			if (Instrument == Instrument::Didgeridoo && Note == 19 && !Powered) return 888;
			if (Instrument == Instrument::Didgeridoo && Note == 20 && Powered) return 889;
			if (Instrument == Instrument::Didgeridoo && Note == 20 && !Powered) return 890;
			if (Instrument == Instrument::Didgeridoo && Note == 21 && Powered) return 891;
			if (Instrument == Instrument::Didgeridoo && Note == 21 && !Powered) return 892;
			if (Instrument == Instrument::Didgeridoo && Note == 22 && Powered) return 893;
			if (Instrument == Instrument::Didgeridoo && Note == 22 && !Powered) return 894;
			if (Instrument == Instrument::Didgeridoo && Note == 23 && Powered) return 895;
			if (Instrument == Instrument::Didgeridoo && Note == 23 && !Powered) return 896;
			if (Instrument == Instrument::Didgeridoo && Note == 24 && Powered) return 897;
			if (Instrument == Instrument::Didgeridoo && Note == 24 && !Powered) return 898;
			if (Instrument == Instrument::Bit && Note == 0 && Powered) return 899;
			if (Instrument == Instrument::Bit && Note == 0 && !Powered) return 900;
			if (Instrument == Instrument::Bit && Note == 1 && Powered) return 901;
			if (Instrument == Instrument::Bit && Note == 1 && !Powered) return 902;
			if (Instrument == Instrument::Bit && Note == 2 && Powered) return 903;
			if (Instrument == Instrument::Bit && Note == 2 && !Powered) return 904;
			if (Instrument == Instrument::Bit && Note == 3 && Powered) return 905;
			if (Instrument == Instrument::Bit && Note == 3 && !Powered) return 906;
			if (Instrument == Instrument::Bit && Note == 4 && Powered) return 907;
			if (Instrument == Instrument::Bit && Note == 4 && !Powered) return 908;
			if (Instrument == Instrument::Bit && Note == 5 && Powered) return 909;
			if (Instrument == Instrument::Bit && Note == 5 && !Powered) return 910;
			if (Instrument == Instrument::Bit && Note == 6 && Powered) return 911;
			if (Instrument == Instrument::Bit && Note == 6 && !Powered) return 912;
			if (Instrument == Instrument::Bit && Note == 7 && Powered) return 913;
			if (Instrument == Instrument::Bit && Note == 7 && !Powered) return 914;
			if (Instrument == Instrument::Bit && Note == 8 && Powered) return 915;
			if (Instrument == Instrument::Bit && Note == 8 && !Powered) return 916;
			if (Instrument == Instrument::Bit && Note == 9 && Powered) return 917;
			if (Instrument == Instrument::Bit && Note == 9 && !Powered) return 918;
			if (Instrument == Instrument::Bit && Note == 10 && Powered) return 919;
			if (Instrument == Instrument::Bit && Note == 10 && !Powered) return 920;
			if (Instrument == Instrument::Bit && Note == 11 && Powered) return 921;
			if (Instrument == Instrument::Bit && Note == 11 && !Powered) return 922;
			if (Instrument == Instrument::Bit && Note == 12 && Powered) return 923;
			if (Instrument == Instrument::Bit && Note == 12 && !Powered) return 924;
			if (Instrument == Instrument::Bit && Note == 13 && Powered) return 925;
			if (Instrument == Instrument::Bit && Note == 13 && !Powered) return 926;
			if (Instrument == Instrument::Bit && Note == 14 && Powered) return 927;
			if (Instrument == Instrument::Bit && Note == 14 && !Powered) return 928;
			if (Instrument == Instrument::Bit && Note == 15 && Powered) return 929;
			if (Instrument == Instrument::Bit && Note == 15 && !Powered) return 930;
			if (Instrument == Instrument::Bit && Note == 16 && Powered) return 931;
			if (Instrument == Instrument::Bit && Note == 16 && !Powered) return 932;
			if (Instrument == Instrument::Bit && Note == 17 && Powered) return 933;
			if (Instrument == Instrument::Bit && Note == 17 && !Powered) return 934;
			if (Instrument == Instrument::Bit && Note == 18 && Powered) return 935;
			if (Instrument == Instrument::Bit && Note == 18 && !Powered) return 936;
			if (Instrument == Instrument::Bit && Note == 19 && Powered) return 937;
			if (Instrument == Instrument::Bit && Note == 19 && !Powered) return 938;
			if (Instrument == Instrument::Bit && Note == 20 && Powered) return 939;
			if (Instrument == Instrument::Bit && Note == 20 && !Powered) return 940;
			if (Instrument == Instrument::Bit && Note == 21 && Powered) return 941;
			if (Instrument == Instrument::Bit && Note == 21 && !Powered) return 942;
			if (Instrument == Instrument::Bit && Note == 22 && Powered) return 943;
			if (Instrument == Instrument::Bit && Note == 22 && !Powered) return 944;
			if (Instrument == Instrument::Bit && Note == 23 && Powered) return 945;
			if (Instrument == Instrument::Bit && Note == 23 && !Powered) return 946;
			if (Instrument == Instrument::Bit && Note == 24 && Powered) return 947;
			if (Instrument == Instrument::Bit && Note == 24 && !Powered) return 948;
			if (Instrument == Instrument::Banjo && Note == 0 && Powered) return 949;
			if (Instrument == Instrument::Banjo && Note == 0 && !Powered) return 950;
			if (Instrument == Instrument::Banjo && Note == 1 && Powered) return 951;
			if (Instrument == Instrument::Banjo && Note == 1 && !Powered) return 952;
			if (Instrument == Instrument::Banjo && Note == 2 && Powered) return 953;
			if (Instrument == Instrument::Banjo && Note == 2 && !Powered) return 954;
			if (Instrument == Instrument::Banjo && Note == 3 && Powered) return 955;
			if (Instrument == Instrument::Banjo && Note == 3 && !Powered) return 956;
			if (Instrument == Instrument::Banjo && Note == 4 && Powered) return 957;
			if (Instrument == Instrument::Banjo && Note == 4 && !Powered) return 958;
			if (Instrument == Instrument::Banjo && Note == 5 && Powered) return 959;
			if (Instrument == Instrument::Banjo && Note == 5 && !Powered) return 960;
			if (Instrument == Instrument::Banjo && Note == 6 && Powered) return 961;
			if (Instrument == Instrument::Banjo && Note == 6 && !Powered) return 962;
			if (Instrument == Instrument::Banjo && Note == 7 && Powered) return 963;
			if (Instrument == Instrument::Banjo && Note == 7 && !Powered) return 964;
			if (Instrument == Instrument::Banjo && Note == 8 && Powered) return 965;
			if (Instrument == Instrument::Banjo && Note == 8 && !Powered) return 966;
			if (Instrument == Instrument::Banjo && Note == 9 && Powered) return 967;
			if (Instrument == Instrument::Banjo && Note == 9 && !Powered) return 968;
			if (Instrument == Instrument::Banjo && Note == 10 && Powered) return 969;
			if (Instrument == Instrument::Banjo && Note == 10 && !Powered) return 970;
			if (Instrument == Instrument::Banjo && Note == 11 && Powered) return 971;
			if (Instrument == Instrument::Banjo && Note == 11 && !Powered) return 972;
			if (Instrument == Instrument::Banjo && Note == 12 && Powered) return 973;
			if (Instrument == Instrument::Banjo && Note == 12 && !Powered) return 974;
			if (Instrument == Instrument::Banjo && Note == 13 && Powered) return 975;
			if (Instrument == Instrument::Banjo && Note == 13 && !Powered) return 976;
			if (Instrument == Instrument::Banjo && Note == 14 && Powered) return 977;
			if (Instrument == Instrument::Banjo && Note == 14 && !Powered) return 978;
			if (Instrument == Instrument::Banjo && Note == 15 && Powered) return 979;
			if (Instrument == Instrument::Banjo && Note == 15 && !Powered) return 980;
			if (Instrument == Instrument::Banjo && Note == 16 && Powered) return 981;
			if (Instrument == Instrument::Banjo && Note == 16 && !Powered) return 982;
			if (Instrument == Instrument::Banjo && Note == 17 && Powered) return 983;
			if (Instrument == Instrument::Banjo && Note == 17 && !Powered) return 984;
			if (Instrument == Instrument::Banjo && Note == 18 && Powered) return 985;
			if (Instrument == Instrument::Banjo && Note == 18 && !Powered) return 986;
			if (Instrument == Instrument::Banjo && Note == 19 && Powered) return 987;
			if (Instrument == Instrument::Banjo && Note == 19 && !Powered) return 988;
			if (Instrument == Instrument::Banjo && Note == 20 && Powered) return 989;
			if (Instrument == Instrument::Banjo && Note == 20 && !Powered) return 990;
			if (Instrument == Instrument::Banjo && Note == 21 && Powered) return 991;
			if (Instrument == Instrument::Banjo && Note == 21 && !Powered) return 992;
			if (Instrument == Instrument::Banjo && Note == 22 && Powered) return 993;
			if (Instrument == Instrument::Banjo && Note == 22 && !Powered) return 994;
			if (Instrument == Instrument::Banjo && Note == 23 && Powered) return 995;
			if (Instrument == Instrument::Banjo && Note == 23 && !Powered) return 996;
			if (Instrument == Instrument::Banjo && Note == 24 && Powered) return 997;
			if (Instrument == Instrument::Banjo && Note == 24 && !Powered) return 998;
			if (Instrument == Instrument::Pling && Note == 0 && Powered) return 999;
			if (Instrument == Instrument::Pling && Note == 0 && !Powered) return 1000;
			if (Instrument == Instrument::Pling && Note == 1 && Powered) return 1001;
			if (Instrument == Instrument::Pling && Note == 1 && !Powered) return 1002;
			if (Instrument == Instrument::Pling && Note == 2 && Powered) return 1003;
			if (Instrument == Instrument::Pling && Note == 2 && !Powered) return 1004;
			if (Instrument == Instrument::Pling && Note == 3 && Powered) return 1005;
			if (Instrument == Instrument::Pling && Note == 3 && !Powered) return 1006;
			if (Instrument == Instrument::Pling && Note == 4 && Powered) return 1007;
			if (Instrument == Instrument::Pling && Note == 4 && !Powered) return 1008;
			if (Instrument == Instrument::Pling && Note == 5 && Powered) return 1009;
			if (Instrument == Instrument::Pling && Note == 5 && !Powered) return 1010;
			if (Instrument == Instrument::Pling && Note == 6 && Powered) return 1011;
			if (Instrument == Instrument::Pling && Note == 6 && !Powered) return 1012;
			if (Instrument == Instrument::Pling && Note == 7 && Powered) return 1013;
			if (Instrument == Instrument::Pling && Note == 7 && !Powered) return 1014;
			if (Instrument == Instrument::Pling && Note == 8 && Powered) return 1015;
			if (Instrument == Instrument::Pling && Note == 8 && !Powered) return 1016;
			if (Instrument == Instrument::Pling && Note == 9 && Powered) return 1017;
			if (Instrument == Instrument::Pling && Note == 9 && !Powered) return 1018;
			if (Instrument == Instrument::Pling && Note == 10 && Powered) return 1019;
			if (Instrument == Instrument::Pling && Note == 10 && !Powered) return 1020;
			if (Instrument == Instrument::Pling && Note == 11 && Powered) return 1021;
			if (Instrument == Instrument::Pling && Note == 11 && !Powered) return 1022;
			if (Instrument == Instrument::Pling && Note == 12 && Powered) return 1023;
			if (Instrument == Instrument::Pling && Note == 12 && !Powered) return 1024;
			if (Instrument == Instrument::Pling && Note == 13 && Powered) return 1025;
			if (Instrument == Instrument::Pling && Note == 13 && !Powered) return 1026;
			if (Instrument == Instrument::Pling && Note == 14 && Powered) return 1027;
			if (Instrument == Instrument::Pling && Note == 14 && !Powered) return 1028;
			if (Instrument == Instrument::Pling && Note == 15 && Powered) return 1029;
			if (Instrument == Instrument::Pling && Note == 15 && !Powered) return 1030;
			if (Instrument == Instrument::Pling && Note == 16 && Powered) return 1031;
			if (Instrument == Instrument::Pling && Note == 16 && !Powered) return 1032;
			if (Instrument == Instrument::Pling && Note == 17 && Powered) return 1033;
			if (Instrument == Instrument::Pling && Note == 17 && !Powered) return 1034;
			if (Instrument == Instrument::Pling && Note == 18 && Powered) return 1035;
			if (Instrument == Instrument::Pling && Note == 18 && !Powered) return 1036;
			if (Instrument == Instrument::Pling && Note == 19 && Powered) return 1037;
			if (Instrument == Instrument::Pling && Note == 19 && !Powered) return 1038;
			if (Instrument == Instrument::Pling && Note == 20 && Powered) return 1039;
			if (Instrument == Instrument::Pling && Note == 20 && !Powered) return 1040;
			if (Instrument == Instrument::Pling && Note == 21 && Powered) return 1041;
			if (Instrument == Instrument::Pling && Note == 21 && !Powered) return 1042;
			if (Instrument == Instrument::Pling && Note == 22 && Powered) return 1043;
			if (Instrument == Instrument::Pling && Note == 22 && !Powered) return 1044;
			if (Instrument == Instrument::Pling && Note == 23 && Powered) return 1045;
			if (Instrument == Instrument::Pling && Note == 23 && !Powered) return 1046;
			if (Instrument == Instrument::Pling && Note == 24 && Powered) return 1047;
			return 1048;
		}
		short NoteBlock();
		enum Instrument Instrument(short ID);
		unsigned char Note(short ID);
		bool Powered(short ID);
	}
	namespace OakButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short OakButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6346;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6347;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6348;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6349;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6350;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6351;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6352;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6353;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6354;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6355;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6356;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6357;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6358;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6359;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6360;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6361;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6362;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6363;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6364;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6365;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6366;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6367;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6368;
			return 6369;
		}
		short OakButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace OakDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short OakDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 3573;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 3574;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 3575;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 3576;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 3577;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 3578;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 3579;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 3580;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 3581;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 3582;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 3583;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 3584;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 3585;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 3586;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 3587;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 3588;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 3589;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 3590;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 3591;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 3592;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 3593;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 3594;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 3595;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 3596;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 3597;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 3598;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 3599;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 3600;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 3601;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 3602;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 3603;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 3604;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 3605;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 3606;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 3607;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 3608;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 3609;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 3610;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 3611;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 3612;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 3613;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 3614;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 3615;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 3616;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 3617;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 3618;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 3619;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 3620;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 3621;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 3622;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 3623;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 3624;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 3625;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 3626;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 3627;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 3628;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 3629;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 3630;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 3631;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 3632;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 3633;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 3634;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 3635;
			return 3636;
		}
		short OakDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace OakFence
	{
		constexpr short OakFence(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 3968;
			if (East && North && South && !West) return 3969;
			if (East && North && !South && West) return 3972;
			if (East && North && !South && !West) return 3973;
			if (East && !North && South && West) return 3976;
			if (East && !North && South && !West) return 3977;
			if (East && !North && !South && West) return 3980;
			if (East && !North && !South && !West) return 3981;
			if (!East && North && South && West) return 3984;
			if (!East && North && South && !West) return 3985;
			if (!East && North && !South && West) return 3988;
			if (!East && North && !South && !West) return 3989;
			if (!East && !North && South && West) return 3992;
			if (!East && !North && South && !West) return 3993;
			if (!East && !North && !South && West) return 3996;
			return 3997;
		}
		short OakFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace OakFenceGate
	{
		constexpr short OakFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && Powered) return 4820;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && !Powered) return 4821;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && Powered) return 4822;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && !Powered) return 4823;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && Powered) return 4824;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && !Powered) return 4825;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && Powered) return 4826;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && !Powered) return 4827;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && Powered) return 4828;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && !Powered) return 4829;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && Powered) return 4830;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && !Powered) return 4831;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && Powered) return 4832;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && !Powered) return 4833;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && Powered) return 4834;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && !Powered) return 4835;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && Powered) return 4836;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && !Powered) return 4837;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && Powered) return 4838;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && !Powered) return 4839;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && Powered) return 4840;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && !Powered) return 4841;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && Powered) return 4842;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && !Powered) return 4843;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && Powered) return 4844;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && !Powered) return 4845;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && Powered) return 4846;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && !Powered) return 4847;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && Powered) return 4848;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && !Powered) return 4849;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && !Open && Powered) return 4850;
			return 4851;
		}
		short OakFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace OakLeaves
	{
		constexpr short OakLeaves(unsigned char Distance, bool Persistent)
		{
			if (Distance == 1 && Persistent) return 145;
			if (Distance == 1 && !Persistent) return 146;
			if (Distance == 2 && Persistent) return 147;
			if (Distance == 2 && !Persistent) return 148;
			if (Distance == 3 && Persistent) return 149;
			if (Distance == 3 && !Persistent) return 150;
			if (Distance == 4 && Persistent) return 151;
			if (Distance == 4 && !Persistent) return 152;
			if (Distance == 5 && Persistent) return 153;
			if (Distance == 5 && !Persistent) return 154;
			if (Distance == 6 && Persistent) return 155;
			if (Distance == 6 && !Persistent) return 156;
			if (Distance == 7 && Persistent) return 157;
			return 158;
		}
		short OakLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace OakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short OakLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 73;
			if (Axis == Axis::Y) return 74;
			return 75;
		}
		short OakLog();
		enum Axis Axis(short ID);
	}
	namespace OakPlanks
	{
		constexpr short OakPlanks()
		{
			return 15;
		}
	}
	namespace OakPressurePlate
	{
		constexpr short OakPressurePlate(bool Powered)
		{
			if (Powered) return 3873;
			return 3874;
		}
		short OakPressurePlate();
		bool Powered(short ID);
	}
	namespace OakSapling
	{
		constexpr short OakSapling(unsigned char Stage)
		{
			if (Stage == 0) return 21;
			return 22;
		}
		short OakSapling();
		unsigned char Stage(short ID);
	}
	namespace OakSign
	{
		constexpr short OakSign(unsigned char Rotation)
		{
			if (Rotation == 0) return 3382;
			if (Rotation == 1) return 3384;
			if (Rotation == 2) return 3386;
			if (Rotation == 3) return 3388;
			if (Rotation == 4) return 3390;
			if (Rotation == 5) return 3392;
			if (Rotation == 6) return 3394;
			if (Rotation == 7) return 3396;
			if (Rotation == 8) return 3398;
			if (Rotation == 9) return 3400;
			if (Rotation == 10) return 3402;
			if (Rotation == 11) return 3404;
			if (Rotation == 12) return 3406;
			if (Rotation == 13) return 3408;
			if (Rotation == 14) return 3410;
			return 3412;
		}
		short OakSign();
		unsigned char Rotation(short ID);
	}
	namespace OakSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short OakSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8301;
			if (Type == Type::Bottom) return 8303;
			return 8305;
		}
		short OakSlab();
		enum Type Type(short ID);
	}
	namespace OakStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short OakStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 1955;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 1957;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 1959;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 1961;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 1963;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 1965;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 1967;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 1969;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 1971;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 1973;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 1975;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 1977;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 1979;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 1981;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 1983;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 1985;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 1987;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 1989;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 1991;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 1993;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 1995;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 1997;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 1999;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 2001;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 2003;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 2005;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 2007;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 2009;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 2011;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 2013;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 2015;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 2017;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 2019;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 2021;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 2023;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 2025;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 2027;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 2029;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 2031;
			return 2033;
		}
		short OakStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace OakTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short OakTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && Powered) return 4112;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && !Powered) return 4114;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && Powered) return 4116;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && !Powered) return 4118;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && Powered) return 4120;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && !Powered) return 4122;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && Powered) return 4124;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && !Powered) return 4126;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && Powered) return 4128;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && !Powered) return 4130;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && Powered) return 4132;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && !Powered) return 4134;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && Powered) return 4136;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && !Powered) return 4138;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && Powered) return 4140;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && !Powered) return 4142;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && Powered) return 4144;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && !Powered) return 4146;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && Powered) return 4148;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && !Powered) return 4150;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && Powered) return 4152;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && !Powered) return 4154;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && Powered) return 4156;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && !Powered) return 4158;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && Powered) return 4160;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && !Powered) return 4162;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && Powered) return 4164;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && !Powered) return 4166;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && Powered) return 4168;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && !Powered) return 4170;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && !Open && Powered) return 4172;
			return 4174;
		}
		short OakTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace OakWallSign
	{
		constexpr short OakWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3736;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3738;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 3740;
			return 3742;
		}
		short OakWallSign();
		eBlockFace Facing(short ID);
	}
	namespace OakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short OakWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 109;
			if (Axis == Axis::Y) return 110;
			return 111;
		}
		short OakWood();
		enum Axis Axis(short ID);
	}
	namespace Observer
	{
		constexpr short Observer(eBlockFace Facing, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 9260;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 9261;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 9262;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 9263;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 9264;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 9265;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 9266;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 9267;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Powered) return 9268;
			if (Facing == eBlockFace::BLOCK_FACE_YP && !Powered) return 9269;
			if (Facing == eBlockFace::BLOCK_FACE_YM && Powered) return 9270;
			return 9271;
		}
		short Observer();
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace Obsidian
	{
		constexpr short Obsidian()
		{
			return 1434;
		}
	}
	namespace OrangeBanner
	{
		constexpr short OrangeBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 7913;
			if (Rotation == 1) return 7914;
			if (Rotation == 2) return 7915;
			if (Rotation == 3) return 7916;
			if (Rotation == 4) return 7917;
			if (Rotation == 5) return 7918;
			if (Rotation == 6) return 7919;
			if (Rotation == 7) return 7920;
			if (Rotation == 8) return 7921;
			if (Rotation == 9) return 7922;
			if (Rotation == 10) return 7923;
			if (Rotation == 11) return 7924;
			if (Rotation == 12) return 7925;
			if (Rotation == 13) return 7926;
			if (Rotation == 14) return 7927;
			return 7928;
		}
		short OrangeBanner();
		unsigned char Rotation(short ID);
	}
	namespace OrangeBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short OrangeBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1065;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1066;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1067;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1068;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1069;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1070;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1071;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1072;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1073;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1074;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1075;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1076;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1077;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1078;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1079;
			return 1080;
		}
		short OrangeBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace OrangeCarpet
	{
		constexpr short OrangeCarpet()
		{
			return 7867;
		}
	}
	namespace OrangeConcrete
	{
		constexpr short OrangeConcrete()
		{
			return 9439;
		}
	}
	namespace OrangeConcretePowder
	{
		constexpr short OrangeConcretePowder()
		{
			return 9455;
		}
	}
	namespace OrangeGlazedTerracotta
	{
		constexpr short OrangeGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9378;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9379;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9380;
			return 9381;
		}
		short OrangeGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace OrangeShulkerBox
	{
		constexpr short OrangeShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9284;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9285;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9286;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9287;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9288;
			return 9289;
		}
		short OrangeShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace OrangeStainedGlass
	{
		constexpr short OrangeStainedGlass()
		{
			return 4096;
		}
	}
	namespace OrangeStainedGlassPane
	{
		constexpr short OrangeStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 6897;
			if (East && North && South && !West) return 6898;
			if (East && North && !South && West) return 6901;
			if (East && North && !South && !West) return 6902;
			if (East && !North && South && West) return 6905;
			if (East && !North && South && !West) return 6906;
			if (East && !North && !South && West) return 6909;
			if (East && !North && !South && !West) return 6910;
			if (!East && North && South && West) return 6913;
			if (!East && North && South && !West) return 6914;
			if (!East && North && !South && West) return 6917;
			if (!East && North && !South && !West) return 6918;
			if (!East && !North && South && West) return 6921;
			if (!East && !North && South && !West) return 6922;
			if (!East && !North && !South && West) return 6925;
			return 6926;
		}
		short OrangeStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace OrangeTerracotta
	{
		constexpr short OrangeTerracotta()
		{
			return 6848;
		}
	}
	namespace OrangeTulip
	{
		constexpr short OrangeTulip()
		{
			return 1418;
		}
	}
	namespace OrangeWallBanner
	{
		constexpr short OrangeWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8157;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8158;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8159;
			return 8160;
		}
		short OrangeWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace OrangeWool
	{
		constexpr short OrangeWool()
		{
			return 1385;
		}
	}
	namespace OxeyeDaisy
	{
		constexpr short OxeyeDaisy()
		{
			return 1421;
		}
	}
	namespace PackedIce
	{
		constexpr short PackedIce()
		{
			return 7884;
		}
	}
	namespace Peony
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short Peony(enum Half Half)
		{
			if (Half == Half::Upper) return 7891;
			return 7892;
		}
		short Peony();
		enum Half Half(short ID);
	}
	namespace PetrifiedOakSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PetrifiedOakSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8361;
			if (Type == Type::Bottom) return 8363;
			return 8365;
		}
		short PetrifiedOakSlab();
		enum Type Type(short ID);
	}
	namespace PinkBanner
	{
		constexpr short PinkBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 7993;
			if (Rotation == 1) return 7994;
			if (Rotation == 2) return 7995;
			if (Rotation == 3) return 7996;
			if (Rotation == 4) return 7997;
			if (Rotation == 5) return 7998;
			if (Rotation == 6) return 7999;
			if (Rotation == 7) return 8000;
			if (Rotation == 8) return 8001;
			if (Rotation == 9) return 8002;
			if (Rotation == 10) return 8003;
			if (Rotation == 11) return 8004;
			if (Rotation == 12) return 8005;
			if (Rotation == 13) return 8006;
			if (Rotation == 14) return 8007;
			return 8008;
		}
		short PinkBanner();
		unsigned char Rotation(short ID);
	}
	namespace PinkBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short PinkBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1145;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1146;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1147;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1148;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1149;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1150;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1151;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1152;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1153;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1154;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1155;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1156;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1157;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1158;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1159;
			return 1160;
		}
		short PinkBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace PinkCarpet
	{
		constexpr short PinkCarpet()
		{
			return 7872;
		}
	}
	namespace PinkConcrete
	{
		constexpr short PinkConcrete()
		{
			return 9444;
		}
	}
	namespace PinkConcretePowder
	{
		constexpr short PinkConcretePowder()
		{
			return 9460;
		}
	}
	namespace PinkGlazedTerracotta
	{
		constexpr short PinkGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9398;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9399;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9400;
			return 9401;
		}
		short PinkGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace PinkShulkerBox
	{
		constexpr short PinkShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9314;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9315;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9316;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9317;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9318;
			return 9319;
		}
		short PinkShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace PinkStainedGlass
	{
		constexpr short PinkStainedGlass()
		{
			return 4101;
		}
	}
	namespace PinkStainedGlassPane
	{
		constexpr short PinkStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7057;
			if (East && North && South && !West) return 7058;
			if (East && North && !South && West) return 7061;
			if (East && North && !South && !West) return 7062;
			if (East && !North && South && West) return 7065;
			if (East && !North && South && !West) return 7066;
			if (East && !North && !South && West) return 7069;
			if (East && !North && !South && !West) return 7070;
			if (!East && North && South && West) return 7073;
			if (!East && North && South && !West) return 7074;
			if (!East && North && !South && West) return 7077;
			if (!East && North && !South && !West) return 7078;
			if (!East && !North && South && West) return 7081;
			if (!East && !North && South && !West) return 7082;
			if (!East && !North && !South && West) return 7085;
			return 7086;
		}
		short PinkStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace PinkTerracotta
	{
		constexpr short PinkTerracotta()
		{
			return 6853;
		}
	}
	namespace PinkTulip
	{
		constexpr short PinkTulip()
		{
			return 1420;
		}
	}
	namespace PinkWallBanner
	{
		constexpr short PinkWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8177;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8178;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8179;
			return 8180;
		}
		short PinkWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace PinkWool
	{
		constexpr short PinkWool()
		{
			return 1390;
		}
	}
	namespace Piston
	{
		constexpr short Piston(bool Extended, eBlockFace Facing)
		{
			if (Extended && Facing == eBlockFace::BLOCK_FACE_ZM) return 1348;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_XP) return 1349;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_ZP) return 1350;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_XM) return 1351;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_YP) return 1352;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_YM) return 1353;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_ZM) return 1354;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_XP) return 1355;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_ZP) return 1356;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_XM) return 1357;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_YP) return 1358;
			return 1359;
		}
		short Piston();
		bool Extended(short ID);
		eBlockFace Facing(short ID);
	}
	namespace PistonHead
	{
		enum class Type
		{
			Normal,
			Sticky
		};
		constexpr short PistonHead(eBlockFace Facing, bool Short, enum Type Type)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Short && Type == Type::Normal) return 1360;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Short && Type == Type::Sticky) return 1361;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Short && Type == Type::Normal) return 1362;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Short && Type == Type::Sticky) return 1363;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Short && Type == Type::Normal) return 1364;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Short && Type == Type::Sticky) return 1365;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Short && Type == Type::Normal) return 1366;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Short && Type == Type::Sticky) return 1367;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Short && Type == Type::Normal) return 1368;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Short && Type == Type::Sticky) return 1369;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Short && Type == Type::Normal) return 1370;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Short && Type == Type::Sticky) return 1371;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Short && Type == Type::Normal) return 1372;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Short && Type == Type::Sticky) return 1373;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Short && Type == Type::Normal) return 1374;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Short && Type == Type::Sticky) return 1375;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Short && Type == Type::Normal) return 1376;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Short && Type == Type::Sticky) return 1377;
			if (Facing == eBlockFace::BLOCK_FACE_YP && !Short && Type == Type::Normal) return 1378;
			if (Facing == eBlockFace::BLOCK_FACE_YP && !Short && Type == Type::Sticky) return 1379;
			if (Facing == eBlockFace::BLOCK_FACE_YM && Short && Type == Type::Normal) return 1380;
			if (Facing == eBlockFace::BLOCK_FACE_YM && Short && Type == Type::Sticky) return 1381;
			if (Facing == eBlockFace::BLOCK_FACE_YM && !Short && Type == Type::Normal) return 1382;
			return 1383;
		}
		short PistonHead();
		eBlockFace Facing(short ID);
		bool Short(short ID);
		enum Type Type(short ID);
	}
	namespace PlayerHead
	{
		constexpr short PlayerHead(unsigned char Rotation)
		{
			if (Rotation == 0) return 6550;
			if (Rotation == 1) return 6551;
			if (Rotation == 2) return 6552;
			if (Rotation == 3) return 6553;
			if (Rotation == 4) return 6554;
			if (Rotation == 5) return 6555;
			if (Rotation == 6) return 6556;
			if (Rotation == 7) return 6557;
			if (Rotation == 8) return 6558;
			if (Rotation == 9) return 6559;
			if (Rotation == 10) return 6560;
			if (Rotation == 11) return 6561;
			if (Rotation == 12) return 6562;
			if (Rotation == 13) return 6563;
			if (Rotation == 14) return 6564;
			return 6565;
		}
		short PlayerHead();
		unsigned char Rotation(short ID);
	}
	namespace PlayerWallHead
	{
		constexpr short PlayerWallHead(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6566;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6567;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6568;
			return 6569;
		}
		short PlayerWallHead();
		eBlockFace Facing(short ID);
	}
	namespace Podzol
	{
		constexpr short Podzol(bool Snowy)
		{
			if (Snowy) return 12;
			return 13;
		}
		short Podzol();
		bool Snowy(short ID);
	}
	namespace PolishedAndesite
	{
		constexpr short PolishedAndesite()
		{
			return 7;
		}
	}
	namespace PolishedAndesiteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedAndesiteSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10856;
			if (Type == Type::Bottom) return 10858;
			return 10860;
		}
		short PolishedAndesiteSlab();
		enum Type Type(short ID);
	}
	namespace PolishedAndesiteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedAndesiteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 10630;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 10632;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 10634;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 10636;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 10638;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10640;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10642;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10644;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10646;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10648;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10650;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10652;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10654;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10656;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10658;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10660;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10662;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10664;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10666;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10668;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10670;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10672;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10674;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10676;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10678;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10680;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10682;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10684;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10686;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10688;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10690;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10692;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10694;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10696;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10698;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10700;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10702;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10704;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10706;
			return 10708;
		}
		short PolishedAndesiteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace PolishedBasalt
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short PolishedBasalt(enum Axis Axis)
		{
			if (Axis == Axis::X) return 4005;
			if (Axis == Axis::Y) return 4006;
			return 4007;
		}
		short PolishedBasalt();
		enum Axis Axis(short ID);
	}
	namespace PolishedBlackstone
	{
		constexpr short PolishedBlackstone()
		{
			return 16250;
		}
	}
	namespace PolishedBlackstoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedBlackstoneBrickSlab(enum Type Type)
		{
			if (Type == Type::Top) return 16255;
			if (Type == Type::Bottom) return 16257;
			return 16259;
		}
		short PolishedBlackstoneBrickSlab();
		enum Type Type(short ID);
	}
	namespace PolishedBlackstoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedBlackstoneBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 16261;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 16263;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 16265;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 16267;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 16269;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 16271;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 16273;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 16275;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 16277;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 16279;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 16281;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 16283;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 16285;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 16287;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 16289;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 16291;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 16293;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 16295;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 16297;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 16299;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 16301;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 16303;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 16305;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 16307;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 16309;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 16311;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 16313;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 16315;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 16317;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 16319;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 16321;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 16323;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 16325;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 16327;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 16329;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 16331;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 16333;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 16335;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 16337;
			return 16339;
		}
		short PolishedBlackstoneBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace PolishedBlackstoneBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short PolishedBlackstoneBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 16343;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 16344;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 16345;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 16349;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 16350;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 16351;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 16355;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 16356;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 16357;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 16361;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 16362;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 16363;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 16367;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 16368;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 16369;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 16373;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 16374;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 16375;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 16379;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 16380;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 16381;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 16385;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 16386;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 16387;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 16391;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 16392;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 16393;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 16397;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 16398;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 16399;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 16403;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 16404;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 16405;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 16409;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 16410;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 16411;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 16415;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 16416;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 16417;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 16421;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 16422;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 16423;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 16427;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 16428;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 16429;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 16433;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 16434;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 16435;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 16439;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 16440;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 16441;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 16445;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 16446;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 16447;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 16451;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 16452;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 16453;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 16457;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 16458;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 16459;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 16463;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 16464;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 16465;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 16469;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 16470;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 16471;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 16475;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 16476;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 16477;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 16481;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 16482;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 16483;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 16487;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 16488;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 16489;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 16493;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 16494;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 16495;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 16499;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 16500;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 16501;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 16505;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 16506;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 16507;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 16511;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 16512;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 16513;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 16517;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 16518;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 16519;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 16523;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 16524;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 16525;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 16529;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 16530;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 16531;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 16535;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 16536;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 16537;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 16541;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 16542;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 16543;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 16547;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 16548;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 16549;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 16553;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 16554;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 16555;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 16559;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 16560;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 16561;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 16565;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 16566;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 16567;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 16571;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 16572;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 16573;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 16577;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 16578;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 16579;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 16583;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 16584;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 16585;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 16589;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 16590;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 16591;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 16595;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 16596;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 16597;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 16601;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 16602;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 16603;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 16607;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 16608;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 16609;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 16613;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 16614;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 16615;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 16619;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 16620;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 16621;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 16625;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 16626;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 16627;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 16631;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 16632;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 16633;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 16637;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 16638;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 16639;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 16643;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 16644;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 16645;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 16649;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 16650;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 16651;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 16655;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 16656;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 16657;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 16661;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 16662;
			return 16663;
		}
		short PolishedBlackstoneBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace PolishedBlackstoneBricks
	{
		constexpr short PolishedBlackstoneBricks()
		{
			return 16251;
		}
	}
	namespace PolishedBlackstoneButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short PolishedBlackstoneButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 16753;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 16754;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 16755;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 16756;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 16757;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 16758;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 16759;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 16760;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 16761;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 16762;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 16763;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 16764;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 16765;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 16766;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 16767;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 16768;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 16769;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 16770;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 16771;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 16772;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 16773;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 16774;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 16775;
			return 16776;
		}
		short PolishedBlackstoneButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace PolishedBlackstonePressurePlate
	{
		constexpr short PolishedBlackstonePressurePlate(bool Powered)
		{
			if (Powered) return 16751;
			return 16752;
		}
		short PolishedBlackstonePressurePlate();
		bool Powered(short ID);
	}
	namespace PolishedBlackstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedBlackstoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 16746;
			if (Type == Type::Bottom) return 16748;
			return 16750;
		}
		short PolishedBlackstoneSlab();
		enum Type Type(short ID);
	}
	namespace PolishedBlackstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedBlackstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 16666;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 16668;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 16670;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 16672;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 16674;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 16676;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 16678;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 16680;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 16682;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 16684;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 16686;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 16688;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 16690;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 16692;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 16694;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 16696;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 16698;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 16700;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 16702;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 16704;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 16706;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 16708;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 16710;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 16712;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 16714;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 16716;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 16718;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 16720;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 16722;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 16724;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 16726;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 16728;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 16730;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 16732;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 16734;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 16736;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 16738;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 16740;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 16742;
			return 16744;
		}
		short PolishedBlackstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace PolishedBlackstoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short PolishedBlackstoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 16780;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 16781;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 16782;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 16786;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 16787;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 16788;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 16792;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 16793;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 16794;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 16798;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 16799;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 16800;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 16804;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 16805;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 16806;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 16810;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 16811;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 16812;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 16816;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 16817;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 16818;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 16822;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 16823;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 16824;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 16828;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 16829;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 16830;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 16834;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 16835;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 16836;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 16840;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 16841;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 16842;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 16846;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 16847;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 16848;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 16852;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 16853;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 16854;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 16858;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 16859;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 16860;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 16864;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 16865;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 16866;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 16870;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 16871;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 16872;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 16876;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 16877;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 16878;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 16882;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 16883;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 16884;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 16888;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 16889;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 16890;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 16894;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 16895;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 16896;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 16900;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 16901;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 16902;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 16906;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 16907;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 16908;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 16912;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 16913;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 16914;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 16918;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 16919;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 16920;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 16924;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 16925;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 16926;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 16930;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 16931;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 16932;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 16936;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 16937;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 16938;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 16942;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 16943;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 16944;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 16948;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 16949;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 16950;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 16954;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 16955;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 16956;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 16960;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 16961;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 16962;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 16966;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 16967;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 16968;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 16972;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 16973;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 16974;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 16978;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 16979;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 16980;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 16984;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 16985;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 16986;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 16990;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 16991;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 16992;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 16996;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 16997;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 16998;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 17002;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 17003;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 17004;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 17008;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 17009;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 17010;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 17014;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 17015;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 17016;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 17020;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 17021;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 17022;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 17026;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 17027;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 17028;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 17032;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 17033;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 17034;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 17038;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 17039;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 17040;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 17044;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 17045;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 17046;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 17050;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 17051;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 17052;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 17056;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 17057;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 17058;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 17062;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 17063;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 17064;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 17068;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 17069;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 17070;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 17074;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 17075;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 17076;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 17080;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 17081;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 17082;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 17086;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 17087;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 17088;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 17092;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 17093;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 17094;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 17098;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 17099;
			return 17100;
		}
		short PolishedBlackstoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace PolishedDiorite
	{
		constexpr short PolishedDiorite()
		{
			return 5;
		}
	}
	namespace PolishedDioriteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedDioriteSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10808;
			if (Type == Type::Bottom) return 10810;
			return 10812;
		}
		short PolishedDioriteSlab();
		enum Type Type(short ID);
	}
	namespace PolishedDioriteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedDioriteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 9910;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 9912;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 9914;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 9916;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 9918;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 9920;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9922;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9924;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9926;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9928;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 9930;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 9932;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 9934;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 9936;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 9938;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 9940;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9942;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9944;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9946;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 9948;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 9950;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 9952;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 9954;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 9956;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 9958;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 9960;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9962;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9964;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9966;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9968;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 9970;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 9972;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 9974;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 9976;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 9978;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 9980;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9982;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9984;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9986;
			return 9988;
		}
		short PolishedDioriteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace PolishedGranite
	{
		constexpr short PolishedGranite()
		{
			return 3;
		}
	}
	namespace PolishedGraniteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedGraniteSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10790;
			if (Type == Type::Bottom) return 10792;
			return 10794;
		}
		short PolishedGraniteSlab();
		enum Type Type(short ID);
	}
	namespace PolishedGraniteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedGraniteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 9670;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 9672;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 9674;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 9676;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 9678;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 9680;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9682;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9684;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9686;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9688;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 9690;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 9692;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 9694;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 9696;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 9698;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 9700;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9702;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9704;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9706;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 9708;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 9710;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 9712;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 9714;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 9716;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 9718;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 9720;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9722;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9724;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9726;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9728;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 9730;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 9732;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 9734;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 9736;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 9738;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 9740;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9742;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9744;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9746;
			return 9748;
		}
		short PolishedGraniteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace Poppy
	{
		constexpr short Poppy()
		{
			return 1413;
		}
	}
	namespace Potatoes
	{
		constexpr short Potatoes(unsigned char Age)
		{
			if (Age == 0) return 6338;
			if (Age == 1) return 6339;
			if (Age == 2) return 6340;
			if (Age == 3) return 6341;
			if (Age == 4) return 6342;
			if (Age == 5) return 6343;
			if (Age == 6) return 6344;
			return 6345;
		}
		short Potatoes();
		unsigned char Age(short ID);
	}
	namespace PottedAcaciaSapling
	{
		constexpr short PottedAcaciaSapling()
		{
			return 6310;
		}
	}
	namespace PottedAllium
	{
		constexpr short PottedAllium()
		{
			return 6316;
		}
	}
	namespace PottedAzureBluet
	{
		constexpr short PottedAzureBluet()
		{
			return 6317;
		}
	}
	namespace PottedBamboo
	{
		constexpr short PottedBamboo()
		{
			return 9664;
		}
	}
	namespace PottedBirchSapling
	{
		constexpr short PottedBirchSapling()
		{
			return 6308;
		}
	}
	namespace PottedBlueOrchid
	{
		constexpr short PottedBlueOrchid()
		{
			return 6315;
		}
	}
	namespace PottedBrownMushroom
	{
		constexpr short PottedBrownMushroom()
		{
			return 6327;
		}
	}
	namespace PottedCactus
	{
		constexpr short PottedCactus()
		{
			return 6329;
		}
	}
	namespace PottedCornflower
	{
		constexpr short PottedCornflower()
		{
			return 6323;
		}
	}
	namespace PottedCrimsonFungus
	{
		constexpr short PottedCrimsonFungus()
		{
			return 15834;
		}
	}
	namespace PottedCrimsonRoots
	{
		constexpr short PottedCrimsonRoots()
		{
			return 15836;
		}
	}
	namespace PottedDandelion
	{
		constexpr short PottedDandelion()
		{
			return 6313;
		}
	}
	namespace PottedDarkOakSapling
	{
		constexpr short PottedDarkOakSapling()
		{
			return 6311;
		}
	}
	namespace PottedDeadBush
	{
		constexpr short PottedDeadBush()
		{
			return 6328;
		}
	}
	namespace PottedFern
	{
		constexpr short PottedFern()
		{
			return 6312;
		}
	}
	namespace PottedJungleSapling
	{
		constexpr short PottedJungleSapling()
		{
			return 6309;
		}
	}
	namespace PottedLilyOfTheValley
	{
		constexpr short PottedLilyOfTheValley()
		{
			return 6324;
		}
	}
	namespace PottedOakSapling
	{
		constexpr short PottedOakSapling()
		{
			return 6306;
		}
	}
	namespace PottedOrangeTulip
	{
		constexpr short PottedOrangeTulip()
		{
			return 6319;
		}
	}
	namespace PottedOxeyeDaisy
	{
		constexpr short PottedOxeyeDaisy()
		{
			return 6322;
		}
	}
	namespace PottedPinkTulip
	{
		constexpr short PottedPinkTulip()
		{
			return 6321;
		}
	}
	namespace PottedPoppy
	{
		constexpr short PottedPoppy()
		{
			return 6314;
		}
	}
	namespace PottedRedMushroom
	{
		constexpr short PottedRedMushroom()
		{
			return 6326;
		}
	}
	namespace PottedRedTulip
	{
		constexpr short PottedRedTulip()
		{
			return 6318;
		}
	}
	namespace PottedSpruceSapling
	{
		constexpr short PottedSpruceSapling()
		{
			return 6307;
		}
	}
	namespace PottedWarpedFungus
	{
		constexpr short PottedWarpedFungus()
		{
			return 15835;
		}
	}
	namespace PottedWarpedRoots
	{
		constexpr short PottedWarpedRoots()
		{
			return 15837;
		}
	}
	namespace PottedWhiteTulip
	{
		constexpr short PottedWhiteTulip()
		{
			return 6320;
		}
	}
	namespace PottedWitherRose
	{
		constexpr short PottedWitherRose()
		{
			return 6325;
		}
	}
	namespace PoweredRail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth
		};
		constexpr short PoweredRail(bool Powered, enum Shape Shape)
		{
			if (Powered && Shape == Shape::NorthSouth) return 1305;
			if (Powered && Shape == Shape::EastWest) return 1306;
			if (Powered && Shape == Shape::AscendingEast) return 1307;
			if (Powered && Shape == Shape::AscendingWest) return 1308;
			if (Powered && Shape == Shape::AscendingNorth) return 1309;
			if (Powered && Shape == Shape::AscendingSouth) return 1310;
			if (!Powered && Shape == Shape::NorthSouth) return 1311;
			if (!Powered && Shape == Shape::EastWest) return 1312;
			if (!Powered && Shape == Shape::AscendingEast) return 1313;
			if (!Powered && Shape == Shape::AscendingWest) return 1314;
			if (!Powered && Shape == Shape::AscendingNorth) return 1315;
			return 1316;
		}
		short PoweredRail();
		bool Powered(short ID);
		enum Shape Shape(short ID);
	}
	namespace Prismarine
	{
		constexpr short Prismarine()
		{
			return 7601;
		}
	}
	namespace PrismarineBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PrismarineBrickSlab(enum Type Type)
		{
			if (Type == Type::Top) return 7851;
			if (Type == Type::Bottom) return 7853;
			return 7855;
		}
		short PrismarineBrickSlab();
		enum Type Type(short ID);
	}
	namespace PrismarineBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PrismarineBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 7685;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 7687;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 7689;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 7691;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 7693;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 7695;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7697;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7699;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7701;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7703;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 7705;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 7707;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 7709;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 7711;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 7713;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 7715;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7717;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7719;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7721;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 7723;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 7725;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 7727;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 7729;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 7731;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 7733;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 7735;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7737;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7739;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7741;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7743;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 7745;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 7747;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 7749;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 7751;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 7753;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 7755;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7757;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7759;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7761;
			return 7763;
		}
		short PrismarineBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace PrismarineBricks
	{
		constexpr short PrismarineBricks()
		{
			return 7602;
		}
	}
	namespace PrismarineSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PrismarineSlab(enum Type Type)
		{
			if (Type == Type::Top) return 7845;
			if (Type == Type::Bottom) return 7847;
			return 7849;
		}
		short PrismarineSlab();
		enum Type Type(short ID);
	}
	namespace PrismarineStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PrismarineStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 7605;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 7607;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 7609;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 7611;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 7613;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 7615;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7617;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7619;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7621;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7623;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 7625;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 7627;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 7629;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 7631;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 7633;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 7635;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7637;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7639;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7641;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 7643;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 7645;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 7647;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 7649;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 7651;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 7653;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 7655;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7657;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 7659;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7661;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 7663;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 7665;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 7667;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 7669;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 7671;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 7673;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 7675;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 7677;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 7679;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 7681;
			return 7683;
		}
		short PrismarineStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace PrismarineWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short PrismarineWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 11194;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 11195;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 11196;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 11200;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 11201;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 11202;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 11206;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 11207;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 11208;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 11212;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 11213;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 11214;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 11218;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 11219;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 11220;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 11224;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 11225;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11226;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 11230;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 11231;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 11232;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 11236;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 11237;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 11238;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 11242;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 11243;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 11244;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 11248;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 11249;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 11250;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 11254;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 11255;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 11256;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 11260;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 11261;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 11262;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 11266;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 11267;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 11268;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 11272;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 11273;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 11274;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 11278;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 11279;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 11280;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 11284;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 11285;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 11286;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 11290;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 11291;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 11292;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 11296;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 11297;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 11298;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 11302;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 11303;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 11304;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 11308;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 11309;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 11310;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 11314;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 11315;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 11316;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 11320;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 11321;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 11322;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 11326;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 11327;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 11328;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 11332;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 11333;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11334;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 11338;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 11339;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 11340;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 11344;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 11345;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 11346;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 11350;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 11351;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 11352;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 11356;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 11357;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 11358;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 11362;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 11363;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 11364;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 11368;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 11369;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 11370;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 11374;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 11375;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 11376;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 11380;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 11381;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 11382;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 11386;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 11387;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 11388;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 11392;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 11393;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 11394;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 11398;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 11399;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 11400;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 11404;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 11405;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 11406;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 11410;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 11411;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 11412;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 11416;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 11417;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 11418;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 11422;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 11423;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 11424;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 11428;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 11429;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 11430;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 11434;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 11435;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 11436;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 11440;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 11441;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11442;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 11446;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 11447;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 11448;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 11452;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 11453;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 11454;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 11458;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 11459;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 11460;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 11464;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 11465;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 11466;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 11470;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 11471;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 11472;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 11476;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 11477;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 11478;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 11482;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 11483;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 11484;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 11488;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 11489;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 11490;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 11494;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 11495;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 11496;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 11500;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 11501;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 11502;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 11506;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 11507;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 11508;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 11512;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 11513;
			return 11514;
		}
		short PrismarineWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace Pumpkin
	{
		constexpr short Pumpkin()
		{
			return 3998;
		}
	}
	namespace PumpkinStem
	{
		constexpr short PumpkinStem(unsigned char Age)
		{
			if (Age == 0) return 4772;
			if (Age == 1) return 4773;
			if (Age == 2) return 4774;
			if (Age == 3) return 4775;
			if (Age == 4) return 4776;
			if (Age == 5) return 4777;
			if (Age == 6) return 4778;
			return 4779;
		}
		short PumpkinStem();
		unsigned char Age(short ID);
	}
	namespace PurpleBanner
	{
		constexpr short PurpleBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8057;
			if (Rotation == 1) return 8058;
			if (Rotation == 2) return 8059;
			if (Rotation == 3) return 8060;
			if (Rotation == 4) return 8061;
			if (Rotation == 5) return 8062;
			if (Rotation == 6) return 8063;
			if (Rotation == 7) return 8064;
			if (Rotation == 8) return 8065;
			if (Rotation == 9) return 8066;
			if (Rotation == 10) return 8067;
			if (Rotation == 11) return 8068;
			if (Rotation == 12) return 8069;
			if (Rotation == 13) return 8070;
			if (Rotation == 14) return 8071;
			return 8072;
		}
		short PurpleBanner();
		unsigned char Rotation(short ID);
	}
	namespace PurpleBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short PurpleBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1209;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1210;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1211;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1212;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1213;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1214;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1215;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1216;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1217;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1218;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1219;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1220;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1221;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1222;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1223;
			return 1224;
		}
		short PurpleBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace PurpleCarpet
	{
		constexpr short PurpleCarpet()
		{
			return 7876;
		}
	}
	namespace PurpleConcrete
	{
		constexpr short PurpleConcrete()
		{
			return 9448;
		}
	}
	namespace PurpleConcretePowder
	{
		constexpr short PurpleConcretePowder()
		{
			return 9464;
		}
	}
	namespace PurpleGlazedTerracotta
	{
		constexpr short PurpleGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9414;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9415;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9416;
			return 9417;
		}
		short PurpleGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace PurpleShulkerBox
	{
		constexpr short PurpleShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9338;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9339;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9340;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9341;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9342;
			return 9343;
		}
		short PurpleShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace PurpleStainedGlass
	{
		constexpr short PurpleStainedGlass()
		{
			return 4105;
		}
	}
	namespace PurpleStainedGlassPane
	{
		constexpr short PurpleStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7185;
			if (East && North && South && !West) return 7186;
			if (East && North && !South && West) return 7189;
			if (East && North && !South && !West) return 7190;
			if (East && !North && South && West) return 7193;
			if (East && !North && South && !West) return 7194;
			if (East && !North && !South && West) return 7197;
			if (East && !North && !South && !West) return 7198;
			if (!East && North && South && West) return 7201;
			if (!East && North && South && !West) return 7202;
			if (!East && North && !South && West) return 7205;
			if (!East && North && !South && !West) return 7206;
			if (!East && !North && South && West) return 7209;
			if (!East && !North && South && !West) return 7210;
			if (!East && !North && !South && West) return 7213;
			return 7214;
		}
		short PurpleStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace PurpleTerracotta
	{
		constexpr short PurpleTerracotta()
		{
			return 6857;
		}
	}
	namespace PurpleWallBanner
	{
		constexpr short PurpleWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8193;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8194;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8195;
			return 8196;
		}
		short PurpleWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace PurpleWool
	{
		constexpr short PurpleWool()
		{
			return 1394;
		}
	}
	namespace PurpurBlock
	{
		constexpr short PurpurBlock()
		{
			return 9134;
		}
	}
	namespace PurpurPillar
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short PurpurPillar(enum Axis Axis)
		{
			if (Axis == Axis::X) return 9135;
			if (Axis == Axis::Y) return 9136;
			return 9137;
		}
		short PurpurPillar();
		enum Axis Axis(short ID);
	}
	namespace PurpurSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PurpurSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8409;
			if (Type == Type::Bottom) return 8411;
			return 8413;
		}
		short PurpurSlab();
		enum Type Type(short ID);
	}
	namespace PurpurStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PurpurStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 9139;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 9141;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 9143;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 9145;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 9147;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 9149;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9151;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9153;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9155;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9157;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 9159;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 9161;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 9163;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 9165;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 9167;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 9169;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9171;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9173;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9175;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 9177;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 9179;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 9181;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 9183;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 9185;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 9187;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 9189;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9191;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9193;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9195;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9197;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 9199;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 9201;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 9203;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 9205;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 9207;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 9209;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9211;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9213;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9215;
			return 9217;
		}
		short PurpurStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace QuartzBlock
	{
		constexpr short QuartzBlock()
		{
			return 6738;
		}
	}
	namespace QuartzBricks
	{
		constexpr short QuartzBricks()
		{
			return 17103;
		}
	}
	namespace QuartzPillar
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short QuartzPillar(enum Axis Axis)
		{
			if (Axis == Axis::X) return 6740;
			if (Axis == Axis::Y) return 6741;
			return 6742;
		}
		short QuartzPillar();
		enum Axis Axis(short ID);
	}
	namespace QuartzSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short QuartzSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8391;
			if (Type == Type::Bottom) return 8393;
			return 8395;
		}
		short QuartzSlab();
		enum Type Type(short ID);
	}
	namespace QuartzStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short QuartzStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 6744;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 6746;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 6748;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 6750;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 6752;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 6754;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 6756;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 6758;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 6760;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 6762;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 6764;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 6766;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 6768;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 6770;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 6772;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 6774;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 6776;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 6778;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 6780;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 6782;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 6784;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 6786;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 6788;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 6790;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 6792;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 6794;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 6796;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 6798;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 6800;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 6802;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 6804;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 6806;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 6808;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 6810;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 6812;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 6814;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 6816;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 6818;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 6820;
			return 6822;
		}
		short QuartzStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace Rail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth,
			SouthEast,
			SouthWest,
			NorthWest,
			NorthEast
		};
		constexpr short Rail(enum Shape Shape)
		{
			if (Shape == Shape::NorthSouth) return 3645;
			if (Shape == Shape::EastWest) return 3646;
			if (Shape == Shape::AscendingEast) return 3647;
			if (Shape == Shape::AscendingWest) return 3648;
			if (Shape == Shape::AscendingNorth) return 3649;
			if (Shape == Shape::AscendingSouth) return 3650;
			if (Shape == Shape::SouthEast) return 3651;
			if (Shape == Shape::SouthWest) return 3652;
			if (Shape == Shape::NorthWest) return 3653;
			return 3654;
		}
		short Rail();
		enum Shape Shape(short ID);
	}
	namespace RedBanner
	{
		constexpr short RedBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8121;
			if (Rotation == 1) return 8122;
			if (Rotation == 2) return 8123;
			if (Rotation == 3) return 8124;
			if (Rotation == 4) return 8125;
			if (Rotation == 5) return 8126;
			if (Rotation == 6) return 8127;
			if (Rotation == 7) return 8128;
			if (Rotation == 8) return 8129;
			if (Rotation == 9) return 8130;
			if (Rotation == 10) return 8131;
			if (Rotation == 11) return 8132;
			if (Rotation == 12) return 8133;
			if (Rotation == 13) return 8134;
			if (Rotation == 14) return 8135;
			return 8136;
		}
		short RedBanner();
		unsigned char Rotation(short ID);
	}
	namespace RedBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short RedBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1273;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1274;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1275;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1276;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1277;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1278;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1279;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1280;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1281;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1282;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1283;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1284;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1285;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1286;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1287;
			return 1288;
		}
		short RedBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace RedCarpet
	{
		constexpr short RedCarpet()
		{
			return 7880;
		}
	}
	namespace RedConcrete
	{
		constexpr short RedConcrete()
		{
			return 9452;
		}
	}
	namespace RedConcretePowder
	{
		constexpr short RedConcretePowder()
		{
			return 9468;
		}
	}
	namespace RedGlazedTerracotta
	{
		constexpr short RedGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9430;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9431;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9432;
			return 9433;
		}
		short RedGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace RedMushroom
	{
		constexpr short RedMushroom()
		{
			return 1426;
		}
	}
	namespace RedMushroomBlock
	{
		constexpr short RedMushroomBlock(bool Down, bool East, bool North, bool South, bool Up, bool West)
		{
			if (Down && East && North && South && Up && West) return 4569;
			if (Down && East && North && South && Up && !West) return 4570;
			if (Down && East && North && South && !Up && West) return 4571;
			if (Down && East && North && South && !Up && !West) return 4572;
			if (Down && East && North && !South && Up && West) return 4573;
			if (Down && East && North && !South && Up && !West) return 4574;
			if (Down && East && North && !South && !Up && West) return 4575;
			if (Down && East && North && !South && !Up && !West) return 4576;
			if (Down && East && !North && South && Up && West) return 4577;
			if (Down && East && !North && South && Up && !West) return 4578;
			if (Down && East && !North && South && !Up && West) return 4579;
			if (Down && East && !North && South && !Up && !West) return 4580;
			if (Down && East && !North && !South && Up && West) return 4581;
			if (Down && East && !North && !South && Up && !West) return 4582;
			if (Down && East && !North && !South && !Up && West) return 4583;
			if (Down && East && !North && !South && !Up && !West) return 4584;
			if (Down && !East && North && South && Up && West) return 4585;
			if (Down && !East && North && South && Up && !West) return 4586;
			if (Down && !East && North && South && !Up && West) return 4587;
			if (Down && !East && North && South && !Up && !West) return 4588;
			if (Down && !East && North && !South && Up && West) return 4589;
			if (Down && !East && North && !South && Up && !West) return 4590;
			if (Down && !East && North && !South && !Up && West) return 4591;
			if (Down && !East && North && !South && !Up && !West) return 4592;
			if (Down && !East && !North && South && Up && West) return 4593;
			if (Down && !East && !North && South && Up && !West) return 4594;
			if (Down && !East && !North && South && !Up && West) return 4595;
			if (Down && !East && !North && South && !Up && !West) return 4596;
			if (Down && !East && !North && !South && Up && West) return 4597;
			if (Down && !East && !North && !South && Up && !West) return 4598;
			if (Down && !East && !North && !South && !Up && West) return 4599;
			if (Down && !East && !North && !South && !Up && !West) return 4600;
			if (!Down && East && North && South && Up && West) return 4601;
			if (!Down && East && North && South && Up && !West) return 4602;
			if (!Down && East && North && South && !Up && West) return 4603;
			if (!Down && East && North && South && !Up && !West) return 4604;
			if (!Down && East && North && !South && Up && West) return 4605;
			if (!Down && East && North && !South && Up && !West) return 4606;
			if (!Down && East && North && !South && !Up && West) return 4607;
			if (!Down && East && North && !South && !Up && !West) return 4608;
			if (!Down && East && !North && South && Up && West) return 4609;
			if (!Down && East && !North && South && Up && !West) return 4610;
			if (!Down && East && !North && South && !Up && West) return 4611;
			if (!Down && East && !North && South && !Up && !West) return 4612;
			if (!Down && East && !North && !South && Up && West) return 4613;
			if (!Down && East && !North && !South && Up && !West) return 4614;
			if (!Down && East && !North && !South && !Up && West) return 4615;
			if (!Down && East && !North && !South && !Up && !West) return 4616;
			if (!Down && !East && North && South && Up && West) return 4617;
			if (!Down && !East && North && South && Up && !West) return 4618;
			if (!Down && !East && North && South && !Up && West) return 4619;
			if (!Down && !East && North && South && !Up && !West) return 4620;
			if (!Down && !East && North && !South && Up && West) return 4621;
			if (!Down && !East && North && !South && Up && !West) return 4622;
			if (!Down && !East && North && !South && !Up && West) return 4623;
			if (!Down && !East && North && !South && !Up && !West) return 4624;
			if (!Down && !East && !North && South && Up && West) return 4625;
			if (!Down && !East && !North && South && Up && !West) return 4626;
			if (!Down && !East && !North && South && !Up && West) return 4627;
			if (!Down && !East && !North && South && !Up && !West) return 4628;
			if (!Down && !East && !North && !South && Up && West) return 4629;
			if (!Down && !East && !North && !South && Up && !West) return 4630;
			if (!Down && !East && !North && !South && !Up && West) return 4631;
			return 4632;
		}
		short RedMushroomBlock();
		bool Down(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace RedNetherBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short RedNetherBrickSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10850;
			if (Type == Type::Bottom) return 10852;
			return 10854;
		}
		short RedNetherBrickSlab();
		enum Type Type(short ID);
	}
	namespace RedNetherBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short RedNetherBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 10550;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 10552;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 10554;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 10556;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 10558;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10560;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10562;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10564;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10566;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10568;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10570;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10572;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10574;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10576;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10578;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10580;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10582;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10584;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10586;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10588;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10590;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10592;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10594;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10596;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10598;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10600;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10602;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10604;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10606;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10608;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10610;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10612;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10614;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10616;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10618;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10620;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10622;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10624;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10626;
			return 10628;
		}
		short RedNetherBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace RedNetherBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short RedNetherBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 13462;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 13463;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 13464;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 13468;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 13469;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 13470;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 13474;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 13475;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 13476;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 13480;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 13481;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 13482;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 13486;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 13487;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 13488;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 13492;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 13493;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 13494;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 13498;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 13499;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 13500;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 13504;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 13505;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 13506;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 13510;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 13511;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 13512;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 13516;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 13517;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 13518;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 13522;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 13523;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 13524;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 13528;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 13529;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 13530;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 13534;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 13535;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 13536;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 13540;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 13541;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13542;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 13546;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 13547;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13548;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 13552;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13553;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13554;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 13558;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13559;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13560;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13564;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13565;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 13566;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 13570;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 13571;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 13572;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 13576;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 13577;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 13578;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 13582;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 13583;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 13584;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 13588;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 13589;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 13590;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 13594;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 13595;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 13596;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 13600;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 13601;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 13602;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 13606;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 13607;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 13608;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 13612;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 13613;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 13614;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 13618;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 13619;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 13620;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 13624;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 13625;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 13626;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 13630;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 13631;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 13632;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 13636;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 13637;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 13638;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 13642;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 13643;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 13644;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 13648;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 13649;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13650;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 13654;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 13655;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13656;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 13660;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13661;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13662;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 13666;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13667;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13668;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13672;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13673;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 13674;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 13678;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 13679;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 13680;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 13684;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 13685;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 13686;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 13690;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 13691;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 13692;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 13696;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 13697;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 13698;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 13702;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 13703;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 13704;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 13708;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 13709;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 13710;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 13714;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 13715;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 13716;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 13720;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 13721;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 13722;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 13726;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 13727;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 13728;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 13732;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 13733;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 13734;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 13738;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 13739;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 13740;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 13744;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 13745;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 13746;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 13750;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 13751;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 13752;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 13756;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 13757;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13758;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 13762;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 13763;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13764;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 13768;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13769;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13770;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 13774;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13775;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13776;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13780;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13781;
			return 13782;
		}
		short RedNetherBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace RedNetherBricks
	{
		constexpr short RedNetherBricks()
		{
			return 9255;
		}
	}
	namespace RedSand
	{
		constexpr short RedSand()
		{
			return 67;
		}
	}
	namespace RedSandstone
	{
		constexpr short RedSandstone()
		{
			return 8217;
		}
	}
	namespace RedSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short RedSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8397;
			if (Type == Type::Bottom) return 8399;
			return 8401;
		}
		short RedSandstoneSlab();
		enum Type Type(short ID);
	}
	namespace RedSandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short RedSandstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 8221;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 8223;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 8225;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 8227;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 8229;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 8231;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 8233;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 8235;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 8237;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 8239;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 8241;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 8243;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 8245;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 8247;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 8249;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 8251;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 8253;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 8255;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 8257;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 8259;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 8261;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 8263;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 8265;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 8267;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 8269;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 8271;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 8273;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 8275;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 8277;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 8279;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 8281;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 8283;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 8285;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 8287;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 8289;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 8291;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 8293;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 8295;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 8297;
			return 8299;
		}
		short RedSandstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace RedSandstoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short RedSandstoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 11518;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 11519;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 11520;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 11524;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 11525;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 11526;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 11530;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 11531;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 11532;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 11536;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 11537;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 11538;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 11542;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 11543;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 11544;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 11548;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 11549;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11550;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 11554;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 11555;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 11556;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 11560;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 11561;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 11562;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 11566;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 11567;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 11568;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 11572;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 11573;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 11574;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 11578;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 11579;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 11580;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 11584;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 11585;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 11586;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 11590;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 11591;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 11592;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 11596;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 11597;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 11598;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 11602;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 11603;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 11604;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 11608;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 11609;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 11610;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 11614;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 11615;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 11616;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 11620;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 11621;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 11622;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 11626;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 11627;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 11628;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 11632;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 11633;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 11634;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 11638;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 11639;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 11640;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 11644;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 11645;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 11646;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 11650;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 11651;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 11652;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 11656;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 11657;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11658;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 11662;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 11663;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 11664;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 11668;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 11669;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 11670;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 11674;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 11675;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 11676;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 11680;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 11681;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 11682;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 11686;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 11687;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 11688;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 11692;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 11693;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 11694;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 11698;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 11699;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 11700;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 11704;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 11705;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 11706;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 11710;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 11711;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 11712;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 11716;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 11717;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 11718;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 11722;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 11723;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 11724;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 11728;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 11729;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 11730;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 11734;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 11735;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 11736;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 11740;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 11741;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 11742;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 11746;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 11747;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 11748;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 11752;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 11753;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 11754;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 11758;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 11759;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 11760;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 11764;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 11765;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 11766;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 11770;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 11771;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 11772;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 11776;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 11777;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 11778;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 11782;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 11783;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 11784;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 11788;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 11789;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 11790;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 11794;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 11795;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 11796;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 11800;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 11801;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 11802;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 11806;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 11807;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 11808;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 11812;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 11813;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 11814;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 11818;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 11819;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 11820;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 11824;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 11825;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 11826;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 11830;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 11831;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 11832;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 11836;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 11837;
			return 11838;
		}
		short RedSandstoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace RedShulkerBox
	{
		constexpr short RedShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9362;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9363;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9364;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9365;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9366;
			return 9367;
		}
		short RedShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace RedStainedGlass
	{
		constexpr short RedStainedGlass()
		{
			return 4109;
		}
	}
	namespace RedStainedGlassPane
	{
		constexpr short RedStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 7313;
			if (East && North && South && !West) return 7314;
			if (East && North && !South && West) return 7317;
			if (East && North && !South && !West) return 7318;
			if (East && !North && South && West) return 7321;
			if (East && !North && South && !West) return 7322;
			if (East && !North && !South && West) return 7325;
			if (East && !North && !South && !West) return 7326;
			if (!East && North && South && West) return 7329;
			if (!East && North && South && !West) return 7330;
			if (!East && North && !South && West) return 7333;
			if (!East && North && !South && !West) return 7334;
			if (!East && !North && South && West) return 7337;
			if (!East && !North && South && !West) return 7338;
			if (!East && !North && !South && West) return 7341;
			return 7342;
		}
		short RedStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace RedTerracotta
	{
		constexpr short RedTerracotta()
		{
			return 6861;
		}
	}
	namespace RedTulip
	{
		constexpr short RedTulip()
		{
			return 1417;
		}
	}
	namespace RedWallBanner
	{
		constexpr short RedWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8209;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8210;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8211;
			return 8212;
		}
		short RedWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace RedWool
	{
		constexpr short RedWool()
		{
			return 1398;
		}
	}
	namespace RedstoneBlock
	{
		constexpr short RedstoneBlock()
		{
			return 6726;
		}
	}
	namespace RedstoneLamp
	{
		constexpr short RedstoneLamp(bool Lit)
		{
			if (Lit) return 5156;
			return 5157;
		}
		short RedstoneLamp();
		bool Lit(short ID);
	}
	namespace RedstoneOre
	{
		constexpr short RedstoneOre(bool Lit)
		{
			if (Lit) return 3885;
			return 3886;
		}
		short RedstoneOre();
		bool Lit(short ID);
	}
	namespace RedstoneTorch
	{
		constexpr short RedstoneTorch(bool Lit)
		{
			if (Lit) return 3887;
			return 3888;
		}
		short RedstoneTorch();
		bool Lit(short ID);
	}
	namespace RedstoneWallTorch
	{
		constexpr short RedstoneWallTorch(eBlockFace Facing, bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit) return 3889;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit) return 3890;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit) return 3891;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit) return 3892;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit) return 3893;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit) return 3894;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit) return 3895;
			return 3896;
		}
		short RedstoneWallTorch();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
	}
	namespace RedstoneWire
	{
		enum class East
		{
			Up,
			Side,
			None
		};
		enum class North
		{
			Up,
			Side,
			None
		};
		enum class South
		{
			Up,
			Side,
			None
		};
		enum class West
		{
			Up,
			Side,
			None
		};
		constexpr short RedstoneWire(enum East East, enum North North, unsigned char Power, enum South South, enum West West)
		{
			if (East == East::Up && North == North::Up && Power == 0 && South == South::Up && West == West::Up) return 2058;
			if (East == East::Up && North == North::Up && Power == 0 && South == South::Up && West == West::Side) return 2059;
			if (East == East::Up && North == North::Up && Power == 0 && South == South::Up && West == West::None) return 2060;
			if (East == East::Up && North == North::Up && Power == 0 && South == South::Side && West == West::Up) return 2061;
			if (East == East::Up && North == North::Up && Power == 0 && South == South::Side && West == West::Side) return 2062;
			if (East == East::Up && North == North::Up && Power == 0 && South == South::Side && West == West::None) return 2063;
			if (East == East::Up && North == North::Up && Power == 0 && South == South::None && West == West::Up) return 2064;
			if (East == East::Up && North == North::Up && Power == 0 && South == South::None && West == West::Side) return 2065;
			if (East == East::Up && North == North::Up && Power == 0 && South == South::None && West == West::None) return 2066;
			if (East == East::Up && North == North::Up && Power == 1 && South == South::Up && West == West::Up) return 2067;
			if (East == East::Up && North == North::Up && Power == 1 && South == South::Up && West == West::Side) return 2068;
			if (East == East::Up && North == North::Up && Power == 1 && South == South::Up && West == West::None) return 2069;
			if (East == East::Up && North == North::Up && Power == 1 && South == South::Side && West == West::Up) return 2070;
			if (East == East::Up && North == North::Up && Power == 1 && South == South::Side && West == West::Side) return 2071;
			if (East == East::Up && North == North::Up && Power == 1 && South == South::Side && West == West::None) return 2072;
			if (East == East::Up && North == North::Up && Power == 1 && South == South::None && West == West::Up) return 2073;
			if (East == East::Up && North == North::Up && Power == 1 && South == South::None && West == West::Side) return 2074;
			if (East == East::Up && North == North::Up && Power == 1 && South == South::None && West == West::None) return 2075;
			if (East == East::Up && North == North::Up && Power == 2 && South == South::Up && West == West::Up) return 2076;
			if (East == East::Up && North == North::Up && Power == 2 && South == South::Up && West == West::Side) return 2077;
			if (East == East::Up && North == North::Up && Power == 2 && South == South::Up && West == West::None) return 2078;
			if (East == East::Up && North == North::Up && Power == 2 && South == South::Side && West == West::Up) return 2079;
			if (East == East::Up && North == North::Up && Power == 2 && South == South::Side && West == West::Side) return 2080;
			if (East == East::Up && North == North::Up && Power == 2 && South == South::Side && West == West::None) return 2081;
			if (East == East::Up && North == North::Up && Power == 2 && South == South::None && West == West::Up) return 2082;
			if (East == East::Up && North == North::Up && Power == 2 && South == South::None && West == West::Side) return 2083;
			if (East == East::Up && North == North::Up && Power == 2 && South == South::None && West == West::None) return 2084;
			if (East == East::Up && North == North::Up && Power == 3 && South == South::Up && West == West::Up) return 2085;
			if (East == East::Up && North == North::Up && Power == 3 && South == South::Up && West == West::Side) return 2086;
			if (East == East::Up && North == North::Up && Power == 3 && South == South::Up && West == West::None) return 2087;
			if (East == East::Up && North == North::Up && Power == 3 && South == South::Side && West == West::Up) return 2088;
			if (East == East::Up && North == North::Up && Power == 3 && South == South::Side && West == West::Side) return 2089;
			if (East == East::Up && North == North::Up && Power == 3 && South == South::Side && West == West::None) return 2090;
			if (East == East::Up && North == North::Up && Power == 3 && South == South::None && West == West::Up) return 2091;
			if (East == East::Up && North == North::Up && Power == 3 && South == South::None && West == West::Side) return 2092;
			if (East == East::Up && North == North::Up && Power == 3 && South == South::None && West == West::None) return 2093;
			if (East == East::Up && North == North::Up && Power == 4 && South == South::Up && West == West::Up) return 2094;
			if (East == East::Up && North == North::Up && Power == 4 && South == South::Up && West == West::Side) return 2095;
			if (East == East::Up && North == North::Up && Power == 4 && South == South::Up && West == West::None) return 2096;
			if (East == East::Up && North == North::Up && Power == 4 && South == South::Side && West == West::Up) return 2097;
			if (East == East::Up && North == North::Up && Power == 4 && South == South::Side && West == West::Side) return 2098;
			if (East == East::Up && North == North::Up && Power == 4 && South == South::Side && West == West::None) return 2099;
			if (East == East::Up && North == North::Up && Power == 4 && South == South::None && West == West::Up) return 2100;
			if (East == East::Up && North == North::Up && Power == 4 && South == South::None && West == West::Side) return 2101;
			if (East == East::Up && North == North::Up && Power == 4 && South == South::None && West == West::None) return 2102;
			if (East == East::Up && North == North::Up && Power == 5 && South == South::Up && West == West::Up) return 2103;
			if (East == East::Up && North == North::Up && Power == 5 && South == South::Up && West == West::Side) return 2104;
			if (East == East::Up && North == North::Up && Power == 5 && South == South::Up && West == West::None) return 2105;
			if (East == East::Up && North == North::Up && Power == 5 && South == South::Side && West == West::Up) return 2106;
			if (East == East::Up && North == North::Up && Power == 5 && South == South::Side && West == West::Side) return 2107;
			if (East == East::Up && North == North::Up && Power == 5 && South == South::Side && West == West::None) return 2108;
			if (East == East::Up && North == North::Up && Power == 5 && South == South::None && West == West::Up) return 2109;
			if (East == East::Up && North == North::Up && Power == 5 && South == South::None && West == West::Side) return 2110;
			if (East == East::Up && North == North::Up && Power == 5 && South == South::None && West == West::None) return 2111;
			if (East == East::Up && North == North::Up && Power == 6 && South == South::Up && West == West::Up) return 2112;
			if (East == East::Up && North == North::Up && Power == 6 && South == South::Up && West == West::Side) return 2113;
			if (East == East::Up && North == North::Up && Power == 6 && South == South::Up && West == West::None) return 2114;
			if (East == East::Up && North == North::Up && Power == 6 && South == South::Side && West == West::Up) return 2115;
			if (East == East::Up && North == North::Up && Power == 6 && South == South::Side && West == West::Side) return 2116;
			if (East == East::Up && North == North::Up && Power == 6 && South == South::Side && West == West::None) return 2117;
			if (East == East::Up && North == North::Up && Power == 6 && South == South::None && West == West::Up) return 2118;
			if (East == East::Up && North == North::Up && Power == 6 && South == South::None && West == West::Side) return 2119;
			if (East == East::Up && North == North::Up && Power == 6 && South == South::None && West == West::None) return 2120;
			if (East == East::Up && North == North::Up && Power == 7 && South == South::Up && West == West::Up) return 2121;
			if (East == East::Up && North == North::Up && Power == 7 && South == South::Up && West == West::Side) return 2122;
			if (East == East::Up && North == North::Up && Power == 7 && South == South::Up && West == West::None) return 2123;
			if (East == East::Up && North == North::Up && Power == 7 && South == South::Side && West == West::Up) return 2124;
			if (East == East::Up && North == North::Up && Power == 7 && South == South::Side && West == West::Side) return 2125;
			if (East == East::Up && North == North::Up && Power == 7 && South == South::Side && West == West::None) return 2126;
			if (East == East::Up && North == North::Up && Power == 7 && South == South::None && West == West::Up) return 2127;
			if (East == East::Up && North == North::Up && Power == 7 && South == South::None && West == West::Side) return 2128;
			if (East == East::Up && North == North::Up && Power == 7 && South == South::None && West == West::None) return 2129;
			if (East == East::Up && North == North::Up && Power == 8 && South == South::Up && West == West::Up) return 2130;
			if (East == East::Up && North == North::Up && Power == 8 && South == South::Up && West == West::Side) return 2131;
			if (East == East::Up && North == North::Up && Power == 8 && South == South::Up && West == West::None) return 2132;
			if (East == East::Up && North == North::Up && Power == 8 && South == South::Side && West == West::Up) return 2133;
			if (East == East::Up && North == North::Up && Power == 8 && South == South::Side && West == West::Side) return 2134;
			if (East == East::Up && North == North::Up && Power == 8 && South == South::Side && West == West::None) return 2135;
			if (East == East::Up && North == North::Up && Power == 8 && South == South::None && West == West::Up) return 2136;
			if (East == East::Up && North == North::Up && Power == 8 && South == South::None && West == West::Side) return 2137;
			if (East == East::Up && North == North::Up && Power == 8 && South == South::None && West == West::None) return 2138;
			if (East == East::Up && North == North::Up && Power == 9 && South == South::Up && West == West::Up) return 2139;
			if (East == East::Up && North == North::Up && Power == 9 && South == South::Up && West == West::Side) return 2140;
			if (East == East::Up && North == North::Up && Power == 9 && South == South::Up && West == West::None) return 2141;
			if (East == East::Up && North == North::Up && Power == 9 && South == South::Side && West == West::Up) return 2142;
			if (East == East::Up && North == North::Up && Power == 9 && South == South::Side && West == West::Side) return 2143;
			if (East == East::Up && North == North::Up && Power == 9 && South == South::Side && West == West::None) return 2144;
			if (East == East::Up && North == North::Up && Power == 9 && South == South::None && West == West::Up) return 2145;
			if (East == East::Up && North == North::Up && Power == 9 && South == South::None && West == West::Side) return 2146;
			if (East == East::Up && North == North::Up && Power == 9 && South == South::None && West == West::None) return 2147;
			if (East == East::Up && North == North::Up && Power == 10 && South == South::Up && West == West::Up) return 2148;
			if (East == East::Up && North == North::Up && Power == 10 && South == South::Up && West == West::Side) return 2149;
			if (East == East::Up && North == North::Up && Power == 10 && South == South::Up && West == West::None) return 2150;
			if (East == East::Up && North == North::Up && Power == 10 && South == South::Side && West == West::Up) return 2151;
			if (East == East::Up && North == North::Up && Power == 10 && South == South::Side && West == West::Side) return 2152;
			if (East == East::Up && North == North::Up && Power == 10 && South == South::Side && West == West::None) return 2153;
			if (East == East::Up && North == North::Up && Power == 10 && South == South::None && West == West::Up) return 2154;
			if (East == East::Up && North == North::Up && Power == 10 && South == South::None && West == West::Side) return 2155;
			if (East == East::Up && North == North::Up && Power == 10 && South == South::None && West == West::None) return 2156;
			if (East == East::Up && North == North::Up && Power == 11 && South == South::Up && West == West::Up) return 2157;
			if (East == East::Up && North == North::Up && Power == 11 && South == South::Up && West == West::Side) return 2158;
			if (East == East::Up && North == North::Up && Power == 11 && South == South::Up && West == West::None) return 2159;
			if (East == East::Up && North == North::Up && Power == 11 && South == South::Side && West == West::Up) return 2160;
			if (East == East::Up && North == North::Up && Power == 11 && South == South::Side && West == West::Side) return 2161;
			if (East == East::Up && North == North::Up && Power == 11 && South == South::Side && West == West::None) return 2162;
			if (East == East::Up && North == North::Up && Power == 11 && South == South::None && West == West::Up) return 2163;
			if (East == East::Up && North == North::Up && Power == 11 && South == South::None && West == West::Side) return 2164;
			if (East == East::Up && North == North::Up && Power == 11 && South == South::None && West == West::None) return 2165;
			if (East == East::Up && North == North::Up && Power == 12 && South == South::Up && West == West::Up) return 2166;
			if (East == East::Up && North == North::Up && Power == 12 && South == South::Up && West == West::Side) return 2167;
			if (East == East::Up && North == North::Up && Power == 12 && South == South::Up && West == West::None) return 2168;
			if (East == East::Up && North == North::Up && Power == 12 && South == South::Side && West == West::Up) return 2169;
			if (East == East::Up && North == North::Up && Power == 12 && South == South::Side && West == West::Side) return 2170;
			if (East == East::Up && North == North::Up && Power == 12 && South == South::Side && West == West::None) return 2171;
			if (East == East::Up && North == North::Up && Power == 12 && South == South::None && West == West::Up) return 2172;
			if (East == East::Up && North == North::Up && Power == 12 && South == South::None && West == West::Side) return 2173;
			if (East == East::Up && North == North::Up && Power == 12 && South == South::None && West == West::None) return 2174;
			if (East == East::Up && North == North::Up && Power == 13 && South == South::Up && West == West::Up) return 2175;
			if (East == East::Up && North == North::Up && Power == 13 && South == South::Up && West == West::Side) return 2176;
			if (East == East::Up && North == North::Up && Power == 13 && South == South::Up && West == West::None) return 2177;
			if (East == East::Up && North == North::Up && Power == 13 && South == South::Side && West == West::Up) return 2178;
			if (East == East::Up && North == North::Up && Power == 13 && South == South::Side && West == West::Side) return 2179;
			if (East == East::Up && North == North::Up && Power == 13 && South == South::Side && West == West::None) return 2180;
			if (East == East::Up && North == North::Up && Power == 13 && South == South::None && West == West::Up) return 2181;
			if (East == East::Up && North == North::Up && Power == 13 && South == South::None && West == West::Side) return 2182;
			if (East == East::Up && North == North::Up && Power == 13 && South == South::None && West == West::None) return 2183;
			if (East == East::Up && North == North::Up && Power == 14 && South == South::Up && West == West::Up) return 2184;
			if (East == East::Up && North == North::Up && Power == 14 && South == South::Up && West == West::Side) return 2185;
			if (East == East::Up && North == North::Up && Power == 14 && South == South::Up && West == West::None) return 2186;
			if (East == East::Up && North == North::Up && Power == 14 && South == South::Side && West == West::Up) return 2187;
			if (East == East::Up && North == North::Up && Power == 14 && South == South::Side && West == West::Side) return 2188;
			if (East == East::Up && North == North::Up && Power == 14 && South == South::Side && West == West::None) return 2189;
			if (East == East::Up && North == North::Up && Power == 14 && South == South::None && West == West::Up) return 2190;
			if (East == East::Up && North == North::Up && Power == 14 && South == South::None && West == West::Side) return 2191;
			if (East == East::Up && North == North::Up && Power == 14 && South == South::None && West == West::None) return 2192;
			if (East == East::Up && North == North::Up && Power == 15 && South == South::Up && West == West::Up) return 2193;
			if (East == East::Up && North == North::Up && Power == 15 && South == South::Up && West == West::Side) return 2194;
			if (East == East::Up && North == North::Up && Power == 15 && South == South::Up && West == West::None) return 2195;
			if (East == East::Up && North == North::Up && Power == 15 && South == South::Side && West == West::Up) return 2196;
			if (East == East::Up && North == North::Up && Power == 15 && South == South::Side && West == West::Side) return 2197;
			if (East == East::Up && North == North::Up && Power == 15 && South == South::Side && West == West::None) return 2198;
			if (East == East::Up && North == North::Up && Power == 15 && South == South::None && West == West::Up) return 2199;
			if (East == East::Up && North == North::Up && Power == 15 && South == South::None && West == West::Side) return 2200;
			if (East == East::Up && North == North::Up && Power == 15 && South == South::None && West == West::None) return 2201;
			if (East == East::Up && North == North::Side && Power == 0 && South == South::Up && West == West::Up) return 2202;
			if (East == East::Up && North == North::Side && Power == 0 && South == South::Up && West == West::Side) return 2203;
			if (East == East::Up && North == North::Side && Power == 0 && South == South::Up && West == West::None) return 2204;
			if (East == East::Up && North == North::Side && Power == 0 && South == South::Side && West == West::Up) return 2205;
			if (East == East::Up && North == North::Side && Power == 0 && South == South::Side && West == West::Side) return 2206;
			if (East == East::Up && North == North::Side && Power == 0 && South == South::Side && West == West::None) return 2207;
			if (East == East::Up && North == North::Side && Power == 0 && South == South::None && West == West::Up) return 2208;
			if (East == East::Up && North == North::Side && Power == 0 && South == South::None && West == West::Side) return 2209;
			if (East == East::Up && North == North::Side && Power == 0 && South == South::None && West == West::None) return 2210;
			if (East == East::Up && North == North::Side && Power == 1 && South == South::Up && West == West::Up) return 2211;
			if (East == East::Up && North == North::Side && Power == 1 && South == South::Up && West == West::Side) return 2212;
			if (East == East::Up && North == North::Side && Power == 1 && South == South::Up && West == West::None) return 2213;
			if (East == East::Up && North == North::Side && Power == 1 && South == South::Side && West == West::Up) return 2214;
			if (East == East::Up && North == North::Side && Power == 1 && South == South::Side && West == West::Side) return 2215;
			if (East == East::Up && North == North::Side && Power == 1 && South == South::Side && West == West::None) return 2216;
			if (East == East::Up && North == North::Side && Power == 1 && South == South::None && West == West::Up) return 2217;
			if (East == East::Up && North == North::Side && Power == 1 && South == South::None && West == West::Side) return 2218;
			if (East == East::Up && North == North::Side && Power == 1 && South == South::None && West == West::None) return 2219;
			if (East == East::Up && North == North::Side && Power == 2 && South == South::Up && West == West::Up) return 2220;
			if (East == East::Up && North == North::Side && Power == 2 && South == South::Up && West == West::Side) return 2221;
			if (East == East::Up && North == North::Side && Power == 2 && South == South::Up && West == West::None) return 2222;
			if (East == East::Up && North == North::Side && Power == 2 && South == South::Side && West == West::Up) return 2223;
			if (East == East::Up && North == North::Side && Power == 2 && South == South::Side && West == West::Side) return 2224;
			if (East == East::Up && North == North::Side && Power == 2 && South == South::Side && West == West::None) return 2225;
			if (East == East::Up && North == North::Side && Power == 2 && South == South::None && West == West::Up) return 2226;
			if (East == East::Up && North == North::Side && Power == 2 && South == South::None && West == West::Side) return 2227;
			if (East == East::Up && North == North::Side && Power == 2 && South == South::None && West == West::None) return 2228;
			if (East == East::Up && North == North::Side && Power == 3 && South == South::Up && West == West::Up) return 2229;
			if (East == East::Up && North == North::Side && Power == 3 && South == South::Up && West == West::Side) return 2230;
			if (East == East::Up && North == North::Side && Power == 3 && South == South::Up && West == West::None) return 2231;
			if (East == East::Up && North == North::Side && Power == 3 && South == South::Side && West == West::Up) return 2232;
			if (East == East::Up && North == North::Side && Power == 3 && South == South::Side && West == West::Side) return 2233;
			if (East == East::Up && North == North::Side && Power == 3 && South == South::Side && West == West::None) return 2234;
			if (East == East::Up && North == North::Side && Power == 3 && South == South::None && West == West::Up) return 2235;
			if (East == East::Up && North == North::Side && Power == 3 && South == South::None && West == West::Side) return 2236;
			if (East == East::Up && North == North::Side && Power == 3 && South == South::None && West == West::None) return 2237;
			if (East == East::Up && North == North::Side && Power == 4 && South == South::Up && West == West::Up) return 2238;
			if (East == East::Up && North == North::Side && Power == 4 && South == South::Up && West == West::Side) return 2239;
			if (East == East::Up && North == North::Side && Power == 4 && South == South::Up && West == West::None) return 2240;
			if (East == East::Up && North == North::Side && Power == 4 && South == South::Side && West == West::Up) return 2241;
			if (East == East::Up && North == North::Side && Power == 4 && South == South::Side && West == West::Side) return 2242;
			if (East == East::Up && North == North::Side && Power == 4 && South == South::Side && West == West::None) return 2243;
			if (East == East::Up && North == North::Side && Power == 4 && South == South::None && West == West::Up) return 2244;
			if (East == East::Up && North == North::Side && Power == 4 && South == South::None && West == West::Side) return 2245;
			if (East == East::Up && North == North::Side && Power == 4 && South == South::None && West == West::None) return 2246;
			if (East == East::Up && North == North::Side && Power == 5 && South == South::Up && West == West::Up) return 2247;
			if (East == East::Up && North == North::Side && Power == 5 && South == South::Up && West == West::Side) return 2248;
			if (East == East::Up && North == North::Side && Power == 5 && South == South::Up && West == West::None) return 2249;
			if (East == East::Up && North == North::Side && Power == 5 && South == South::Side && West == West::Up) return 2250;
			if (East == East::Up && North == North::Side && Power == 5 && South == South::Side && West == West::Side) return 2251;
			if (East == East::Up && North == North::Side && Power == 5 && South == South::Side && West == West::None) return 2252;
			if (East == East::Up && North == North::Side && Power == 5 && South == South::None && West == West::Up) return 2253;
			if (East == East::Up && North == North::Side && Power == 5 && South == South::None && West == West::Side) return 2254;
			if (East == East::Up && North == North::Side && Power == 5 && South == South::None && West == West::None) return 2255;
			if (East == East::Up && North == North::Side && Power == 6 && South == South::Up && West == West::Up) return 2256;
			if (East == East::Up && North == North::Side && Power == 6 && South == South::Up && West == West::Side) return 2257;
			if (East == East::Up && North == North::Side && Power == 6 && South == South::Up && West == West::None) return 2258;
			if (East == East::Up && North == North::Side && Power == 6 && South == South::Side && West == West::Up) return 2259;
			if (East == East::Up && North == North::Side && Power == 6 && South == South::Side && West == West::Side) return 2260;
			if (East == East::Up && North == North::Side && Power == 6 && South == South::Side && West == West::None) return 2261;
			if (East == East::Up && North == North::Side && Power == 6 && South == South::None && West == West::Up) return 2262;
			if (East == East::Up && North == North::Side && Power == 6 && South == South::None && West == West::Side) return 2263;
			if (East == East::Up && North == North::Side && Power == 6 && South == South::None && West == West::None) return 2264;
			if (East == East::Up && North == North::Side && Power == 7 && South == South::Up && West == West::Up) return 2265;
			if (East == East::Up && North == North::Side && Power == 7 && South == South::Up && West == West::Side) return 2266;
			if (East == East::Up && North == North::Side && Power == 7 && South == South::Up && West == West::None) return 2267;
			if (East == East::Up && North == North::Side && Power == 7 && South == South::Side && West == West::Up) return 2268;
			if (East == East::Up && North == North::Side && Power == 7 && South == South::Side && West == West::Side) return 2269;
			if (East == East::Up && North == North::Side && Power == 7 && South == South::Side && West == West::None) return 2270;
			if (East == East::Up && North == North::Side && Power == 7 && South == South::None && West == West::Up) return 2271;
			if (East == East::Up && North == North::Side && Power == 7 && South == South::None && West == West::Side) return 2272;
			if (East == East::Up && North == North::Side && Power == 7 && South == South::None && West == West::None) return 2273;
			if (East == East::Up && North == North::Side && Power == 8 && South == South::Up && West == West::Up) return 2274;
			if (East == East::Up && North == North::Side && Power == 8 && South == South::Up && West == West::Side) return 2275;
			if (East == East::Up && North == North::Side && Power == 8 && South == South::Up && West == West::None) return 2276;
			if (East == East::Up && North == North::Side && Power == 8 && South == South::Side && West == West::Up) return 2277;
			if (East == East::Up && North == North::Side && Power == 8 && South == South::Side && West == West::Side) return 2278;
			if (East == East::Up && North == North::Side && Power == 8 && South == South::Side && West == West::None) return 2279;
			if (East == East::Up && North == North::Side && Power == 8 && South == South::None && West == West::Up) return 2280;
			if (East == East::Up && North == North::Side && Power == 8 && South == South::None && West == West::Side) return 2281;
			if (East == East::Up && North == North::Side && Power == 8 && South == South::None && West == West::None) return 2282;
			if (East == East::Up && North == North::Side && Power == 9 && South == South::Up && West == West::Up) return 2283;
			if (East == East::Up && North == North::Side && Power == 9 && South == South::Up && West == West::Side) return 2284;
			if (East == East::Up && North == North::Side && Power == 9 && South == South::Up && West == West::None) return 2285;
			if (East == East::Up && North == North::Side && Power == 9 && South == South::Side && West == West::Up) return 2286;
			if (East == East::Up && North == North::Side && Power == 9 && South == South::Side && West == West::Side) return 2287;
			if (East == East::Up && North == North::Side && Power == 9 && South == South::Side && West == West::None) return 2288;
			if (East == East::Up && North == North::Side && Power == 9 && South == South::None && West == West::Up) return 2289;
			if (East == East::Up && North == North::Side && Power == 9 && South == South::None && West == West::Side) return 2290;
			if (East == East::Up && North == North::Side && Power == 9 && South == South::None && West == West::None) return 2291;
			if (East == East::Up && North == North::Side && Power == 10 && South == South::Up && West == West::Up) return 2292;
			if (East == East::Up && North == North::Side && Power == 10 && South == South::Up && West == West::Side) return 2293;
			if (East == East::Up && North == North::Side && Power == 10 && South == South::Up && West == West::None) return 2294;
			if (East == East::Up && North == North::Side && Power == 10 && South == South::Side && West == West::Up) return 2295;
			if (East == East::Up && North == North::Side && Power == 10 && South == South::Side && West == West::Side) return 2296;
			if (East == East::Up && North == North::Side && Power == 10 && South == South::Side && West == West::None) return 2297;
			if (East == East::Up && North == North::Side && Power == 10 && South == South::None && West == West::Up) return 2298;
			if (East == East::Up && North == North::Side && Power == 10 && South == South::None && West == West::Side) return 2299;
			if (East == East::Up && North == North::Side && Power == 10 && South == South::None && West == West::None) return 2300;
			if (East == East::Up && North == North::Side && Power == 11 && South == South::Up && West == West::Up) return 2301;
			if (East == East::Up && North == North::Side && Power == 11 && South == South::Up && West == West::Side) return 2302;
			if (East == East::Up && North == North::Side && Power == 11 && South == South::Up && West == West::None) return 2303;
			if (East == East::Up && North == North::Side && Power == 11 && South == South::Side && West == West::Up) return 2304;
			if (East == East::Up && North == North::Side && Power == 11 && South == South::Side && West == West::Side) return 2305;
			if (East == East::Up && North == North::Side && Power == 11 && South == South::Side && West == West::None) return 2306;
			if (East == East::Up && North == North::Side && Power == 11 && South == South::None && West == West::Up) return 2307;
			if (East == East::Up && North == North::Side && Power == 11 && South == South::None && West == West::Side) return 2308;
			if (East == East::Up && North == North::Side && Power == 11 && South == South::None && West == West::None) return 2309;
			if (East == East::Up && North == North::Side && Power == 12 && South == South::Up && West == West::Up) return 2310;
			if (East == East::Up && North == North::Side && Power == 12 && South == South::Up && West == West::Side) return 2311;
			if (East == East::Up && North == North::Side && Power == 12 && South == South::Up && West == West::None) return 2312;
			if (East == East::Up && North == North::Side && Power == 12 && South == South::Side && West == West::Up) return 2313;
			if (East == East::Up && North == North::Side && Power == 12 && South == South::Side && West == West::Side) return 2314;
			if (East == East::Up && North == North::Side && Power == 12 && South == South::Side && West == West::None) return 2315;
			if (East == East::Up && North == North::Side && Power == 12 && South == South::None && West == West::Up) return 2316;
			if (East == East::Up && North == North::Side && Power == 12 && South == South::None && West == West::Side) return 2317;
			if (East == East::Up && North == North::Side && Power == 12 && South == South::None && West == West::None) return 2318;
			if (East == East::Up && North == North::Side && Power == 13 && South == South::Up && West == West::Up) return 2319;
			if (East == East::Up && North == North::Side && Power == 13 && South == South::Up && West == West::Side) return 2320;
			if (East == East::Up && North == North::Side && Power == 13 && South == South::Up && West == West::None) return 2321;
			if (East == East::Up && North == North::Side && Power == 13 && South == South::Side && West == West::Up) return 2322;
			if (East == East::Up && North == North::Side && Power == 13 && South == South::Side && West == West::Side) return 2323;
			if (East == East::Up && North == North::Side && Power == 13 && South == South::Side && West == West::None) return 2324;
			if (East == East::Up && North == North::Side && Power == 13 && South == South::None && West == West::Up) return 2325;
			if (East == East::Up && North == North::Side && Power == 13 && South == South::None && West == West::Side) return 2326;
			if (East == East::Up && North == North::Side && Power == 13 && South == South::None && West == West::None) return 2327;
			if (East == East::Up && North == North::Side && Power == 14 && South == South::Up && West == West::Up) return 2328;
			if (East == East::Up && North == North::Side && Power == 14 && South == South::Up && West == West::Side) return 2329;
			if (East == East::Up && North == North::Side && Power == 14 && South == South::Up && West == West::None) return 2330;
			if (East == East::Up && North == North::Side && Power == 14 && South == South::Side && West == West::Up) return 2331;
			if (East == East::Up && North == North::Side && Power == 14 && South == South::Side && West == West::Side) return 2332;
			if (East == East::Up && North == North::Side && Power == 14 && South == South::Side && West == West::None) return 2333;
			if (East == East::Up && North == North::Side && Power == 14 && South == South::None && West == West::Up) return 2334;
			if (East == East::Up && North == North::Side && Power == 14 && South == South::None && West == West::Side) return 2335;
			if (East == East::Up && North == North::Side && Power == 14 && South == South::None && West == West::None) return 2336;
			if (East == East::Up && North == North::Side && Power == 15 && South == South::Up && West == West::Up) return 2337;
			if (East == East::Up && North == North::Side && Power == 15 && South == South::Up && West == West::Side) return 2338;
			if (East == East::Up && North == North::Side && Power == 15 && South == South::Up && West == West::None) return 2339;
			if (East == East::Up && North == North::Side && Power == 15 && South == South::Side && West == West::Up) return 2340;
			if (East == East::Up && North == North::Side && Power == 15 && South == South::Side && West == West::Side) return 2341;
			if (East == East::Up && North == North::Side && Power == 15 && South == South::Side && West == West::None) return 2342;
			if (East == East::Up && North == North::Side && Power == 15 && South == South::None && West == West::Up) return 2343;
			if (East == East::Up && North == North::Side && Power == 15 && South == South::None && West == West::Side) return 2344;
			if (East == East::Up && North == North::Side && Power == 15 && South == South::None && West == West::None) return 2345;
			if (East == East::Up && North == North::None && Power == 0 && South == South::Up && West == West::Up) return 2346;
			if (East == East::Up && North == North::None && Power == 0 && South == South::Up && West == West::Side) return 2347;
			if (East == East::Up && North == North::None && Power == 0 && South == South::Up && West == West::None) return 2348;
			if (East == East::Up && North == North::None && Power == 0 && South == South::Side && West == West::Up) return 2349;
			if (East == East::Up && North == North::None && Power == 0 && South == South::Side && West == West::Side) return 2350;
			if (East == East::Up && North == North::None && Power == 0 && South == South::Side && West == West::None) return 2351;
			if (East == East::Up && North == North::None && Power == 0 && South == South::None && West == West::Up) return 2352;
			if (East == East::Up && North == North::None && Power == 0 && South == South::None && West == West::Side) return 2353;
			if (East == East::Up && North == North::None && Power == 0 && South == South::None && West == West::None) return 2354;
			if (East == East::Up && North == North::None && Power == 1 && South == South::Up && West == West::Up) return 2355;
			if (East == East::Up && North == North::None && Power == 1 && South == South::Up && West == West::Side) return 2356;
			if (East == East::Up && North == North::None && Power == 1 && South == South::Up && West == West::None) return 2357;
			if (East == East::Up && North == North::None && Power == 1 && South == South::Side && West == West::Up) return 2358;
			if (East == East::Up && North == North::None && Power == 1 && South == South::Side && West == West::Side) return 2359;
			if (East == East::Up && North == North::None && Power == 1 && South == South::Side && West == West::None) return 2360;
			if (East == East::Up && North == North::None && Power == 1 && South == South::None && West == West::Up) return 2361;
			if (East == East::Up && North == North::None && Power == 1 && South == South::None && West == West::Side) return 2362;
			if (East == East::Up && North == North::None && Power == 1 && South == South::None && West == West::None) return 2363;
			if (East == East::Up && North == North::None && Power == 2 && South == South::Up && West == West::Up) return 2364;
			if (East == East::Up && North == North::None && Power == 2 && South == South::Up && West == West::Side) return 2365;
			if (East == East::Up && North == North::None && Power == 2 && South == South::Up && West == West::None) return 2366;
			if (East == East::Up && North == North::None && Power == 2 && South == South::Side && West == West::Up) return 2367;
			if (East == East::Up && North == North::None && Power == 2 && South == South::Side && West == West::Side) return 2368;
			if (East == East::Up && North == North::None && Power == 2 && South == South::Side && West == West::None) return 2369;
			if (East == East::Up && North == North::None && Power == 2 && South == South::None && West == West::Up) return 2370;
			if (East == East::Up && North == North::None && Power == 2 && South == South::None && West == West::Side) return 2371;
			if (East == East::Up && North == North::None && Power == 2 && South == South::None && West == West::None) return 2372;
			if (East == East::Up && North == North::None && Power == 3 && South == South::Up && West == West::Up) return 2373;
			if (East == East::Up && North == North::None && Power == 3 && South == South::Up && West == West::Side) return 2374;
			if (East == East::Up && North == North::None && Power == 3 && South == South::Up && West == West::None) return 2375;
			if (East == East::Up && North == North::None && Power == 3 && South == South::Side && West == West::Up) return 2376;
			if (East == East::Up && North == North::None && Power == 3 && South == South::Side && West == West::Side) return 2377;
			if (East == East::Up && North == North::None && Power == 3 && South == South::Side && West == West::None) return 2378;
			if (East == East::Up && North == North::None && Power == 3 && South == South::None && West == West::Up) return 2379;
			if (East == East::Up && North == North::None && Power == 3 && South == South::None && West == West::Side) return 2380;
			if (East == East::Up && North == North::None && Power == 3 && South == South::None && West == West::None) return 2381;
			if (East == East::Up && North == North::None && Power == 4 && South == South::Up && West == West::Up) return 2382;
			if (East == East::Up && North == North::None && Power == 4 && South == South::Up && West == West::Side) return 2383;
			if (East == East::Up && North == North::None && Power == 4 && South == South::Up && West == West::None) return 2384;
			if (East == East::Up && North == North::None && Power == 4 && South == South::Side && West == West::Up) return 2385;
			if (East == East::Up && North == North::None && Power == 4 && South == South::Side && West == West::Side) return 2386;
			if (East == East::Up && North == North::None && Power == 4 && South == South::Side && West == West::None) return 2387;
			if (East == East::Up && North == North::None && Power == 4 && South == South::None && West == West::Up) return 2388;
			if (East == East::Up && North == North::None && Power == 4 && South == South::None && West == West::Side) return 2389;
			if (East == East::Up && North == North::None && Power == 4 && South == South::None && West == West::None) return 2390;
			if (East == East::Up && North == North::None && Power == 5 && South == South::Up && West == West::Up) return 2391;
			if (East == East::Up && North == North::None && Power == 5 && South == South::Up && West == West::Side) return 2392;
			if (East == East::Up && North == North::None && Power == 5 && South == South::Up && West == West::None) return 2393;
			if (East == East::Up && North == North::None && Power == 5 && South == South::Side && West == West::Up) return 2394;
			if (East == East::Up && North == North::None && Power == 5 && South == South::Side && West == West::Side) return 2395;
			if (East == East::Up && North == North::None && Power == 5 && South == South::Side && West == West::None) return 2396;
			if (East == East::Up && North == North::None && Power == 5 && South == South::None && West == West::Up) return 2397;
			if (East == East::Up && North == North::None && Power == 5 && South == South::None && West == West::Side) return 2398;
			if (East == East::Up && North == North::None && Power == 5 && South == South::None && West == West::None) return 2399;
			if (East == East::Up && North == North::None && Power == 6 && South == South::Up && West == West::Up) return 2400;
			if (East == East::Up && North == North::None && Power == 6 && South == South::Up && West == West::Side) return 2401;
			if (East == East::Up && North == North::None && Power == 6 && South == South::Up && West == West::None) return 2402;
			if (East == East::Up && North == North::None && Power == 6 && South == South::Side && West == West::Up) return 2403;
			if (East == East::Up && North == North::None && Power == 6 && South == South::Side && West == West::Side) return 2404;
			if (East == East::Up && North == North::None && Power == 6 && South == South::Side && West == West::None) return 2405;
			if (East == East::Up && North == North::None && Power == 6 && South == South::None && West == West::Up) return 2406;
			if (East == East::Up && North == North::None && Power == 6 && South == South::None && West == West::Side) return 2407;
			if (East == East::Up && North == North::None && Power == 6 && South == South::None && West == West::None) return 2408;
			if (East == East::Up && North == North::None && Power == 7 && South == South::Up && West == West::Up) return 2409;
			if (East == East::Up && North == North::None && Power == 7 && South == South::Up && West == West::Side) return 2410;
			if (East == East::Up && North == North::None && Power == 7 && South == South::Up && West == West::None) return 2411;
			if (East == East::Up && North == North::None && Power == 7 && South == South::Side && West == West::Up) return 2412;
			if (East == East::Up && North == North::None && Power == 7 && South == South::Side && West == West::Side) return 2413;
			if (East == East::Up && North == North::None && Power == 7 && South == South::Side && West == West::None) return 2414;
			if (East == East::Up && North == North::None && Power == 7 && South == South::None && West == West::Up) return 2415;
			if (East == East::Up && North == North::None && Power == 7 && South == South::None && West == West::Side) return 2416;
			if (East == East::Up && North == North::None && Power == 7 && South == South::None && West == West::None) return 2417;
			if (East == East::Up && North == North::None && Power == 8 && South == South::Up && West == West::Up) return 2418;
			if (East == East::Up && North == North::None && Power == 8 && South == South::Up && West == West::Side) return 2419;
			if (East == East::Up && North == North::None && Power == 8 && South == South::Up && West == West::None) return 2420;
			if (East == East::Up && North == North::None && Power == 8 && South == South::Side && West == West::Up) return 2421;
			if (East == East::Up && North == North::None && Power == 8 && South == South::Side && West == West::Side) return 2422;
			if (East == East::Up && North == North::None && Power == 8 && South == South::Side && West == West::None) return 2423;
			if (East == East::Up && North == North::None && Power == 8 && South == South::None && West == West::Up) return 2424;
			if (East == East::Up && North == North::None && Power == 8 && South == South::None && West == West::Side) return 2425;
			if (East == East::Up && North == North::None && Power == 8 && South == South::None && West == West::None) return 2426;
			if (East == East::Up && North == North::None && Power == 9 && South == South::Up && West == West::Up) return 2427;
			if (East == East::Up && North == North::None && Power == 9 && South == South::Up && West == West::Side) return 2428;
			if (East == East::Up && North == North::None && Power == 9 && South == South::Up && West == West::None) return 2429;
			if (East == East::Up && North == North::None && Power == 9 && South == South::Side && West == West::Up) return 2430;
			if (East == East::Up && North == North::None && Power == 9 && South == South::Side && West == West::Side) return 2431;
			if (East == East::Up && North == North::None && Power == 9 && South == South::Side && West == West::None) return 2432;
			if (East == East::Up && North == North::None && Power == 9 && South == South::None && West == West::Up) return 2433;
			if (East == East::Up && North == North::None && Power == 9 && South == South::None && West == West::Side) return 2434;
			if (East == East::Up && North == North::None && Power == 9 && South == South::None && West == West::None) return 2435;
			if (East == East::Up && North == North::None && Power == 10 && South == South::Up && West == West::Up) return 2436;
			if (East == East::Up && North == North::None && Power == 10 && South == South::Up && West == West::Side) return 2437;
			if (East == East::Up && North == North::None && Power == 10 && South == South::Up && West == West::None) return 2438;
			if (East == East::Up && North == North::None && Power == 10 && South == South::Side && West == West::Up) return 2439;
			if (East == East::Up && North == North::None && Power == 10 && South == South::Side && West == West::Side) return 2440;
			if (East == East::Up && North == North::None && Power == 10 && South == South::Side && West == West::None) return 2441;
			if (East == East::Up && North == North::None && Power == 10 && South == South::None && West == West::Up) return 2442;
			if (East == East::Up && North == North::None && Power == 10 && South == South::None && West == West::Side) return 2443;
			if (East == East::Up && North == North::None && Power == 10 && South == South::None && West == West::None) return 2444;
			if (East == East::Up && North == North::None && Power == 11 && South == South::Up && West == West::Up) return 2445;
			if (East == East::Up && North == North::None && Power == 11 && South == South::Up && West == West::Side) return 2446;
			if (East == East::Up && North == North::None && Power == 11 && South == South::Up && West == West::None) return 2447;
			if (East == East::Up && North == North::None && Power == 11 && South == South::Side && West == West::Up) return 2448;
			if (East == East::Up && North == North::None && Power == 11 && South == South::Side && West == West::Side) return 2449;
			if (East == East::Up && North == North::None && Power == 11 && South == South::Side && West == West::None) return 2450;
			if (East == East::Up && North == North::None && Power == 11 && South == South::None && West == West::Up) return 2451;
			if (East == East::Up && North == North::None && Power == 11 && South == South::None && West == West::Side) return 2452;
			if (East == East::Up && North == North::None && Power == 11 && South == South::None && West == West::None) return 2453;
			if (East == East::Up && North == North::None && Power == 12 && South == South::Up && West == West::Up) return 2454;
			if (East == East::Up && North == North::None && Power == 12 && South == South::Up && West == West::Side) return 2455;
			if (East == East::Up && North == North::None && Power == 12 && South == South::Up && West == West::None) return 2456;
			if (East == East::Up && North == North::None && Power == 12 && South == South::Side && West == West::Up) return 2457;
			if (East == East::Up && North == North::None && Power == 12 && South == South::Side && West == West::Side) return 2458;
			if (East == East::Up && North == North::None && Power == 12 && South == South::Side && West == West::None) return 2459;
			if (East == East::Up && North == North::None && Power == 12 && South == South::None && West == West::Up) return 2460;
			if (East == East::Up && North == North::None && Power == 12 && South == South::None && West == West::Side) return 2461;
			if (East == East::Up && North == North::None && Power == 12 && South == South::None && West == West::None) return 2462;
			if (East == East::Up && North == North::None && Power == 13 && South == South::Up && West == West::Up) return 2463;
			if (East == East::Up && North == North::None && Power == 13 && South == South::Up && West == West::Side) return 2464;
			if (East == East::Up && North == North::None && Power == 13 && South == South::Up && West == West::None) return 2465;
			if (East == East::Up && North == North::None && Power == 13 && South == South::Side && West == West::Up) return 2466;
			if (East == East::Up && North == North::None && Power == 13 && South == South::Side && West == West::Side) return 2467;
			if (East == East::Up && North == North::None && Power == 13 && South == South::Side && West == West::None) return 2468;
			if (East == East::Up && North == North::None && Power == 13 && South == South::None && West == West::Up) return 2469;
			if (East == East::Up && North == North::None && Power == 13 && South == South::None && West == West::Side) return 2470;
			if (East == East::Up && North == North::None && Power == 13 && South == South::None && West == West::None) return 2471;
			if (East == East::Up && North == North::None && Power == 14 && South == South::Up && West == West::Up) return 2472;
			if (East == East::Up && North == North::None && Power == 14 && South == South::Up && West == West::Side) return 2473;
			if (East == East::Up && North == North::None && Power == 14 && South == South::Up && West == West::None) return 2474;
			if (East == East::Up && North == North::None && Power == 14 && South == South::Side && West == West::Up) return 2475;
			if (East == East::Up && North == North::None && Power == 14 && South == South::Side && West == West::Side) return 2476;
			if (East == East::Up && North == North::None && Power == 14 && South == South::Side && West == West::None) return 2477;
			if (East == East::Up && North == North::None && Power == 14 && South == South::None && West == West::Up) return 2478;
			if (East == East::Up && North == North::None && Power == 14 && South == South::None && West == West::Side) return 2479;
			if (East == East::Up && North == North::None && Power == 14 && South == South::None && West == West::None) return 2480;
			if (East == East::Up && North == North::None && Power == 15 && South == South::Up && West == West::Up) return 2481;
			if (East == East::Up && North == North::None && Power == 15 && South == South::Up && West == West::Side) return 2482;
			if (East == East::Up && North == North::None && Power == 15 && South == South::Up && West == West::None) return 2483;
			if (East == East::Up && North == North::None && Power == 15 && South == South::Side && West == West::Up) return 2484;
			if (East == East::Up && North == North::None && Power == 15 && South == South::Side && West == West::Side) return 2485;
			if (East == East::Up && North == North::None && Power == 15 && South == South::Side && West == West::None) return 2486;
			if (East == East::Up && North == North::None && Power == 15 && South == South::None && West == West::Up) return 2487;
			if (East == East::Up && North == North::None && Power == 15 && South == South::None && West == West::Side) return 2488;
			if (East == East::Up && North == North::None && Power == 15 && South == South::None && West == West::None) return 2489;
			if (East == East::Side && North == North::Up && Power == 0 && South == South::Up && West == West::Up) return 2490;
			if (East == East::Side && North == North::Up && Power == 0 && South == South::Up && West == West::Side) return 2491;
			if (East == East::Side && North == North::Up && Power == 0 && South == South::Up && West == West::None) return 2492;
			if (East == East::Side && North == North::Up && Power == 0 && South == South::Side && West == West::Up) return 2493;
			if (East == East::Side && North == North::Up && Power == 0 && South == South::Side && West == West::Side) return 2494;
			if (East == East::Side && North == North::Up && Power == 0 && South == South::Side && West == West::None) return 2495;
			if (East == East::Side && North == North::Up && Power == 0 && South == South::None && West == West::Up) return 2496;
			if (East == East::Side && North == North::Up && Power == 0 && South == South::None && West == West::Side) return 2497;
			if (East == East::Side && North == North::Up && Power == 0 && South == South::None && West == West::None) return 2498;
			if (East == East::Side && North == North::Up && Power == 1 && South == South::Up && West == West::Up) return 2499;
			if (East == East::Side && North == North::Up && Power == 1 && South == South::Up && West == West::Side) return 2500;
			if (East == East::Side && North == North::Up && Power == 1 && South == South::Up && West == West::None) return 2501;
			if (East == East::Side && North == North::Up && Power == 1 && South == South::Side && West == West::Up) return 2502;
			if (East == East::Side && North == North::Up && Power == 1 && South == South::Side && West == West::Side) return 2503;
			if (East == East::Side && North == North::Up && Power == 1 && South == South::Side && West == West::None) return 2504;
			if (East == East::Side && North == North::Up && Power == 1 && South == South::None && West == West::Up) return 2505;
			if (East == East::Side && North == North::Up && Power == 1 && South == South::None && West == West::Side) return 2506;
			if (East == East::Side && North == North::Up && Power == 1 && South == South::None && West == West::None) return 2507;
			if (East == East::Side && North == North::Up && Power == 2 && South == South::Up && West == West::Up) return 2508;
			if (East == East::Side && North == North::Up && Power == 2 && South == South::Up && West == West::Side) return 2509;
			if (East == East::Side && North == North::Up && Power == 2 && South == South::Up && West == West::None) return 2510;
			if (East == East::Side && North == North::Up && Power == 2 && South == South::Side && West == West::Up) return 2511;
			if (East == East::Side && North == North::Up && Power == 2 && South == South::Side && West == West::Side) return 2512;
			if (East == East::Side && North == North::Up && Power == 2 && South == South::Side && West == West::None) return 2513;
			if (East == East::Side && North == North::Up && Power == 2 && South == South::None && West == West::Up) return 2514;
			if (East == East::Side && North == North::Up && Power == 2 && South == South::None && West == West::Side) return 2515;
			if (East == East::Side && North == North::Up && Power == 2 && South == South::None && West == West::None) return 2516;
			if (East == East::Side && North == North::Up && Power == 3 && South == South::Up && West == West::Up) return 2517;
			if (East == East::Side && North == North::Up && Power == 3 && South == South::Up && West == West::Side) return 2518;
			if (East == East::Side && North == North::Up && Power == 3 && South == South::Up && West == West::None) return 2519;
			if (East == East::Side && North == North::Up && Power == 3 && South == South::Side && West == West::Up) return 2520;
			if (East == East::Side && North == North::Up && Power == 3 && South == South::Side && West == West::Side) return 2521;
			if (East == East::Side && North == North::Up && Power == 3 && South == South::Side && West == West::None) return 2522;
			if (East == East::Side && North == North::Up && Power == 3 && South == South::None && West == West::Up) return 2523;
			if (East == East::Side && North == North::Up && Power == 3 && South == South::None && West == West::Side) return 2524;
			if (East == East::Side && North == North::Up && Power == 3 && South == South::None && West == West::None) return 2525;
			if (East == East::Side && North == North::Up && Power == 4 && South == South::Up && West == West::Up) return 2526;
			if (East == East::Side && North == North::Up && Power == 4 && South == South::Up && West == West::Side) return 2527;
			if (East == East::Side && North == North::Up && Power == 4 && South == South::Up && West == West::None) return 2528;
			if (East == East::Side && North == North::Up && Power == 4 && South == South::Side && West == West::Up) return 2529;
			if (East == East::Side && North == North::Up && Power == 4 && South == South::Side && West == West::Side) return 2530;
			if (East == East::Side && North == North::Up && Power == 4 && South == South::Side && West == West::None) return 2531;
			if (East == East::Side && North == North::Up && Power == 4 && South == South::None && West == West::Up) return 2532;
			if (East == East::Side && North == North::Up && Power == 4 && South == South::None && West == West::Side) return 2533;
			if (East == East::Side && North == North::Up && Power == 4 && South == South::None && West == West::None) return 2534;
			if (East == East::Side && North == North::Up && Power == 5 && South == South::Up && West == West::Up) return 2535;
			if (East == East::Side && North == North::Up && Power == 5 && South == South::Up && West == West::Side) return 2536;
			if (East == East::Side && North == North::Up && Power == 5 && South == South::Up && West == West::None) return 2537;
			if (East == East::Side && North == North::Up && Power == 5 && South == South::Side && West == West::Up) return 2538;
			if (East == East::Side && North == North::Up && Power == 5 && South == South::Side && West == West::Side) return 2539;
			if (East == East::Side && North == North::Up && Power == 5 && South == South::Side && West == West::None) return 2540;
			if (East == East::Side && North == North::Up && Power == 5 && South == South::None && West == West::Up) return 2541;
			if (East == East::Side && North == North::Up && Power == 5 && South == South::None && West == West::Side) return 2542;
			if (East == East::Side && North == North::Up && Power == 5 && South == South::None && West == West::None) return 2543;
			if (East == East::Side && North == North::Up && Power == 6 && South == South::Up && West == West::Up) return 2544;
			if (East == East::Side && North == North::Up && Power == 6 && South == South::Up && West == West::Side) return 2545;
			if (East == East::Side && North == North::Up && Power == 6 && South == South::Up && West == West::None) return 2546;
			if (East == East::Side && North == North::Up && Power == 6 && South == South::Side && West == West::Up) return 2547;
			if (East == East::Side && North == North::Up && Power == 6 && South == South::Side && West == West::Side) return 2548;
			if (East == East::Side && North == North::Up && Power == 6 && South == South::Side && West == West::None) return 2549;
			if (East == East::Side && North == North::Up && Power == 6 && South == South::None && West == West::Up) return 2550;
			if (East == East::Side && North == North::Up && Power == 6 && South == South::None && West == West::Side) return 2551;
			if (East == East::Side && North == North::Up && Power == 6 && South == South::None && West == West::None) return 2552;
			if (East == East::Side && North == North::Up && Power == 7 && South == South::Up && West == West::Up) return 2553;
			if (East == East::Side && North == North::Up && Power == 7 && South == South::Up && West == West::Side) return 2554;
			if (East == East::Side && North == North::Up && Power == 7 && South == South::Up && West == West::None) return 2555;
			if (East == East::Side && North == North::Up && Power == 7 && South == South::Side && West == West::Up) return 2556;
			if (East == East::Side && North == North::Up && Power == 7 && South == South::Side && West == West::Side) return 2557;
			if (East == East::Side && North == North::Up && Power == 7 && South == South::Side && West == West::None) return 2558;
			if (East == East::Side && North == North::Up && Power == 7 && South == South::None && West == West::Up) return 2559;
			if (East == East::Side && North == North::Up && Power == 7 && South == South::None && West == West::Side) return 2560;
			if (East == East::Side && North == North::Up && Power == 7 && South == South::None && West == West::None) return 2561;
			if (East == East::Side && North == North::Up && Power == 8 && South == South::Up && West == West::Up) return 2562;
			if (East == East::Side && North == North::Up && Power == 8 && South == South::Up && West == West::Side) return 2563;
			if (East == East::Side && North == North::Up && Power == 8 && South == South::Up && West == West::None) return 2564;
			if (East == East::Side && North == North::Up && Power == 8 && South == South::Side && West == West::Up) return 2565;
			if (East == East::Side && North == North::Up && Power == 8 && South == South::Side && West == West::Side) return 2566;
			if (East == East::Side && North == North::Up && Power == 8 && South == South::Side && West == West::None) return 2567;
			if (East == East::Side && North == North::Up && Power == 8 && South == South::None && West == West::Up) return 2568;
			if (East == East::Side && North == North::Up && Power == 8 && South == South::None && West == West::Side) return 2569;
			if (East == East::Side && North == North::Up && Power == 8 && South == South::None && West == West::None) return 2570;
			if (East == East::Side && North == North::Up && Power == 9 && South == South::Up && West == West::Up) return 2571;
			if (East == East::Side && North == North::Up && Power == 9 && South == South::Up && West == West::Side) return 2572;
			if (East == East::Side && North == North::Up && Power == 9 && South == South::Up && West == West::None) return 2573;
			if (East == East::Side && North == North::Up && Power == 9 && South == South::Side && West == West::Up) return 2574;
			if (East == East::Side && North == North::Up && Power == 9 && South == South::Side && West == West::Side) return 2575;
			if (East == East::Side && North == North::Up && Power == 9 && South == South::Side && West == West::None) return 2576;
			if (East == East::Side && North == North::Up && Power == 9 && South == South::None && West == West::Up) return 2577;
			if (East == East::Side && North == North::Up && Power == 9 && South == South::None && West == West::Side) return 2578;
			if (East == East::Side && North == North::Up && Power == 9 && South == South::None && West == West::None) return 2579;
			if (East == East::Side && North == North::Up && Power == 10 && South == South::Up && West == West::Up) return 2580;
			if (East == East::Side && North == North::Up && Power == 10 && South == South::Up && West == West::Side) return 2581;
			if (East == East::Side && North == North::Up && Power == 10 && South == South::Up && West == West::None) return 2582;
			if (East == East::Side && North == North::Up && Power == 10 && South == South::Side && West == West::Up) return 2583;
			if (East == East::Side && North == North::Up && Power == 10 && South == South::Side && West == West::Side) return 2584;
			if (East == East::Side && North == North::Up && Power == 10 && South == South::Side && West == West::None) return 2585;
			if (East == East::Side && North == North::Up && Power == 10 && South == South::None && West == West::Up) return 2586;
			if (East == East::Side && North == North::Up && Power == 10 && South == South::None && West == West::Side) return 2587;
			if (East == East::Side && North == North::Up && Power == 10 && South == South::None && West == West::None) return 2588;
			if (East == East::Side && North == North::Up && Power == 11 && South == South::Up && West == West::Up) return 2589;
			if (East == East::Side && North == North::Up && Power == 11 && South == South::Up && West == West::Side) return 2590;
			if (East == East::Side && North == North::Up && Power == 11 && South == South::Up && West == West::None) return 2591;
			if (East == East::Side && North == North::Up && Power == 11 && South == South::Side && West == West::Up) return 2592;
			if (East == East::Side && North == North::Up && Power == 11 && South == South::Side && West == West::Side) return 2593;
			if (East == East::Side && North == North::Up && Power == 11 && South == South::Side && West == West::None) return 2594;
			if (East == East::Side && North == North::Up && Power == 11 && South == South::None && West == West::Up) return 2595;
			if (East == East::Side && North == North::Up && Power == 11 && South == South::None && West == West::Side) return 2596;
			if (East == East::Side && North == North::Up && Power == 11 && South == South::None && West == West::None) return 2597;
			if (East == East::Side && North == North::Up && Power == 12 && South == South::Up && West == West::Up) return 2598;
			if (East == East::Side && North == North::Up && Power == 12 && South == South::Up && West == West::Side) return 2599;
			if (East == East::Side && North == North::Up && Power == 12 && South == South::Up && West == West::None) return 2600;
			if (East == East::Side && North == North::Up && Power == 12 && South == South::Side && West == West::Up) return 2601;
			if (East == East::Side && North == North::Up && Power == 12 && South == South::Side && West == West::Side) return 2602;
			if (East == East::Side && North == North::Up && Power == 12 && South == South::Side && West == West::None) return 2603;
			if (East == East::Side && North == North::Up && Power == 12 && South == South::None && West == West::Up) return 2604;
			if (East == East::Side && North == North::Up && Power == 12 && South == South::None && West == West::Side) return 2605;
			if (East == East::Side && North == North::Up && Power == 12 && South == South::None && West == West::None) return 2606;
			if (East == East::Side && North == North::Up && Power == 13 && South == South::Up && West == West::Up) return 2607;
			if (East == East::Side && North == North::Up && Power == 13 && South == South::Up && West == West::Side) return 2608;
			if (East == East::Side && North == North::Up && Power == 13 && South == South::Up && West == West::None) return 2609;
			if (East == East::Side && North == North::Up && Power == 13 && South == South::Side && West == West::Up) return 2610;
			if (East == East::Side && North == North::Up && Power == 13 && South == South::Side && West == West::Side) return 2611;
			if (East == East::Side && North == North::Up && Power == 13 && South == South::Side && West == West::None) return 2612;
			if (East == East::Side && North == North::Up && Power == 13 && South == South::None && West == West::Up) return 2613;
			if (East == East::Side && North == North::Up && Power == 13 && South == South::None && West == West::Side) return 2614;
			if (East == East::Side && North == North::Up && Power == 13 && South == South::None && West == West::None) return 2615;
			if (East == East::Side && North == North::Up && Power == 14 && South == South::Up && West == West::Up) return 2616;
			if (East == East::Side && North == North::Up && Power == 14 && South == South::Up && West == West::Side) return 2617;
			if (East == East::Side && North == North::Up && Power == 14 && South == South::Up && West == West::None) return 2618;
			if (East == East::Side && North == North::Up && Power == 14 && South == South::Side && West == West::Up) return 2619;
			if (East == East::Side && North == North::Up && Power == 14 && South == South::Side && West == West::Side) return 2620;
			if (East == East::Side && North == North::Up && Power == 14 && South == South::Side && West == West::None) return 2621;
			if (East == East::Side && North == North::Up && Power == 14 && South == South::None && West == West::Up) return 2622;
			if (East == East::Side && North == North::Up && Power == 14 && South == South::None && West == West::Side) return 2623;
			if (East == East::Side && North == North::Up && Power == 14 && South == South::None && West == West::None) return 2624;
			if (East == East::Side && North == North::Up && Power == 15 && South == South::Up && West == West::Up) return 2625;
			if (East == East::Side && North == North::Up && Power == 15 && South == South::Up && West == West::Side) return 2626;
			if (East == East::Side && North == North::Up && Power == 15 && South == South::Up && West == West::None) return 2627;
			if (East == East::Side && North == North::Up && Power == 15 && South == South::Side && West == West::Up) return 2628;
			if (East == East::Side && North == North::Up && Power == 15 && South == South::Side && West == West::Side) return 2629;
			if (East == East::Side && North == North::Up && Power == 15 && South == South::Side && West == West::None) return 2630;
			if (East == East::Side && North == North::Up && Power == 15 && South == South::None && West == West::Up) return 2631;
			if (East == East::Side && North == North::Up && Power == 15 && South == South::None && West == West::Side) return 2632;
			if (East == East::Side && North == North::Up && Power == 15 && South == South::None && West == West::None) return 2633;
			if (East == East::Side && North == North::Side && Power == 0 && South == South::Up && West == West::Up) return 2634;
			if (East == East::Side && North == North::Side && Power == 0 && South == South::Up && West == West::Side) return 2635;
			if (East == East::Side && North == North::Side && Power == 0 && South == South::Up && West == West::None) return 2636;
			if (East == East::Side && North == North::Side && Power == 0 && South == South::Side && West == West::Up) return 2637;
			if (East == East::Side && North == North::Side && Power == 0 && South == South::Side && West == West::Side) return 2638;
			if (East == East::Side && North == North::Side && Power == 0 && South == South::Side && West == West::None) return 2639;
			if (East == East::Side && North == North::Side && Power == 0 && South == South::None && West == West::Up) return 2640;
			if (East == East::Side && North == North::Side && Power == 0 && South == South::None && West == West::Side) return 2641;
			if (East == East::Side && North == North::Side && Power == 0 && South == South::None && West == West::None) return 2642;
			if (East == East::Side && North == North::Side && Power == 1 && South == South::Up && West == West::Up) return 2643;
			if (East == East::Side && North == North::Side && Power == 1 && South == South::Up && West == West::Side) return 2644;
			if (East == East::Side && North == North::Side && Power == 1 && South == South::Up && West == West::None) return 2645;
			if (East == East::Side && North == North::Side && Power == 1 && South == South::Side && West == West::Up) return 2646;
			if (East == East::Side && North == North::Side && Power == 1 && South == South::Side && West == West::Side) return 2647;
			if (East == East::Side && North == North::Side && Power == 1 && South == South::Side && West == West::None) return 2648;
			if (East == East::Side && North == North::Side && Power == 1 && South == South::None && West == West::Up) return 2649;
			if (East == East::Side && North == North::Side && Power == 1 && South == South::None && West == West::Side) return 2650;
			if (East == East::Side && North == North::Side && Power == 1 && South == South::None && West == West::None) return 2651;
			if (East == East::Side && North == North::Side && Power == 2 && South == South::Up && West == West::Up) return 2652;
			if (East == East::Side && North == North::Side && Power == 2 && South == South::Up && West == West::Side) return 2653;
			if (East == East::Side && North == North::Side && Power == 2 && South == South::Up && West == West::None) return 2654;
			if (East == East::Side && North == North::Side && Power == 2 && South == South::Side && West == West::Up) return 2655;
			if (East == East::Side && North == North::Side && Power == 2 && South == South::Side && West == West::Side) return 2656;
			if (East == East::Side && North == North::Side && Power == 2 && South == South::Side && West == West::None) return 2657;
			if (East == East::Side && North == North::Side && Power == 2 && South == South::None && West == West::Up) return 2658;
			if (East == East::Side && North == North::Side && Power == 2 && South == South::None && West == West::Side) return 2659;
			if (East == East::Side && North == North::Side && Power == 2 && South == South::None && West == West::None) return 2660;
			if (East == East::Side && North == North::Side && Power == 3 && South == South::Up && West == West::Up) return 2661;
			if (East == East::Side && North == North::Side && Power == 3 && South == South::Up && West == West::Side) return 2662;
			if (East == East::Side && North == North::Side && Power == 3 && South == South::Up && West == West::None) return 2663;
			if (East == East::Side && North == North::Side && Power == 3 && South == South::Side && West == West::Up) return 2664;
			if (East == East::Side && North == North::Side && Power == 3 && South == South::Side && West == West::Side) return 2665;
			if (East == East::Side && North == North::Side && Power == 3 && South == South::Side && West == West::None) return 2666;
			if (East == East::Side && North == North::Side && Power == 3 && South == South::None && West == West::Up) return 2667;
			if (East == East::Side && North == North::Side && Power == 3 && South == South::None && West == West::Side) return 2668;
			if (East == East::Side && North == North::Side && Power == 3 && South == South::None && West == West::None) return 2669;
			if (East == East::Side && North == North::Side && Power == 4 && South == South::Up && West == West::Up) return 2670;
			if (East == East::Side && North == North::Side && Power == 4 && South == South::Up && West == West::Side) return 2671;
			if (East == East::Side && North == North::Side && Power == 4 && South == South::Up && West == West::None) return 2672;
			if (East == East::Side && North == North::Side && Power == 4 && South == South::Side && West == West::Up) return 2673;
			if (East == East::Side && North == North::Side && Power == 4 && South == South::Side && West == West::Side) return 2674;
			if (East == East::Side && North == North::Side && Power == 4 && South == South::Side && West == West::None) return 2675;
			if (East == East::Side && North == North::Side && Power == 4 && South == South::None && West == West::Up) return 2676;
			if (East == East::Side && North == North::Side && Power == 4 && South == South::None && West == West::Side) return 2677;
			if (East == East::Side && North == North::Side && Power == 4 && South == South::None && West == West::None) return 2678;
			if (East == East::Side && North == North::Side && Power == 5 && South == South::Up && West == West::Up) return 2679;
			if (East == East::Side && North == North::Side && Power == 5 && South == South::Up && West == West::Side) return 2680;
			if (East == East::Side && North == North::Side && Power == 5 && South == South::Up && West == West::None) return 2681;
			if (East == East::Side && North == North::Side && Power == 5 && South == South::Side && West == West::Up) return 2682;
			if (East == East::Side && North == North::Side && Power == 5 && South == South::Side && West == West::Side) return 2683;
			if (East == East::Side && North == North::Side && Power == 5 && South == South::Side && West == West::None) return 2684;
			if (East == East::Side && North == North::Side && Power == 5 && South == South::None && West == West::Up) return 2685;
			if (East == East::Side && North == North::Side && Power == 5 && South == South::None && West == West::Side) return 2686;
			if (East == East::Side && North == North::Side && Power == 5 && South == South::None && West == West::None) return 2687;
			if (East == East::Side && North == North::Side && Power == 6 && South == South::Up && West == West::Up) return 2688;
			if (East == East::Side && North == North::Side && Power == 6 && South == South::Up && West == West::Side) return 2689;
			if (East == East::Side && North == North::Side && Power == 6 && South == South::Up && West == West::None) return 2690;
			if (East == East::Side && North == North::Side && Power == 6 && South == South::Side && West == West::Up) return 2691;
			if (East == East::Side && North == North::Side && Power == 6 && South == South::Side && West == West::Side) return 2692;
			if (East == East::Side && North == North::Side && Power == 6 && South == South::Side && West == West::None) return 2693;
			if (East == East::Side && North == North::Side && Power == 6 && South == South::None && West == West::Up) return 2694;
			if (East == East::Side && North == North::Side && Power == 6 && South == South::None && West == West::Side) return 2695;
			if (East == East::Side && North == North::Side && Power == 6 && South == South::None && West == West::None) return 2696;
			if (East == East::Side && North == North::Side && Power == 7 && South == South::Up && West == West::Up) return 2697;
			if (East == East::Side && North == North::Side && Power == 7 && South == South::Up && West == West::Side) return 2698;
			if (East == East::Side && North == North::Side && Power == 7 && South == South::Up && West == West::None) return 2699;
			if (East == East::Side && North == North::Side && Power == 7 && South == South::Side && West == West::Up) return 2700;
			if (East == East::Side && North == North::Side && Power == 7 && South == South::Side && West == West::Side) return 2701;
			if (East == East::Side && North == North::Side && Power == 7 && South == South::Side && West == West::None) return 2702;
			if (East == East::Side && North == North::Side && Power == 7 && South == South::None && West == West::Up) return 2703;
			if (East == East::Side && North == North::Side && Power == 7 && South == South::None && West == West::Side) return 2704;
			if (East == East::Side && North == North::Side && Power == 7 && South == South::None && West == West::None) return 2705;
			if (East == East::Side && North == North::Side && Power == 8 && South == South::Up && West == West::Up) return 2706;
			if (East == East::Side && North == North::Side && Power == 8 && South == South::Up && West == West::Side) return 2707;
			if (East == East::Side && North == North::Side && Power == 8 && South == South::Up && West == West::None) return 2708;
			if (East == East::Side && North == North::Side && Power == 8 && South == South::Side && West == West::Up) return 2709;
			if (East == East::Side && North == North::Side && Power == 8 && South == South::Side && West == West::Side) return 2710;
			if (East == East::Side && North == North::Side && Power == 8 && South == South::Side && West == West::None) return 2711;
			if (East == East::Side && North == North::Side && Power == 8 && South == South::None && West == West::Up) return 2712;
			if (East == East::Side && North == North::Side && Power == 8 && South == South::None && West == West::Side) return 2713;
			if (East == East::Side && North == North::Side && Power == 8 && South == South::None && West == West::None) return 2714;
			if (East == East::Side && North == North::Side && Power == 9 && South == South::Up && West == West::Up) return 2715;
			if (East == East::Side && North == North::Side && Power == 9 && South == South::Up && West == West::Side) return 2716;
			if (East == East::Side && North == North::Side && Power == 9 && South == South::Up && West == West::None) return 2717;
			if (East == East::Side && North == North::Side && Power == 9 && South == South::Side && West == West::Up) return 2718;
			if (East == East::Side && North == North::Side && Power == 9 && South == South::Side && West == West::Side) return 2719;
			if (East == East::Side && North == North::Side && Power == 9 && South == South::Side && West == West::None) return 2720;
			if (East == East::Side && North == North::Side && Power == 9 && South == South::None && West == West::Up) return 2721;
			if (East == East::Side && North == North::Side && Power == 9 && South == South::None && West == West::Side) return 2722;
			if (East == East::Side && North == North::Side && Power == 9 && South == South::None && West == West::None) return 2723;
			if (East == East::Side && North == North::Side && Power == 10 && South == South::Up && West == West::Up) return 2724;
			if (East == East::Side && North == North::Side && Power == 10 && South == South::Up && West == West::Side) return 2725;
			if (East == East::Side && North == North::Side && Power == 10 && South == South::Up && West == West::None) return 2726;
			if (East == East::Side && North == North::Side && Power == 10 && South == South::Side && West == West::Up) return 2727;
			if (East == East::Side && North == North::Side && Power == 10 && South == South::Side && West == West::Side) return 2728;
			if (East == East::Side && North == North::Side && Power == 10 && South == South::Side && West == West::None) return 2729;
			if (East == East::Side && North == North::Side && Power == 10 && South == South::None && West == West::Up) return 2730;
			if (East == East::Side && North == North::Side && Power == 10 && South == South::None && West == West::Side) return 2731;
			if (East == East::Side && North == North::Side && Power == 10 && South == South::None && West == West::None) return 2732;
			if (East == East::Side && North == North::Side && Power == 11 && South == South::Up && West == West::Up) return 2733;
			if (East == East::Side && North == North::Side && Power == 11 && South == South::Up && West == West::Side) return 2734;
			if (East == East::Side && North == North::Side && Power == 11 && South == South::Up && West == West::None) return 2735;
			if (East == East::Side && North == North::Side && Power == 11 && South == South::Side && West == West::Up) return 2736;
			if (East == East::Side && North == North::Side && Power == 11 && South == South::Side && West == West::Side) return 2737;
			if (East == East::Side && North == North::Side && Power == 11 && South == South::Side && West == West::None) return 2738;
			if (East == East::Side && North == North::Side && Power == 11 && South == South::None && West == West::Up) return 2739;
			if (East == East::Side && North == North::Side && Power == 11 && South == South::None && West == West::Side) return 2740;
			if (East == East::Side && North == North::Side && Power == 11 && South == South::None && West == West::None) return 2741;
			if (East == East::Side && North == North::Side && Power == 12 && South == South::Up && West == West::Up) return 2742;
			if (East == East::Side && North == North::Side && Power == 12 && South == South::Up && West == West::Side) return 2743;
			if (East == East::Side && North == North::Side && Power == 12 && South == South::Up && West == West::None) return 2744;
			if (East == East::Side && North == North::Side && Power == 12 && South == South::Side && West == West::Up) return 2745;
			if (East == East::Side && North == North::Side && Power == 12 && South == South::Side && West == West::Side) return 2746;
			if (East == East::Side && North == North::Side && Power == 12 && South == South::Side && West == West::None) return 2747;
			if (East == East::Side && North == North::Side && Power == 12 && South == South::None && West == West::Up) return 2748;
			if (East == East::Side && North == North::Side && Power == 12 && South == South::None && West == West::Side) return 2749;
			if (East == East::Side && North == North::Side && Power == 12 && South == South::None && West == West::None) return 2750;
			if (East == East::Side && North == North::Side && Power == 13 && South == South::Up && West == West::Up) return 2751;
			if (East == East::Side && North == North::Side && Power == 13 && South == South::Up && West == West::Side) return 2752;
			if (East == East::Side && North == North::Side && Power == 13 && South == South::Up && West == West::None) return 2753;
			if (East == East::Side && North == North::Side && Power == 13 && South == South::Side && West == West::Up) return 2754;
			if (East == East::Side && North == North::Side && Power == 13 && South == South::Side && West == West::Side) return 2755;
			if (East == East::Side && North == North::Side && Power == 13 && South == South::Side && West == West::None) return 2756;
			if (East == East::Side && North == North::Side && Power == 13 && South == South::None && West == West::Up) return 2757;
			if (East == East::Side && North == North::Side && Power == 13 && South == South::None && West == West::Side) return 2758;
			if (East == East::Side && North == North::Side && Power == 13 && South == South::None && West == West::None) return 2759;
			if (East == East::Side && North == North::Side && Power == 14 && South == South::Up && West == West::Up) return 2760;
			if (East == East::Side && North == North::Side && Power == 14 && South == South::Up && West == West::Side) return 2761;
			if (East == East::Side && North == North::Side && Power == 14 && South == South::Up && West == West::None) return 2762;
			if (East == East::Side && North == North::Side && Power == 14 && South == South::Side && West == West::Up) return 2763;
			if (East == East::Side && North == North::Side && Power == 14 && South == South::Side && West == West::Side) return 2764;
			if (East == East::Side && North == North::Side && Power == 14 && South == South::Side && West == West::None) return 2765;
			if (East == East::Side && North == North::Side && Power == 14 && South == South::None && West == West::Up) return 2766;
			if (East == East::Side && North == North::Side && Power == 14 && South == South::None && West == West::Side) return 2767;
			if (East == East::Side && North == North::Side && Power == 14 && South == South::None && West == West::None) return 2768;
			if (East == East::Side && North == North::Side && Power == 15 && South == South::Up && West == West::Up) return 2769;
			if (East == East::Side && North == North::Side && Power == 15 && South == South::Up && West == West::Side) return 2770;
			if (East == East::Side && North == North::Side && Power == 15 && South == South::Up && West == West::None) return 2771;
			if (East == East::Side && North == North::Side && Power == 15 && South == South::Side && West == West::Up) return 2772;
			if (East == East::Side && North == North::Side && Power == 15 && South == South::Side && West == West::Side) return 2773;
			if (East == East::Side && North == North::Side && Power == 15 && South == South::Side && West == West::None) return 2774;
			if (East == East::Side && North == North::Side && Power == 15 && South == South::None && West == West::Up) return 2775;
			if (East == East::Side && North == North::Side && Power == 15 && South == South::None && West == West::Side) return 2776;
			if (East == East::Side && North == North::Side && Power == 15 && South == South::None && West == West::None) return 2777;
			if (East == East::Side && North == North::None && Power == 0 && South == South::Up && West == West::Up) return 2778;
			if (East == East::Side && North == North::None && Power == 0 && South == South::Up && West == West::Side) return 2779;
			if (East == East::Side && North == North::None && Power == 0 && South == South::Up && West == West::None) return 2780;
			if (East == East::Side && North == North::None && Power == 0 && South == South::Side && West == West::Up) return 2781;
			if (East == East::Side && North == North::None && Power == 0 && South == South::Side && West == West::Side) return 2782;
			if (East == East::Side && North == North::None && Power == 0 && South == South::Side && West == West::None) return 2783;
			if (East == East::Side && North == North::None && Power == 0 && South == South::None && West == West::Up) return 2784;
			if (East == East::Side && North == North::None && Power == 0 && South == South::None && West == West::Side) return 2785;
			if (East == East::Side && North == North::None && Power == 0 && South == South::None && West == West::None) return 2786;
			if (East == East::Side && North == North::None && Power == 1 && South == South::Up && West == West::Up) return 2787;
			if (East == East::Side && North == North::None && Power == 1 && South == South::Up && West == West::Side) return 2788;
			if (East == East::Side && North == North::None && Power == 1 && South == South::Up && West == West::None) return 2789;
			if (East == East::Side && North == North::None && Power == 1 && South == South::Side && West == West::Up) return 2790;
			if (East == East::Side && North == North::None && Power == 1 && South == South::Side && West == West::Side) return 2791;
			if (East == East::Side && North == North::None && Power == 1 && South == South::Side && West == West::None) return 2792;
			if (East == East::Side && North == North::None && Power == 1 && South == South::None && West == West::Up) return 2793;
			if (East == East::Side && North == North::None && Power == 1 && South == South::None && West == West::Side) return 2794;
			if (East == East::Side && North == North::None && Power == 1 && South == South::None && West == West::None) return 2795;
			if (East == East::Side && North == North::None && Power == 2 && South == South::Up && West == West::Up) return 2796;
			if (East == East::Side && North == North::None && Power == 2 && South == South::Up && West == West::Side) return 2797;
			if (East == East::Side && North == North::None && Power == 2 && South == South::Up && West == West::None) return 2798;
			if (East == East::Side && North == North::None && Power == 2 && South == South::Side && West == West::Up) return 2799;
			if (East == East::Side && North == North::None && Power == 2 && South == South::Side && West == West::Side) return 2800;
			if (East == East::Side && North == North::None && Power == 2 && South == South::Side && West == West::None) return 2801;
			if (East == East::Side && North == North::None && Power == 2 && South == South::None && West == West::Up) return 2802;
			if (East == East::Side && North == North::None && Power == 2 && South == South::None && West == West::Side) return 2803;
			if (East == East::Side && North == North::None && Power == 2 && South == South::None && West == West::None) return 2804;
			if (East == East::Side && North == North::None && Power == 3 && South == South::Up && West == West::Up) return 2805;
			if (East == East::Side && North == North::None && Power == 3 && South == South::Up && West == West::Side) return 2806;
			if (East == East::Side && North == North::None && Power == 3 && South == South::Up && West == West::None) return 2807;
			if (East == East::Side && North == North::None && Power == 3 && South == South::Side && West == West::Up) return 2808;
			if (East == East::Side && North == North::None && Power == 3 && South == South::Side && West == West::Side) return 2809;
			if (East == East::Side && North == North::None && Power == 3 && South == South::Side && West == West::None) return 2810;
			if (East == East::Side && North == North::None && Power == 3 && South == South::None && West == West::Up) return 2811;
			if (East == East::Side && North == North::None && Power == 3 && South == South::None && West == West::Side) return 2812;
			if (East == East::Side && North == North::None && Power == 3 && South == South::None && West == West::None) return 2813;
			if (East == East::Side && North == North::None && Power == 4 && South == South::Up && West == West::Up) return 2814;
			if (East == East::Side && North == North::None && Power == 4 && South == South::Up && West == West::Side) return 2815;
			if (East == East::Side && North == North::None && Power == 4 && South == South::Up && West == West::None) return 2816;
			if (East == East::Side && North == North::None && Power == 4 && South == South::Side && West == West::Up) return 2817;
			if (East == East::Side && North == North::None && Power == 4 && South == South::Side && West == West::Side) return 2818;
			if (East == East::Side && North == North::None && Power == 4 && South == South::Side && West == West::None) return 2819;
			if (East == East::Side && North == North::None && Power == 4 && South == South::None && West == West::Up) return 2820;
			if (East == East::Side && North == North::None && Power == 4 && South == South::None && West == West::Side) return 2821;
			if (East == East::Side && North == North::None && Power == 4 && South == South::None && West == West::None) return 2822;
			if (East == East::Side && North == North::None && Power == 5 && South == South::Up && West == West::Up) return 2823;
			if (East == East::Side && North == North::None && Power == 5 && South == South::Up && West == West::Side) return 2824;
			if (East == East::Side && North == North::None && Power == 5 && South == South::Up && West == West::None) return 2825;
			if (East == East::Side && North == North::None && Power == 5 && South == South::Side && West == West::Up) return 2826;
			if (East == East::Side && North == North::None && Power == 5 && South == South::Side && West == West::Side) return 2827;
			if (East == East::Side && North == North::None && Power == 5 && South == South::Side && West == West::None) return 2828;
			if (East == East::Side && North == North::None && Power == 5 && South == South::None && West == West::Up) return 2829;
			if (East == East::Side && North == North::None && Power == 5 && South == South::None && West == West::Side) return 2830;
			if (East == East::Side && North == North::None && Power == 5 && South == South::None && West == West::None) return 2831;
			if (East == East::Side && North == North::None && Power == 6 && South == South::Up && West == West::Up) return 2832;
			if (East == East::Side && North == North::None && Power == 6 && South == South::Up && West == West::Side) return 2833;
			if (East == East::Side && North == North::None && Power == 6 && South == South::Up && West == West::None) return 2834;
			if (East == East::Side && North == North::None && Power == 6 && South == South::Side && West == West::Up) return 2835;
			if (East == East::Side && North == North::None && Power == 6 && South == South::Side && West == West::Side) return 2836;
			if (East == East::Side && North == North::None && Power == 6 && South == South::Side && West == West::None) return 2837;
			if (East == East::Side && North == North::None && Power == 6 && South == South::None && West == West::Up) return 2838;
			if (East == East::Side && North == North::None && Power == 6 && South == South::None && West == West::Side) return 2839;
			if (East == East::Side && North == North::None && Power == 6 && South == South::None && West == West::None) return 2840;
			if (East == East::Side && North == North::None && Power == 7 && South == South::Up && West == West::Up) return 2841;
			if (East == East::Side && North == North::None && Power == 7 && South == South::Up && West == West::Side) return 2842;
			if (East == East::Side && North == North::None && Power == 7 && South == South::Up && West == West::None) return 2843;
			if (East == East::Side && North == North::None && Power == 7 && South == South::Side && West == West::Up) return 2844;
			if (East == East::Side && North == North::None && Power == 7 && South == South::Side && West == West::Side) return 2845;
			if (East == East::Side && North == North::None && Power == 7 && South == South::Side && West == West::None) return 2846;
			if (East == East::Side && North == North::None && Power == 7 && South == South::None && West == West::Up) return 2847;
			if (East == East::Side && North == North::None && Power == 7 && South == South::None && West == West::Side) return 2848;
			if (East == East::Side && North == North::None && Power == 7 && South == South::None && West == West::None) return 2849;
			if (East == East::Side && North == North::None && Power == 8 && South == South::Up && West == West::Up) return 2850;
			if (East == East::Side && North == North::None && Power == 8 && South == South::Up && West == West::Side) return 2851;
			if (East == East::Side && North == North::None && Power == 8 && South == South::Up && West == West::None) return 2852;
			if (East == East::Side && North == North::None && Power == 8 && South == South::Side && West == West::Up) return 2853;
			if (East == East::Side && North == North::None && Power == 8 && South == South::Side && West == West::Side) return 2854;
			if (East == East::Side && North == North::None && Power == 8 && South == South::Side && West == West::None) return 2855;
			if (East == East::Side && North == North::None && Power == 8 && South == South::None && West == West::Up) return 2856;
			if (East == East::Side && North == North::None && Power == 8 && South == South::None && West == West::Side) return 2857;
			if (East == East::Side && North == North::None && Power == 8 && South == South::None && West == West::None) return 2858;
			if (East == East::Side && North == North::None && Power == 9 && South == South::Up && West == West::Up) return 2859;
			if (East == East::Side && North == North::None && Power == 9 && South == South::Up && West == West::Side) return 2860;
			if (East == East::Side && North == North::None && Power == 9 && South == South::Up && West == West::None) return 2861;
			if (East == East::Side && North == North::None && Power == 9 && South == South::Side && West == West::Up) return 2862;
			if (East == East::Side && North == North::None && Power == 9 && South == South::Side && West == West::Side) return 2863;
			if (East == East::Side && North == North::None && Power == 9 && South == South::Side && West == West::None) return 2864;
			if (East == East::Side && North == North::None && Power == 9 && South == South::None && West == West::Up) return 2865;
			if (East == East::Side && North == North::None && Power == 9 && South == South::None && West == West::Side) return 2866;
			if (East == East::Side && North == North::None && Power == 9 && South == South::None && West == West::None) return 2867;
			if (East == East::Side && North == North::None && Power == 10 && South == South::Up && West == West::Up) return 2868;
			if (East == East::Side && North == North::None && Power == 10 && South == South::Up && West == West::Side) return 2869;
			if (East == East::Side && North == North::None && Power == 10 && South == South::Up && West == West::None) return 2870;
			if (East == East::Side && North == North::None && Power == 10 && South == South::Side && West == West::Up) return 2871;
			if (East == East::Side && North == North::None && Power == 10 && South == South::Side && West == West::Side) return 2872;
			if (East == East::Side && North == North::None && Power == 10 && South == South::Side && West == West::None) return 2873;
			if (East == East::Side && North == North::None && Power == 10 && South == South::None && West == West::Up) return 2874;
			if (East == East::Side && North == North::None && Power == 10 && South == South::None && West == West::Side) return 2875;
			if (East == East::Side && North == North::None && Power == 10 && South == South::None && West == West::None) return 2876;
			if (East == East::Side && North == North::None && Power == 11 && South == South::Up && West == West::Up) return 2877;
			if (East == East::Side && North == North::None && Power == 11 && South == South::Up && West == West::Side) return 2878;
			if (East == East::Side && North == North::None && Power == 11 && South == South::Up && West == West::None) return 2879;
			if (East == East::Side && North == North::None && Power == 11 && South == South::Side && West == West::Up) return 2880;
			if (East == East::Side && North == North::None && Power == 11 && South == South::Side && West == West::Side) return 2881;
			if (East == East::Side && North == North::None && Power == 11 && South == South::Side && West == West::None) return 2882;
			if (East == East::Side && North == North::None && Power == 11 && South == South::None && West == West::Up) return 2883;
			if (East == East::Side && North == North::None && Power == 11 && South == South::None && West == West::Side) return 2884;
			if (East == East::Side && North == North::None && Power == 11 && South == South::None && West == West::None) return 2885;
			if (East == East::Side && North == North::None && Power == 12 && South == South::Up && West == West::Up) return 2886;
			if (East == East::Side && North == North::None && Power == 12 && South == South::Up && West == West::Side) return 2887;
			if (East == East::Side && North == North::None && Power == 12 && South == South::Up && West == West::None) return 2888;
			if (East == East::Side && North == North::None && Power == 12 && South == South::Side && West == West::Up) return 2889;
			if (East == East::Side && North == North::None && Power == 12 && South == South::Side && West == West::Side) return 2890;
			if (East == East::Side && North == North::None && Power == 12 && South == South::Side && West == West::None) return 2891;
			if (East == East::Side && North == North::None && Power == 12 && South == South::None && West == West::Up) return 2892;
			if (East == East::Side && North == North::None && Power == 12 && South == South::None && West == West::Side) return 2893;
			if (East == East::Side && North == North::None && Power == 12 && South == South::None && West == West::None) return 2894;
			if (East == East::Side && North == North::None && Power == 13 && South == South::Up && West == West::Up) return 2895;
			if (East == East::Side && North == North::None && Power == 13 && South == South::Up && West == West::Side) return 2896;
			if (East == East::Side && North == North::None && Power == 13 && South == South::Up && West == West::None) return 2897;
			if (East == East::Side && North == North::None && Power == 13 && South == South::Side && West == West::Up) return 2898;
			if (East == East::Side && North == North::None && Power == 13 && South == South::Side && West == West::Side) return 2899;
			if (East == East::Side && North == North::None && Power == 13 && South == South::Side && West == West::None) return 2900;
			if (East == East::Side && North == North::None && Power == 13 && South == South::None && West == West::Up) return 2901;
			if (East == East::Side && North == North::None && Power == 13 && South == South::None && West == West::Side) return 2902;
			if (East == East::Side && North == North::None && Power == 13 && South == South::None && West == West::None) return 2903;
			if (East == East::Side && North == North::None && Power == 14 && South == South::Up && West == West::Up) return 2904;
			if (East == East::Side && North == North::None && Power == 14 && South == South::Up && West == West::Side) return 2905;
			if (East == East::Side && North == North::None && Power == 14 && South == South::Up && West == West::None) return 2906;
			if (East == East::Side && North == North::None && Power == 14 && South == South::Side && West == West::Up) return 2907;
			if (East == East::Side && North == North::None && Power == 14 && South == South::Side && West == West::Side) return 2908;
			if (East == East::Side && North == North::None && Power == 14 && South == South::Side && West == West::None) return 2909;
			if (East == East::Side && North == North::None && Power == 14 && South == South::None && West == West::Up) return 2910;
			if (East == East::Side && North == North::None && Power == 14 && South == South::None && West == West::Side) return 2911;
			if (East == East::Side && North == North::None && Power == 14 && South == South::None && West == West::None) return 2912;
			if (East == East::Side && North == North::None && Power == 15 && South == South::Up && West == West::Up) return 2913;
			if (East == East::Side && North == North::None && Power == 15 && South == South::Up && West == West::Side) return 2914;
			if (East == East::Side && North == North::None && Power == 15 && South == South::Up && West == West::None) return 2915;
			if (East == East::Side && North == North::None && Power == 15 && South == South::Side && West == West::Up) return 2916;
			if (East == East::Side && North == North::None && Power == 15 && South == South::Side && West == West::Side) return 2917;
			if (East == East::Side && North == North::None && Power == 15 && South == South::Side && West == West::None) return 2918;
			if (East == East::Side && North == North::None && Power == 15 && South == South::None && West == West::Up) return 2919;
			if (East == East::Side && North == North::None && Power == 15 && South == South::None && West == West::Side) return 2920;
			if (East == East::Side && North == North::None && Power == 15 && South == South::None && West == West::None) return 2921;
			if (East == East::None && North == North::Up && Power == 0 && South == South::Up && West == West::Up) return 2922;
			if (East == East::None && North == North::Up && Power == 0 && South == South::Up && West == West::Side) return 2923;
			if (East == East::None && North == North::Up && Power == 0 && South == South::Up && West == West::None) return 2924;
			if (East == East::None && North == North::Up && Power == 0 && South == South::Side && West == West::Up) return 2925;
			if (East == East::None && North == North::Up && Power == 0 && South == South::Side && West == West::Side) return 2926;
			if (East == East::None && North == North::Up && Power == 0 && South == South::Side && West == West::None) return 2927;
			if (East == East::None && North == North::Up && Power == 0 && South == South::None && West == West::Up) return 2928;
			if (East == East::None && North == North::Up && Power == 0 && South == South::None && West == West::Side) return 2929;
			if (East == East::None && North == North::Up && Power == 0 && South == South::None && West == West::None) return 2930;
			if (East == East::None && North == North::Up && Power == 1 && South == South::Up && West == West::Up) return 2931;
			if (East == East::None && North == North::Up && Power == 1 && South == South::Up && West == West::Side) return 2932;
			if (East == East::None && North == North::Up && Power == 1 && South == South::Up && West == West::None) return 2933;
			if (East == East::None && North == North::Up && Power == 1 && South == South::Side && West == West::Up) return 2934;
			if (East == East::None && North == North::Up && Power == 1 && South == South::Side && West == West::Side) return 2935;
			if (East == East::None && North == North::Up && Power == 1 && South == South::Side && West == West::None) return 2936;
			if (East == East::None && North == North::Up && Power == 1 && South == South::None && West == West::Up) return 2937;
			if (East == East::None && North == North::Up && Power == 1 && South == South::None && West == West::Side) return 2938;
			if (East == East::None && North == North::Up && Power == 1 && South == South::None && West == West::None) return 2939;
			if (East == East::None && North == North::Up && Power == 2 && South == South::Up && West == West::Up) return 2940;
			if (East == East::None && North == North::Up && Power == 2 && South == South::Up && West == West::Side) return 2941;
			if (East == East::None && North == North::Up && Power == 2 && South == South::Up && West == West::None) return 2942;
			if (East == East::None && North == North::Up && Power == 2 && South == South::Side && West == West::Up) return 2943;
			if (East == East::None && North == North::Up && Power == 2 && South == South::Side && West == West::Side) return 2944;
			if (East == East::None && North == North::Up && Power == 2 && South == South::Side && West == West::None) return 2945;
			if (East == East::None && North == North::Up && Power == 2 && South == South::None && West == West::Up) return 2946;
			if (East == East::None && North == North::Up && Power == 2 && South == South::None && West == West::Side) return 2947;
			if (East == East::None && North == North::Up && Power == 2 && South == South::None && West == West::None) return 2948;
			if (East == East::None && North == North::Up && Power == 3 && South == South::Up && West == West::Up) return 2949;
			if (East == East::None && North == North::Up && Power == 3 && South == South::Up && West == West::Side) return 2950;
			if (East == East::None && North == North::Up && Power == 3 && South == South::Up && West == West::None) return 2951;
			if (East == East::None && North == North::Up && Power == 3 && South == South::Side && West == West::Up) return 2952;
			if (East == East::None && North == North::Up && Power == 3 && South == South::Side && West == West::Side) return 2953;
			if (East == East::None && North == North::Up && Power == 3 && South == South::Side && West == West::None) return 2954;
			if (East == East::None && North == North::Up && Power == 3 && South == South::None && West == West::Up) return 2955;
			if (East == East::None && North == North::Up && Power == 3 && South == South::None && West == West::Side) return 2956;
			if (East == East::None && North == North::Up && Power == 3 && South == South::None && West == West::None) return 2957;
			if (East == East::None && North == North::Up && Power == 4 && South == South::Up && West == West::Up) return 2958;
			if (East == East::None && North == North::Up && Power == 4 && South == South::Up && West == West::Side) return 2959;
			if (East == East::None && North == North::Up && Power == 4 && South == South::Up && West == West::None) return 2960;
			if (East == East::None && North == North::Up && Power == 4 && South == South::Side && West == West::Up) return 2961;
			if (East == East::None && North == North::Up && Power == 4 && South == South::Side && West == West::Side) return 2962;
			if (East == East::None && North == North::Up && Power == 4 && South == South::Side && West == West::None) return 2963;
			if (East == East::None && North == North::Up && Power == 4 && South == South::None && West == West::Up) return 2964;
			if (East == East::None && North == North::Up && Power == 4 && South == South::None && West == West::Side) return 2965;
			if (East == East::None && North == North::Up && Power == 4 && South == South::None && West == West::None) return 2966;
			if (East == East::None && North == North::Up && Power == 5 && South == South::Up && West == West::Up) return 2967;
			if (East == East::None && North == North::Up && Power == 5 && South == South::Up && West == West::Side) return 2968;
			if (East == East::None && North == North::Up && Power == 5 && South == South::Up && West == West::None) return 2969;
			if (East == East::None && North == North::Up && Power == 5 && South == South::Side && West == West::Up) return 2970;
			if (East == East::None && North == North::Up && Power == 5 && South == South::Side && West == West::Side) return 2971;
			if (East == East::None && North == North::Up && Power == 5 && South == South::Side && West == West::None) return 2972;
			if (East == East::None && North == North::Up && Power == 5 && South == South::None && West == West::Up) return 2973;
			if (East == East::None && North == North::Up && Power == 5 && South == South::None && West == West::Side) return 2974;
			if (East == East::None && North == North::Up && Power == 5 && South == South::None && West == West::None) return 2975;
			if (East == East::None && North == North::Up && Power == 6 && South == South::Up && West == West::Up) return 2976;
			if (East == East::None && North == North::Up && Power == 6 && South == South::Up && West == West::Side) return 2977;
			if (East == East::None && North == North::Up && Power == 6 && South == South::Up && West == West::None) return 2978;
			if (East == East::None && North == North::Up && Power == 6 && South == South::Side && West == West::Up) return 2979;
			if (East == East::None && North == North::Up && Power == 6 && South == South::Side && West == West::Side) return 2980;
			if (East == East::None && North == North::Up && Power == 6 && South == South::Side && West == West::None) return 2981;
			if (East == East::None && North == North::Up && Power == 6 && South == South::None && West == West::Up) return 2982;
			if (East == East::None && North == North::Up && Power == 6 && South == South::None && West == West::Side) return 2983;
			if (East == East::None && North == North::Up && Power == 6 && South == South::None && West == West::None) return 2984;
			if (East == East::None && North == North::Up && Power == 7 && South == South::Up && West == West::Up) return 2985;
			if (East == East::None && North == North::Up && Power == 7 && South == South::Up && West == West::Side) return 2986;
			if (East == East::None && North == North::Up && Power == 7 && South == South::Up && West == West::None) return 2987;
			if (East == East::None && North == North::Up && Power == 7 && South == South::Side && West == West::Up) return 2988;
			if (East == East::None && North == North::Up && Power == 7 && South == South::Side && West == West::Side) return 2989;
			if (East == East::None && North == North::Up && Power == 7 && South == South::Side && West == West::None) return 2990;
			if (East == East::None && North == North::Up && Power == 7 && South == South::None && West == West::Up) return 2991;
			if (East == East::None && North == North::Up && Power == 7 && South == South::None && West == West::Side) return 2992;
			if (East == East::None && North == North::Up && Power == 7 && South == South::None && West == West::None) return 2993;
			if (East == East::None && North == North::Up && Power == 8 && South == South::Up && West == West::Up) return 2994;
			if (East == East::None && North == North::Up && Power == 8 && South == South::Up && West == West::Side) return 2995;
			if (East == East::None && North == North::Up && Power == 8 && South == South::Up && West == West::None) return 2996;
			if (East == East::None && North == North::Up && Power == 8 && South == South::Side && West == West::Up) return 2997;
			if (East == East::None && North == North::Up && Power == 8 && South == South::Side && West == West::Side) return 2998;
			if (East == East::None && North == North::Up && Power == 8 && South == South::Side && West == West::None) return 2999;
			if (East == East::None && North == North::Up && Power == 8 && South == South::None && West == West::Up) return 3000;
			if (East == East::None && North == North::Up && Power == 8 && South == South::None && West == West::Side) return 3001;
			if (East == East::None && North == North::Up && Power == 8 && South == South::None && West == West::None) return 3002;
			if (East == East::None && North == North::Up && Power == 9 && South == South::Up && West == West::Up) return 3003;
			if (East == East::None && North == North::Up && Power == 9 && South == South::Up && West == West::Side) return 3004;
			if (East == East::None && North == North::Up && Power == 9 && South == South::Up && West == West::None) return 3005;
			if (East == East::None && North == North::Up && Power == 9 && South == South::Side && West == West::Up) return 3006;
			if (East == East::None && North == North::Up && Power == 9 && South == South::Side && West == West::Side) return 3007;
			if (East == East::None && North == North::Up && Power == 9 && South == South::Side && West == West::None) return 3008;
			if (East == East::None && North == North::Up && Power == 9 && South == South::None && West == West::Up) return 3009;
			if (East == East::None && North == North::Up && Power == 9 && South == South::None && West == West::Side) return 3010;
			if (East == East::None && North == North::Up && Power == 9 && South == South::None && West == West::None) return 3011;
			if (East == East::None && North == North::Up && Power == 10 && South == South::Up && West == West::Up) return 3012;
			if (East == East::None && North == North::Up && Power == 10 && South == South::Up && West == West::Side) return 3013;
			if (East == East::None && North == North::Up && Power == 10 && South == South::Up && West == West::None) return 3014;
			if (East == East::None && North == North::Up && Power == 10 && South == South::Side && West == West::Up) return 3015;
			if (East == East::None && North == North::Up && Power == 10 && South == South::Side && West == West::Side) return 3016;
			if (East == East::None && North == North::Up && Power == 10 && South == South::Side && West == West::None) return 3017;
			if (East == East::None && North == North::Up && Power == 10 && South == South::None && West == West::Up) return 3018;
			if (East == East::None && North == North::Up && Power == 10 && South == South::None && West == West::Side) return 3019;
			if (East == East::None && North == North::Up && Power == 10 && South == South::None && West == West::None) return 3020;
			if (East == East::None && North == North::Up && Power == 11 && South == South::Up && West == West::Up) return 3021;
			if (East == East::None && North == North::Up && Power == 11 && South == South::Up && West == West::Side) return 3022;
			if (East == East::None && North == North::Up && Power == 11 && South == South::Up && West == West::None) return 3023;
			if (East == East::None && North == North::Up && Power == 11 && South == South::Side && West == West::Up) return 3024;
			if (East == East::None && North == North::Up && Power == 11 && South == South::Side && West == West::Side) return 3025;
			if (East == East::None && North == North::Up && Power == 11 && South == South::Side && West == West::None) return 3026;
			if (East == East::None && North == North::Up && Power == 11 && South == South::None && West == West::Up) return 3027;
			if (East == East::None && North == North::Up && Power == 11 && South == South::None && West == West::Side) return 3028;
			if (East == East::None && North == North::Up && Power == 11 && South == South::None && West == West::None) return 3029;
			if (East == East::None && North == North::Up && Power == 12 && South == South::Up && West == West::Up) return 3030;
			if (East == East::None && North == North::Up && Power == 12 && South == South::Up && West == West::Side) return 3031;
			if (East == East::None && North == North::Up && Power == 12 && South == South::Up && West == West::None) return 3032;
			if (East == East::None && North == North::Up && Power == 12 && South == South::Side && West == West::Up) return 3033;
			if (East == East::None && North == North::Up && Power == 12 && South == South::Side && West == West::Side) return 3034;
			if (East == East::None && North == North::Up && Power == 12 && South == South::Side && West == West::None) return 3035;
			if (East == East::None && North == North::Up && Power == 12 && South == South::None && West == West::Up) return 3036;
			if (East == East::None && North == North::Up && Power == 12 && South == South::None && West == West::Side) return 3037;
			if (East == East::None && North == North::Up && Power == 12 && South == South::None && West == West::None) return 3038;
			if (East == East::None && North == North::Up && Power == 13 && South == South::Up && West == West::Up) return 3039;
			if (East == East::None && North == North::Up && Power == 13 && South == South::Up && West == West::Side) return 3040;
			if (East == East::None && North == North::Up && Power == 13 && South == South::Up && West == West::None) return 3041;
			if (East == East::None && North == North::Up && Power == 13 && South == South::Side && West == West::Up) return 3042;
			if (East == East::None && North == North::Up && Power == 13 && South == South::Side && West == West::Side) return 3043;
			if (East == East::None && North == North::Up && Power == 13 && South == South::Side && West == West::None) return 3044;
			if (East == East::None && North == North::Up && Power == 13 && South == South::None && West == West::Up) return 3045;
			if (East == East::None && North == North::Up && Power == 13 && South == South::None && West == West::Side) return 3046;
			if (East == East::None && North == North::Up && Power == 13 && South == South::None && West == West::None) return 3047;
			if (East == East::None && North == North::Up && Power == 14 && South == South::Up && West == West::Up) return 3048;
			if (East == East::None && North == North::Up && Power == 14 && South == South::Up && West == West::Side) return 3049;
			if (East == East::None && North == North::Up && Power == 14 && South == South::Up && West == West::None) return 3050;
			if (East == East::None && North == North::Up && Power == 14 && South == South::Side && West == West::Up) return 3051;
			if (East == East::None && North == North::Up && Power == 14 && South == South::Side && West == West::Side) return 3052;
			if (East == East::None && North == North::Up && Power == 14 && South == South::Side && West == West::None) return 3053;
			if (East == East::None && North == North::Up && Power == 14 && South == South::None && West == West::Up) return 3054;
			if (East == East::None && North == North::Up && Power == 14 && South == South::None && West == West::Side) return 3055;
			if (East == East::None && North == North::Up && Power == 14 && South == South::None && West == West::None) return 3056;
			if (East == East::None && North == North::Up && Power == 15 && South == South::Up && West == West::Up) return 3057;
			if (East == East::None && North == North::Up && Power == 15 && South == South::Up && West == West::Side) return 3058;
			if (East == East::None && North == North::Up && Power == 15 && South == South::Up && West == West::None) return 3059;
			if (East == East::None && North == North::Up && Power == 15 && South == South::Side && West == West::Up) return 3060;
			if (East == East::None && North == North::Up && Power == 15 && South == South::Side && West == West::Side) return 3061;
			if (East == East::None && North == North::Up && Power == 15 && South == South::Side && West == West::None) return 3062;
			if (East == East::None && North == North::Up && Power == 15 && South == South::None && West == West::Up) return 3063;
			if (East == East::None && North == North::Up && Power == 15 && South == South::None && West == West::Side) return 3064;
			if (East == East::None && North == North::Up && Power == 15 && South == South::None && West == West::None) return 3065;
			if (East == East::None && North == North::Side && Power == 0 && South == South::Up && West == West::Up) return 3066;
			if (East == East::None && North == North::Side && Power == 0 && South == South::Up && West == West::Side) return 3067;
			if (East == East::None && North == North::Side && Power == 0 && South == South::Up && West == West::None) return 3068;
			if (East == East::None && North == North::Side && Power == 0 && South == South::Side && West == West::Up) return 3069;
			if (East == East::None && North == North::Side && Power == 0 && South == South::Side && West == West::Side) return 3070;
			if (East == East::None && North == North::Side && Power == 0 && South == South::Side && West == West::None) return 3071;
			if (East == East::None && North == North::Side && Power == 0 && South == South::None && West == West::Up) return 3072;
			if (East == East::None && North == North::Side && Power == 0 && South == South::None && West == West::Side) return 3073;
			if (East == East::None && North == North::Side && Power == 0 && South == South::None && West == West::None) return 3074;
			if (East == East::None && North == North::Side && Power == 1 && South == South::Up && West == West::Up) return 3075;
			if (East == East::None && North == North::Side && Power == 1 && South == South::Up && West == West::Side) return 3076;
			if (East == East::None && North == North::Side && Power == 1 && South == South::Up && West == West::None) return 3077;
			if (East == East::None && North == North::Side && Power == 1 && South == South::Side && West == West::Up) return 3078;
			if (East == East::None && North == North::Side && Power == 1 && South == South::Side && West == West::Side) return 3079;
			if (East == East::None && North == North::Side && Power == 1 && South == South::Side && West == West::None) return 3080;
			if (East == East::None && North == North::Side && Power == 1 && South == South::None && West == West::Up) return 3081;
			if (East == East::None && North == North::Side && Power == 1 && South == South::None && West == West::Side) return 3082;
			if (East == East::None && North == North::Side && Power == 1 && South == South::None && West == West::None) return 3083;
			if (East == East::None && North == North::Side && Power == 2 && South == South::Up && West == West::Up) return 3084;
			if (East == East::None && North == North::Side && Power == 2 && South == South::Up && West == West::Side) return 3085;
			if (East == East::None && North == North::Side && Power == 2 && South == South::Up && West == West::None) return 3086;
			if (East == East::None && North == North::Side && Power == 2 && South == South::Side && West == West::Up) return 3087;
			if (East == East::None && North == North::Side && Power == 2 && South == South::Side && West == West::Side) return 3088;
			if (East == East::None && North == North::Side && Power == 2 && South == South::Side && West == West::None) return 3089;
			if (East == East::None && North == North::Side && Power == 2 && South == South::None && West == West::Up) return 3090;
			if (East == East::None && North == North::Side && Power == 2 && South == South::None && West == West::Side) return 3091;
			if (East == East::None && North == North::Side && Power == 2 && South == South::None && West == West::None) return 3092;
			if (East == East::None && North == North::Side && Power == 3 && South == South::Up && West == West::Up) return 3093;
			if (East == East::None && North == North::Side && Power == 3 && South == South::Up && West == West::Side) return 3094;
			if (East == East::None && North == North::Side && Power == 3 && South == South::Up && West == West::None) return 3095;
			if (East == East::None && North == North::Side && Power == 3 && South == South::Side && West == West::Up) return 3096;
			if (East == East::None && North == North::Side && Power == 3 && South == South::Side && West == West::Side) return 3097;
			if (East == East::None && North == North::Side && Power == 3 && South == South::Side && West == West::None) return 3098;
			if (East == East::None && North == North::Side && Power == 3 && South == South::None && West == West::Up) return 3099;
			if (East == East::None && North == North::Side && Power == 3 && South == South::None && West == West::Side) return 3100;
			if (East == East::None && North == North::Side && Power == 3 && South == South::None && West == West::None) return 3101;
			if (East == East::None && North == North::Side && Power == 4 && South == South::Up && West == West::Up) return 3102;
			if (East == East::None && North == North::Side && Power == 4 && South == South::Up && West == West::Side) return 3103;
			if (East == East::None && North == North::Side && Power == 4 && South == South::Up && West == West::None) return 3104;
			if (East == East::None && North == North::Side && Power == 4 && South == South::Side && West == West::Up) return 3105;
			if (East == East::None && North == North::Side && Power == 4 && South == South::Side && West == West::Side) return 3106;
			if (East == East::None && North == North::Side && Power == 4 && South == South::Side && West == West::None) return 3107;
			if (East == East::None && North == North::Side && Power == 4 && South == South::None && West == West::Up) return 3108;
			if (East == East::None && North == North::Side && Power == 4 && South == South::None && West == West::Side) return 3109;
			if (East == East::None && North == North::Side && Power == 4 && South == South::None && West == West::None) return 3110;
			if (East == East::None && North == North::Side && Power == 5 && South == South::Up && West == West::Up) return 3111;
			if (East == East::None && North == North::Side && Power == 5 && South == South::Up && West == West::Side) return 3112;
			if (East == East::None && North == North::Side && Power == 5 && South == South::Up && West == West::None) return 3113;
			if (East == East::None && North == North::Side && Power == 5 && South == South::Side && West == West::Up) return 3114;
			if (East == East::None && North == North::Side && Power == 5 && South == South::Side && West == West::Side) return 3115;
			if (East == East::None && North == North::Side && Power == 5 && South == South::Side && West == West::None) return 3116;
			if (East == East::None && North == North::Side && Power == 5 && South == South::None && West == West::Up) return 3117;
			if (East == East::None && North == North::Side && Power == 5 && South == South::None && West == West::Side) return 3118;
			if (East == East::None && North == North::Side && Power == 5 && South == South::None && West == West::None) return 3119;
			if (East == East::None && North == North::Side && Power == 6 && South == South::Up && West == West::Up) return 3120;
			if (East == East::None && North == North::Side && Power == 6 && South == South::Up && West == West::Side) return 3121;
			if (East == East::None && North == North::Side && Power == 6 && South == South::Up && West == West::None) return 3122;
			if (East == East::None && North == North::Side && Power == 6 && South == South::Side && West == West::Up) return 3123;
			if (East == East::None && North == North::Side && Power == 6 && South == South::Side && West == West::Side) return 3124;
			if (East == East::None && North == North::Side && Power == 6 && South == South::Side && West == West::None) return 3125;
			if (East == East::None && North == North::Side && Power == 6 && South == South::None && West == West::Up) return 3126;
			if (East == East::None && North == North::Side && Power == 6 && South == South::None && West == West::Side) return 3127;
			if (East == East::None && North == North::Side && Power == 6 && South == South::None && West == West::None) return 3128;
			if (East == East::None && North == North::Side && Power == 7 && South == South::Up && West == West::Up) return 3129;
			if (East == East::None && North == North::Side && Power == 7 && South == South::Up && West == West::Side) return 3130;
			if (East == East::None && North == North::Side && Power == 7 && South == South::Up && West == West::None) return 3131;
			if (East == East::None && North == North::Side && Power == 7 && South == South::Side && West == West::Up) return 3132;
			if (East == East::None && North == North::Side && Power == 7 && South == South::Side && West == West::Side) return 3133;
			if (East == East::None && North == North::Side && Power == 7 && South == South::Side && West == West::None) return 3134;
			if (East == East::None && North == North::Side && Power == 7 && South == South::None && West == West::Up) return 3135;
			if (East == East::None && North == North::Side && Power == 7 && South == South::None && West == West::Side) return 3136;
			if (East == East::None && North == North::Side && Power == 7 && South == South::None && West == West::None) return 3137;
			if (East == East::None && North == North::Side && Power == 8 && South == South::Up && West == West::Up) return 3138;
			if (East == East::None && North == North::Side && Power == 8 && South == South::Up && West == West::Side) return 3139;
			if (East == East::None && North == North::Side && Power == 8 && South == South::Up && West == West::None) return 3140;
			if (East == East::None && North == North::Side && Power == 8 && South == South::Side && West == West::Up) return 3141;
			if (East == East::None && North == North::Side && Power == 8 && South == South::Side && West == West::Side) return 3142;
			if (East == East::None && North == North::Side && Power == 8 && South == South::Side && West == West::None) return 3143;
			if (East == East::None && North == North::Side && Power == 8 && South == South::None && West == West::Up) return 3144;
			if (East == East::None && North == North::Side && Power == 8 && South == South::None && West == West::Side) return 3145;
			if (East == East::None && North == North::Side && Power == 8 && South == South::None && West == West::None) return 3146;
			if (East == East::None && North == North::Side && Power == 9 && South == South::Up && West == West::Up) return 3147;
			if (East == East::None && North == North::Side && Power == 9 && South == South::Up && West == West::Side) return 3148;
			if (East == East::None && North == North::Side && Power == 9 && South == South::Up && West == West::None) return 3149;
			if (East == East::None && North == North::Side && Power == 9 && South == South::Side && West == West::Up) return 3150;
			if (East == East::None && North == North::Side && Power == 9 && South == South::Side && West == West::Side) return 3151;
			if (East == East::None && North == North::Side && Power == 9 && South == South::Side && West == West::None) return 3152;
			if (East == East::None && North == North::Side && Power == 9 && South == South::None && West == West::Up) return 3153;
			if (East == East::None && North == North::Side && Power == 9 && South == South::None && West == West::Side) return 3154;
			if (East == East::None && North == North::Side && Power == 9 && South == South::None && West == West::None) return 3155;
			if (East == East::None && North == North::Side && Power == 10 && South == South::Up && West == West::Up) return 3156;
			if (East == East::None && North == North::Side && Power == 10 && South == South::Up && West == West::Side) return 3157;
			if (East == East::None && North == North::Side && Power == 10 && South == South::Up && West == West::None) return 3158;
			if (East == East::None && North == North::Side && Power == 10 && South == South::Side && West == West::Up) return 3159;
			if (East == East::None && North == North::Side && Power == 10 && South == South::Side && West == West::Side) return 3160;
			if (East == East::None && North == North::Side && Power == 10 && South == South::Side && West == West::None) return 3161;
			if (East == East::None && North == North::Side && Power == 10 && South == South::None && West == West::Up) return 3162;
			if (East == East::None && North == North::Side && Power == 10 && South == South::None && West == West::Side) return 3163;
			if (East == East::None && North == North::Side && Power == 10 && South == South::None && West == West::None) return 3164;
			if (East == East::None && North == North::Side && Power == 11 && South == South::Up && West == West::Up) return 3165;
			if (East == East::None && North == North::Side && Power == 11 && South == South::Up && West == West::Side) return 3166;
			if (East == East::None && North == North::Side && Power == 11 && South == South::Up && West == West::None) return 3167;
			if (East == East::None && North == North::Side && Power == 11 && South == South::Side && West == West::Up) return 3168;
			if (East == East::None && North == North::Side && Power == 11 && South == South::Side && West == West::Side) return 3169;
			if (East == East::None && North == North::Side && Power == 11 && South == South::Side && West == West::None) return 3170;
			if (East == East::None && North == North::Side && Power == 11 && South == South::None && West == West::Up) return 3171;
			if (East == East::None && North == North::Side && Power == 11 && South == South::None && West == West::Side) return 3172;
			if (East == East::None && North == North::Side && Power == 11 && South == South::None && West == West::None) return 3173;
			if (East == East::None && North == North::Side && Power == 12 && South == South::Up && West == West::Up) return 3174;
			if (East == East::None && North == North::Side && Power == 12 && South == South::Up && West == West::Side) return 3175;
			if (East == East::None && North == North::Side && Power == 12 && South == South::Up && West == West::None) return 3176;
			if (East == East::None && North == North::Side && Power == 12 && South == South::Side && West == West::Up) return 3177;
			if (East == East::None && North == North::Side && Power == 12 && South == South::Side && West == West::Side) return 3178;
			if (East == East::None && North == North::Side && Power == 12 && South == South::Side && West == West::None) return 3179;
			if (East == East::None && North == North::Side && Power == 12 && South == South::None && West == West::Up) return 3180;
			if (East == East::None && North == North::Side && Power == 12 && South == South::None && West == West::Side) return 3181;
			if (East == East::None && North == North::Side && Power == 12 && South == South::None && West == West::None) return 3182;
			if (East == East::None && North == North::Side && Power == 13 && South == South::Up && West == West::Up) return 3183;
			if (East == East::None && North == North::Side && Power == 13 && South == South::Up && West == West::Side) return 3184;
			if (East == East::None && North == North::Side && Power == 13 && South == South::Up && West == West::None) return 3185;
			if (East == East::None && North == North::Side && Power == 13 && South == South::Side && West == West::Up) return 3186;
			if (East == East::None && North == North::Side && Power == 13 && South == South::Side && West == West::Side) return 3187;
			if (East == East::None && North == North::Side && Power == 13 && South == South::Side && West == West::None) return 3188;
			if (East == East::None && North == North::Side && Power == 13 && South == South::None && West == West::Up) return 3189;
			if (East == East::None && North == North::Side && Power == 13 && South == South::None && West == West::Side) return 3190;
			if (East == East::None && North == North::Side && Power == 13 && South == South::None && West == West::None) return 3191;
			if (East == East::None && North == North::Side && Power == 14 && South == South::Up && West == West::Up) return 3192;
			if (East == East::None && North == North::Side && Power == 14 && South == South::Up && West == West::Side) return 3193;
			if (East == East::None && North == North::Side && Power == 14 && South == South::Up && West == West::None) return 3194;
			if (East == East::None && North == North::Side && Power == 14 && South == South::Side && West == West::Up) return 3195;
			if (East == East::None && North == North::Side && Power == 14 && South == South::Side && West == West::Side) return 3196;
			if (East == East::None && North == North::Side && Power == 14 && South == South::Side && West == West::None) return 3197;
			if (East == East::None && North == North::Side && Power == 14 && South == South::None && West == West::Up) return 3198;
			if (East == East::None && North == North::Side && Power == 14 && South == South::None && West == West::Side) return 3199;
			if (East == East::None && North == North::Side && Power == 14 && South == South::None && West == West::None) return 3200;
			if (East == East::None && North == North::Side && Power == 15 && South == South::Up && West == West::Up) return 3201;
			if (East == East::None && North == North::Side && Power == 15 && South == South::Up && West == West::Side) return 3202;
			if (East == East::None && North == North::Side && Power == 15 && South == South::Up && West == West::None) return 3203;
			if (East == East::None && North == North::Side && Power == 15 && South == South::Side && West == West::Up) return 3204;
			if (East == East::None && North == North::Side && Power == 15 && South == South::Side && West == West::Side) return 3205;
			if (East == East::None && North == North::Side && Power == 15 && South == South::Side && West == West::None) return 3206;
			if (East == East::None && North == North::Side && Power == 15 && South == South::None && West == West::Up) return 3207;
			if (East == East::None && North == North::Side && Power == 15 && South == South::None && West == West::Side) return 3208;
			if (East == East::None && North == North::Side && Power == 15 && South == South::None && West == West::None) return 3209;
			if (East == East::None && North == North::None && Power == 0 && South == South::Up && West == West::Up) return 3210;
			if (East == East::None && North == North::None && Power == 0 && South == South::Up && West == West::Side) return 3211;
			if (East == East::None && North == North::None && Power == 0 && South == South::Up && West == West::None) return 3212;
			if (East == East::None && North == North::None && Power == 0 && South == South::Side && West == West::Up) return 3213;
			if (East == East::None && North == North::None && Power == 0 && South == South::Side && West == West::Side) return 3214;
			if (East == East::None && North == North::None && Power == 0 && South == South::Side && West == West::None) return 3215;
			if (East == East::None && North == North::None && Power == 0 && South == South::None && West == West::Up) return 3216;
			if (East == East::None && North == North::None && Power == 0 && South == South::None && West == West::Side) return 3217;
			if (East == East::None && North == North::None && Power == 0 && South == South::None && West == West::None) return 3218;
			if (East == East::None && North == North::None && Power == 1 && South == South::Up && West == West::Up) return 3219;
			if (East == East::None && North == North::None && Power == 1 && South == South::Up && West == West::Side) return 3220;
			if (East == East::None && North == North::None && Power == 1 && South == South::Up && West == West::None) return 3221;
			if (East == East::None && North == North::None && Power == 1 && South == South::Side && West == West::Up) return 3222;
			if (East == East::None && North == North::None && Power == 1 && South == South::Side && West == West::Side) return 3223;
			if (East == East::None && North == North::None && Power == 1 && South == South::Side && West == West::None) return 3224;
			if (East == East::None && North == North::None && Power == 1 && South == South::None && West == West::Up) return 3225;
			if (East == East::None && North == North::None && Power == 1 && South == South::None && West == West::Side) return 3226;
			if (East == East::None && North == North::None && Power == 1 && South == South::None && West == West::None) return 3227;
			if (East == East::None && North == North::None && Power == 2 && South == South::Up && West == West::Up) return 3228;
			if (East == East::None && North == North::None && Power == 2 && South == South::Up && West == West::Side) return 3229;
			if (East == East::None && North == North::None && Power == 2 && South == South::Up && West == West::None) return 3230;
			if (East == East::None && North == North::None && Power == 2 && South == South::Side && West == West::Up) return 3231;
			if (East == East::None && North == North::None && Power == 2 && South == South::Side && West == West::Side) return 3232;
			if (East == East::None && North == North::None && Power == 2 && South == South::Side && West == West::None) return 3233;
			if (East == East::None && North == North::None && Power == 2 && South == South::None && West == West::Up) return 3234;
			if (East == East::None && North == North::None && Power == 2 && South == South::None && West == West::Side) return 3235;
			if (East == East::None && North == North::None && Power == 2 && South == South::None && West == West::None) return 3236;
			if (East == East::None && North == North::None && Power == 3 && South == South::Up && West == West::Up) return 3237;
			if (East == East::None && North == North::None && Power == 3 && South == South::Up && West == West::Side) return 3238;
			if (East == East::None && North == North::None && Power == 3 && South == South::Up && West == West::None) return 3239;
			if (East == East::None && North == North::None && Power == 3 && South == South::Side && West == West::Up) return 3240;
			if (East == East::None && North == North::None && Power == 3 && South == South::Side && West == West::Side) return 3241;
			if (East == East::None && North == North::None && Power == 3 && South == South::Side && West == West::None) return 3242;
			if (East == East::None && North == North::None && Power == 3 && South == South::None && West == West::Up) return 3243;
			if (East == East::None && North == North::None && Power == 3 && South == South::None && West == West::Side) return 3244;
			if (East == East::None && North == North::None && Power == 3 && South == South::None && West == West::None) return 3245;
			if (East == East::None && North == North::None && Power == 4 && South == South::Up && West == West::Up) return 3246;
			if (East == East::None && North == North::None && Power == 4 && South == South::Up && West == West::Side) return 3247;
			if (East == East::None && North == North::None && Power == 4 && South == South::Up && West == West::None) return 3248;
			if (East == East::None && North == North::None && Power == 4 && South == South::Side && West == West::Up) return 3249;
			if (East == East::None && North == North::None && Power == 4 && South == South::Side && West == West::Side) return 3250;
			if (East == East::None && North == North::None && Power == 4 && South == South::Side && West == West::None) return 3251;
			if (East == East::None && North == North::None && Power == 4 && South == South::None && West == West::Up) return 3252;
			if (East == East::None && North == North::None && Power == 4 && South == South::None && West == West::Side) return 3253;
			if (East == East::None && North == North::None && Power == 4 && South == South::None && West == West::None) return 3254;
			if (East == East::None && North == North::None && Power == 5 && South == South::Up && West == West::Up) return 3255;
			if (East == East::None && North == North::None && Power == 5 && South == South::Up && West == West::Side) return 3256;
			if (East == East::None && North == North::None && Power == 5 && South == South::Up && West == West::None) return 3257;
			if (East == East::None && North == North::None && Power == 5 && South == South::Side && West == West::Up) return 3258;
			if (East == East::None && North == North::None && Power == 5 && South == South::Side && West == West::Side) return 3259;
			if (East == East::None && North == North::None && Power == 5 && South == South::Side && West == West::None) return 3260;
			if (East == East::None && North == North::None && Power == 5 && South == South::None && West == West::Up) return 3261;
			if (East == East::None && North == North::None && Power == 5 && South == South::None && West == West::Side) return 3262;
			if (East == East::None && North == North::None && Power == 5 && South == South::None && West == West::None) return 3263;
			if (East == East::None && North == North::None && Power == 6 && South == South::Up && West == West::Up) return 3264;
			if (East == East::None && North == North::None && Power == 6 && South == South::Up && West == West::Side) return 3265;
			if (East == East::None && North == North::None && Power == 6 && South == South::Up && West == West::None) return 3266;
			if (East == East::None && North == North::None && Power == 6 && South == South::Side && West == West::Up) return 3267;
			if (East == East::None && North == North::None && Power == 6 && South == South::Side && West == West::Side) return 3268;
			if (East == East::None && North == North::None && Power == 6 && South == South::Side && West == West::None) return 3269;
			if (East == East::None && North == North::None && Power == 6 && South == South::None && West == West::Up) return 3270;
			if (East == East::None && North == North::None && Power == 6 && South == South::None && West == West::Side) return 3271;
			if (East == East::None && North == North::None && Power == 6 && South == South::None && West == West::None) return 3272;
			if (East == East::None && North == North::None && Power == 7 && South == South::Up && West == West::Up) return 3273;
			if (East == East::None && North == North::None && Power == 7 && South == South::Up && West == West::Side) return 3274;
			if (East == East::None && North == North::None && Power == 7 && South == South::Up && West == West::None) return 3275;
			if (East == East::None && North == North::None && Power == 7 && South == South::Side && West == West::Up) return 3276;
			if (East == East::None && North == North::None && Power == 7 && South == South::Side && West == West::Side) return 3277;
			if (East == East::None && North == North::None && Power == 7 && South == South::Side && West == West::None) return 3278;
			if (East == East::None && North == North::None && Power == 7 && South == South::None && West == West::Up) return 3279;
			if (East == East::None && North == North::None && Power == 7 && South == South::None && West == West::Side) return 3280;
			if (East == East::None && North == North::None && Power == 7 && South == South::None && West == West::None) return 3281;
			if (East == East::None && North == North::None && Power == 8 && South == South::Up && West == West::Up) return 3282;
			if (East == East::None && North == North::None && Power == 8 && South == South::Up && West == West::Side) return 3283;
			if (East == East::None && North == North::None && Power == 8 && South == South::Up && West == West::None) return 3284;
			if (East == East::None && North == North::None && Power == 8 && South == South::Side && West == West::Up) return 3285;
			if (East == East::None && North == North::None && Power == 8 && South == South::Side && West == West::Side) return 3286;
			if (East == East::None && North == North::None && Power == 8 && South == South::Side && West == West::None) return 3287;
			if (East == East::None && North == North::None && Power == 8 && South == South::None && West == West::Up) return 3288;
			if (East == East::None && North == North::None && Power == 8 && South == South::None && West == West::Side) return 3289;
			if (East == East::None && North == North::None && Power == 8 && South == South::None && West == West::None) return 3290;
			if (East == East::None && North == North::None && Power == 9 && South == South::Up && West == West::Up) return 3291;
			if (East == East::None && North == North::None && Power == 9 && South == South::Up && West == West::Side) return 3292;
			if (East == East::None && North == North::None && Power == 9 && South == South::Up && West == West::None) return 3293;
			if (East == East::None && North == North::None && Power == 9 && South == South::Side && West == West::Up) return 3294;
			if (East == East::None && North == North::None && Power == 9 && South == South::Side && West == West::Side) return 3295;
			if (East == East::None && North == North::None && Power == 9 && South == South::Side && West == West::None) return 3296;
			if (East == East::None && North == North::None && Power == 9 && South == South::None && West == West::Up) return 3297;
			if (East == East::None && North == North::None && Power == 9 && South == South::None && West == West::Side) return 3298;
			if (East == East::None && North == North::None && Power == 9 && South == South::None && West == West::None) return 3299;
			if (East == East::None && North == North::None && Power == 10 && South == South::Up && West == West::Up) return 3300;
			if (East == East::None && North == North::None && Power == 10 && South == South::Up && West == West::Side) return 3301;
			if (East == East::None && North == North::None && Power == 10 && South == South::Up && West == West::None) return 3302;
			if (East == East::None && North == North::None && Power == 10 && South == South::Side && West == West::Up) return 3303;
			if (East == East::None && North == North::None && Power == 10 && South == South::Side && West == West::Side) return 3304;
			if (East == East::None && North == North::None && Power == 10 && South == South::Side && West == West::None) return 3305;
			if (East == East::None && North == North::None && Power == 10 && South == South::None && West == West::Up) return 3306;
			if (East == East::None && North == North::None && Power == 10 && South == South::None && West == West::Side) return 3307;
			if (East == East::None && North == North::None && Power == 10 && South == South::None && West == West::None) return 3308;
			if (East == East::None && North == North::None && Power == 11 && South == South::Up && West == West::Up) return 3309;
			if (East == East::None && North == North::None && Power == 11 && South == South::Up && West == West::Side) return 3310;
			if (East == East::None && North == North::None && Power == 11 && South == South::Up && West == West::None) return 3311;
			if (East == East::None && North == North::None && Power == 11 && South == South::Side && West == West::Up) return 3312;
			if (East == East::None && North == North::None && Power == 11 && South == South::Side && West == West::Side) return 3313;
			if (East == East::None && North == North::None && Power == 11 && South == South::Side && West == West::None) return 3314;
			if (East == East::None && North == North::None && Power == 11 && South == South::None && West == West::Up) return 3315;
			if (East == East::None && North == North::None && Power == 11 && South == South::None && West == West::Side) return 3316;
			if (East == East::None && North == North::None && Power == 11 && South == South::None && West == West::None) return 3317;
			if (East == East::None && North == North::None && Power == 12 && South == South::Up && West == West::Up) return 3318;
			if (East == East::None && North == North::None && Power == 12 && South == South::Up && West == West::Side) return 3319;
			if (East == East::None && North == North::None && Power == 12 && South == South::Up && West == West::None) return 3320;
			if (East == East::None && North == North::None && Power == 12 && South == South::Side && West == West::Up) return 3321;
			if (East == East::None && North == North::None && Power == 12 && South == South::Side && West == West::Side) return 3322;
			if (East == East::None && North == North::None && Power == 12 && South == South::Side && West == West::None) return 3323;
			if (East == East::None && North == North::None && Power == 12 && South == South::None && West == West::Up) return 3324;
			if (East == East::None && North == North::None && Power == 12 && South == South::None && West == West::Side) return 3325;
			if (East == East::None && North == North::None && Power == 12 && South == South::None && West == West::None) return 3326;
			if (East == East::None && North == North::None && Power == 13 && South == South::Up && West == West::Up) return 3327;
			if (East == East::None && North == North::None && Power == 13 && South == South::Up && West == West::Side) return 3328;
			if (East == East::None && North == North::None && Power == 13 && South == South::Up && West == West::None) return 3329;
			if (East == East::None && North == North::None && Power == 13 && South == South::Side && West == West::Up) return 3330;
			if (East == East::None && North == North::None && Power == 13 && South == South::Side && West == West::Side) return 3331;
			if (East == East::None && North == North::None && Power == 13 && South == South::Side && West == West::None) return 3332;
			if (East == East::None && North == North::None && Power == 13 && South == South::None && West == West::Up) return 3333;
			if (East == East::None && North == North::None && Power == 13 && South == South::None && West == West::Side) return 3334;
			if (East == East::None && North == North::None && Power == 13 && South == South::None && West == West::None) return 3335;
			if (East == East::None && North == North::None && Power == 14 && South == South::Up && West == West::Up) return 3336;
			if (East == East::None && North == North::None && Power == 14 && South == South::Up && West == West::Side) return 3337;
			if (East == East::None && North == North::None && Power == 14 && South == South::Up && West == West::None) return 3338;
			if (East == East::None && North == North::None && Power == 14 && South == South::Side && West == West::Up) return 3339;
			if (East == East::None && North == North::None && Power == 14 && South == South::Side && West == West::Side) return 3340;
			if (East == East::None && North == North::None && Power == 14 && South == South::Side && West == West::None) return 3341;
			if (East == East::None && North == North::None && Power == 14 && South == South::None && West == West::Up) return 3342;
			if (East == East::None && North == North::None && Power == 14 && South == South::None && West == West::Side) return 3343;
			if (East == East::None && North == North::None && Power == 14 && South == South::None && West == West::None) return 3344;
			if (East == East::None && North == North::None && Power == 15 && South == South::Up && West == West::Up) return 3345;
			if (East == East::None && North == North::None && Power == 15 && South == South::Up && West == West::Side) return 3346;
			if (East == East::None && North == North::None && Power == 15 && South == South::Up && West == West::None) return 3347;
			if (East == East::None && North == North::None && Power == 15 && South == South::Side && West == West::Up) return 3348;
			if (East == East::None && North == North::None && Power == 15 && South == South::Side && West == West::Side) return 3349;
			if (East == East::None && North == North::None && Power == 15 && South == South::Side && West == West::None) return 3350;
			if (East == East::None && North == North::None && Power == 15 && South == South::None && West == West::Up) return 3351;
			if (East == East::None && North == North::None && Power == 15 && South == South::None && West == West::Side) return 3352;
			return 3353;
		}
		short RedstoneWire();
		enum East East(short ID);
		enum North North(short ID);
		unsigned char Power(short ID);
		enum South South(short ID);
		enum West West(short ID);
	}
	namespace Repeater
	{
		constexpr short Repeater(unsigned char Delay, eBlockFace Facing, bool Locked, bool Powered)
		{
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZM && Locked && Powered) return 4031;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZM && Locked && !Powered) return 4032;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZM && !Locked && Powered) return 4033;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZM && !Locked && !Powered) return 4034;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZP && Locked && Powered) return 4035;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZP && Locked && !Powered) return 4036;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZP && !Locked && Powered) return 4037;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZP && !Locked && !Powered) return 4038;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XM && Locked && Powered) return 4039;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XM && Locked && !Powered) return 4040;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XM && !Locked && Powered) return 4041;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XM && !Locked && !Powered) return 4042;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XP && Locked && Powered) return 4043;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XP && Locked && !Powered) return 4044;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XP && !Locked && Powered) return 4045;
			if (Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XP && !Locked && !Powered) return 4046;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZM && Locked && Powered) return 4047;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZM && Locked && !Powered) return 4048;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZM && !Locked && Powered) return 4049;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZM && !Locked && !Powered) return 4050;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZP && Locked && Powered) return 4051;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZP && Locked && !Powered) return 4052;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZP && !Locked && Powered) return 4053;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZP && !Locked && !Powered) return 4054;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XM && Locked && Powered) return 4055;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XM && Locked && !Powered) return 4056;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XM && !Locked && Powered) return 4057;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XM && !Locked && !Powered) return 4058;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XP && Locked && Powered) return 4059;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XP && Locked && !Powered) return 4060;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XP && !Locked && Powered) return 4061;
			if (Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XP && !Locked && !Powered) return 4062;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZM && Locked && Powered) return 4063;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZM && Locked && !Powered) return 4064;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZM && !Locked && Powered) return 4065;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZM && !Locked && !Powered) return 4066;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZP && Locked && Powered) return 4067;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZP && Locked && !Powered) return 4068;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZP && !Locked && Powered) return 4069;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZP && !Locked && !Powered) return 4070;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XM && Locked && Powered) return 4071;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XM && Locked && !Powered) return 4072;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XM && !Locked && Powered) return 4073;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XM && !Locked && !Powered) return 4074;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XP && Locked && Powered) return 4075;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XP && Locked && !Powered) return 4076;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XP && !Locked && Powered) return 4077;
			if (Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XP && !Locked && !Powered) return 4078;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZM && Locked && Powered) return 4079;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZM && Locked && !Powered) return 4080;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZM && !Locked && Powered) return 4081;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZM && !Locked && !Powered) return 4082;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZP && Locked && Powered) return 4083;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZP && Locked && !Powered) return 4084;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZP && !Locked && Powered) return 4085;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZP && !Locked && !Powered) return 4086;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XM && Locked && Powered) return 4087;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XM && Locked && !Powered) return 4088;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XM && !Locked && Powered) return 4089;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XM && !Locked && !Powered) return 4090;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XP && Locked && Powered) return 4091;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XP && Locked && !Powered) return 4092;
			if (Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XP && !Locked && Powered) return 4093;
			return 4094;
		}
		short Repeater();
		unsigned char Delay(short ID);
		eBlockFace Facing(short ID);
		bool Locked(short ID);
		bool Powered(short ID);
	}
	namespace RepeatingCommandBlock
	{
		constexpr short RepeatingCommandBlock(bool Conditional, eBlockFace Facing)
		{
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 9225;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 9226;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 9227;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 9228;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 9229;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YM) return 9230;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 9231;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 9232;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 9233;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 9234;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 9235;
			return 9236;
		}
		short RepeatingCommandBlock();
		bool Conditional(short ID);
		eBlockFace Facing(short ID);
	}
	namespace RespawnAnchor
	{
		constexpr short RespawnAnchor(unsigned char Charges)
		{
			if (Charges == 0) return 15829;
			if (Charges == 1) return 15830;
			if (Charges == 2) return 15831;
			if (Charges == 3) return 15832;
			return 15833;
		}
		short RespawnAnchor();
		unsigned char Charges(short ID);
	}
	namespace RoseBush
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short RoseBush(enum Half Half)
		{
			if (Half == Half::Upper) return 7889;
			return 7890;
		}
		short RoseBush();
		enum Half Half(short ID);
	}
	namespace Sand
	{
		constexpr short Sand()
		{
			return 66;
		}
	}
	namespace Sandstone
	{
		constexpr short Sandstone()
		{
			return 246;
		}
	}
	namespace SandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SandstoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8349;
			if (Type == Type::Bottom) return 8351;
			return 8353;
		}
		short SandstoneSlab();
		enum Type Type(short ID);
	}
	namespace SandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SandstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 5171;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 5173;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 5175;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 5177;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 5179;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 5181;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5183;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5185;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5187;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5189;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 5191;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 5193;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 5195;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 5197;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 5199;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 5201;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5203;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5205;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5207;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 5209;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 5211;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 5213;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 5215;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 5217;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 5219;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 5221;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5223;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5225;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5227;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5229;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 5231;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 5233;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 5235;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 5237;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 5239;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 5241;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5243;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5245;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5247;
			return 5249;
		}
		short SandstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace SandstoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short SandstoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 13786;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 13787;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 13788;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 13792;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 13793;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 13794;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 13798;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 13799;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 13800;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 13804;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 13805;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 13806;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 13810;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 13811;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 13812;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 13816;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 13817;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 13818;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 13822;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 13823;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 13824;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 13828;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 13829;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 13830;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 13834;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 13835;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 13836;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 13840;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 13841;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 13842;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 13846;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 13847;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 13848;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 13852;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 13853;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 13854;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 13858;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 13859;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 13860;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 13864;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 13865;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13866;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 13870;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 13871;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13872;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 13876;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13877;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13878;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 13882;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13883;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13884;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13888;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13889;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 13890;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 13894;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 13895;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 13896;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 13900;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 13901;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 13902;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 13906;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 13907;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 13908;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 13912;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 13913;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 13914;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 13918;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 13919;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 13920;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 13924;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 13925;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 13926;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 13930;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 13931;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 13932;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 13936;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 13937;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 13938;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 13942;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 13943;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 13944;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 13948;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 13949;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 13950;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 13954;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 13955;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 13956;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 13960;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 13961;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 13962;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 13966;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 13967;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 13968;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 13972;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 13973;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 13974;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 13978;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 13979;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 13980;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 13984;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 13985;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 13986;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 13990;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 13991;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 13992;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 13996;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 13997;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 13998;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 14002;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 14003;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 14004;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 14008;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 14009;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 14010;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 14014;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 14015;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 14016;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 14020;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 14021;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 14022;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 14026;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 14027;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 14028;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 14032;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 14033;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 14034;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 14038;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 14039;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 14040;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 14044;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 14045;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 14046;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 14050;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 14051;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 14052;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 14056;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 14057;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 14058;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 14062;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 14063;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 14064;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 14068;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 14069;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 14070;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 14074;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 14075;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 14076;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 14080;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 14081;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 14082;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 14086;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 14087;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 14088;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 14092;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 14093;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 14094;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 14098;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 14099;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 14100;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 14104;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 14105;
			return 14106;
		}
		short SandstoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace Scaffolding
	{
		constexpr short Scaffolding(bool Bottom, unsigned char Distance)
		{
			if (Bottom && Distance == 0) return 14756;
			if (Bottom && Distance == 1) return 14758;
			if (Bottom && Distance == 2) return 14760;
			if (Bottom && Distance == 3) return 14762;
			if (Bottom && Distance == 4) return 14764;
			if (Bottom && Distance == 5) return 14766;
			if (Bottom && Distance == 6) return 14768;
			if (Bottom && Distance == 7) return 14770;
			if (!Bottom && Distance == 0) return 14772;
			if (!Bottom && Distance == 1) return 14774;
			if (!Bottom && Distance == 2) return 14776;
			if (!Bottom && Distance == 3) return 14778;
			if (!Bottom && Distance == 4) return 14780;
			if (!Bottom && Distance == 5) return 14782;
			if (!Bottom && Distance == 6) return 14784;
			return 14786;
		}
		short Scaffolding();
		bool Bottom(short ID);
		unsigned char Distance(short ID);
	}
	namespace SeaLantern
	{
		constexpr short SeaLantern()
		{
			return 7862;
		}
	}
	namespace SeaPickle
	{
		constexpr short SeaPickle(unsigned char Pickles)
		{
			if (Pickles == 1) return 9641;
			if (Pickles == 2) return 9643;
			if (Pickles == 3) return 9645;
			return 9647;
		}
		short SeaPickle();
		unsigned char Pickles(short ID);
	}
	namespace Seagrass
	{
		constexpr short Seagrass()
		{
			return 1345;
		}
	}
	namespace Shroomlight
	{
		constexpr short Shroomlight()
		{
			return 14989;
		}
	}
	namespace ShulkerBox
	{
		constexpr short ShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9272;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9273;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9274;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9275;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9276;
			return 9277;
		}
		short ShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace SkeletonSkull
	{
		constexpr short SkeletonSkull(unsigned char Rotation)
		{
			if (Rotation == 0) return 6490;
			if (Rotation == 1) return 6491;
			if (Rotation == 2) return 6492;
			if (Rotation == 3) return 6493;
			if (Rotation == 4) return 6494;
			if (Rotation == 5) return 6495;
			if (Rotation == 6) return 6496;
			if (Rotation == 7) return 6497;
			if (Rotation == 8) return 6498;
			if (Rotation == 9) return 6499;
			if (Rotation == 10) return 6500;
			if (Rotation == 11) return 6501;
			if (Rotation == 12) return 6502;
			if (Rotation == 13) return 6503;
			if (Rotation == 14) return 6504;
			return 6505;
		}
		short SkeletonSkull();
		unsigned char Rotation(short ID);
	}
	namespace SkeletonWallSkull
	{
		constexpr short SkeletonWallSkull(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6506;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6507;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6508;
			return 6509;
		}
		short SkeletonWallSkull();
		eBlockFace Facing(short ID);
	}
	namespace SlimeBlock
	{
		constexpr short SlimeBlock()
		{
			return 7535;
		}
	}
	namespace SmithingTable
	{
		constexpr short SmithingTable()
		{
			return 14849;
		}
	}
	namespace Smoker
	{
		constexpr short Smoker(eBlockFace Facing, bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit) return 14803;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit) return 14804;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit) return 14805;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit) return 14806;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit) return 14807;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit) return 14808;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit) return 14809;
			return 14810;
		}
		short Smoker();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
	}
	namespace SmoothQuartz
	{
		constexpr short SmoothQuartz()
		{
			return 8416;
		}
	}
	namespace SmoothQuartzSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SmoothQuartzSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10832;
			if (Type == Type::Bottom) return 10834;
			return 10836;
		}
		short SmoothQuartzSlab();
		enum Type Type(short ID);
	}
	namespace SmoothQuartzStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SmoothQuartzStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 10310;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 10312;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 10314;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 10316;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 10318;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10320;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10322;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10324;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10326;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10328;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10330;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10332;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10334;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10336;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10338;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10340;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10342;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10344;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10346;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10348;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10350;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10352;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10354;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10356;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10358;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10360;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10362;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10364;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10366;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10368;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10370;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10372;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10374;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10376;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10378;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10380;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10382;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10384;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10386;
			return 10388;
		}
		short SmoothQuartzStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace SmoothRedSandstone
	{
		constexpr short SmoothRedSandstone()
		{
			return 8417;
		}
	}
	namespace SmoothRedSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SmoothRedSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10796;
			if (Type == Type::Bottom) return 10798;
			return 10800;
		}
		short SmoothRedSandstoneSlab();
		enum Type Type(short ID);
	}
	namespace SmoothRedSandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SmoothRedSandstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 9750;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 9752;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 9754;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 9756;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 9758;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 9760;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9762;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9764;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9766;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9768;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 9770;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 9772;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 9774;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 9776;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 9778;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 9780;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9782;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9784;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9786;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 9788;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 9790;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 9792;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 9794;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 9796;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 9798;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 9800;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9802;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 9804;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9806;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 9808;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 9810;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 9812;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 9814;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 9816;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 9818;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 9820;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 9822;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 9824;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 9826;
			return 9828;
		}
		short SmoothRedSandstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace SmoothSandstone
	{
		constexpr short SmoothSandstone()
		{
			return 8415;
		}
	}
	namespace SmoothSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SmoothSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 10826;
			if (Type == Type::Bottom) return 10828;
			return 10830;
		}
		short SmoothSandstoneSlab();
		enum Type Type(short ID);
	}
	namespace SmoothSandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SmoothSandstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 10230;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 10232;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 10234;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 10236;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 10238;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10240;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10242;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10244;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10246;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10248;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10250;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10252;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10254;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10256;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10258;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10260;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10262;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10264;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10266;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10268;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10270;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10272;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10274;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10276;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10278;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10280;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10282;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10284;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10286;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10288;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10290;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10292;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10294;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10296;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10298;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10300;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10302;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10304;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10306;
			return 10308;
		}
		short SmoothSandstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace SmoothStone
	{
		constexpr short SmoothStone()
		{
			return 8414;
		}
	}
	namespace SmoothStoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SmoothStoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8343;
			if (Type == Type::Bottom) return 8345;
			return 8347;
		}
		short SmoothStoneSlab();
		enum Type Type(short ID);
	}
	namespace Snow
	{
		constexpr short Snow(unsigned char Layers)
		{
			if (Layers == 1) return 3921;
			if (Layers == 2) return 3922;
			if (Layers == 3) return 3923;
			if (Layers == 4) return 3924;
			if (Layers == 5) return 3925;
			if (Layers == 6) return 3926;
			if (Layers == 7) return 3927;
			return 3928;
		}
		short Snow();
		unsigned char Layers(short ID);
	}
	namespace SnowBlock
	{
		constexpr short SnowBlock()
		{
			return 3930;
		}
	}
	namespace SoulCampfire
	{
		constexpr short SoulCampfire(eBlockFace Facing, bool Lit, bool SignalFire)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit && SignalFire) return 14923;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit && !SignalFire) return 14925;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit && SignalFire) return 14927;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit && !SignalFire) return 14929;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit && SignalFire) return 14931;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit && !SignalFire) return 14933;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit && SignalFire) return 14935;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit && !SignalFire) return 14937;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit && SignalFire) return 14939;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit && !SignalFire) return 14941;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit && SignalFire) return 14943;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit && !SignalFire) return 14945;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit && SignalFire) return 14947;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit && !SignalFire) return 14949;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Lit && SignalFire) return 14951;
			return 14953;
		}
		short SoulCampfire();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
		bool SignalFire(short ID);
	}
	namespace SoulFire
	{
		constexpr short SoulFire()
		{
			return 1952;
		}
	}
	namespace SoulLantern
	{
		constexpr short SoulLantern(bool Hanging)
		{
			if (Hanging) return 14888;
			return 14889;
		}
		short SoulLantern();
		bool Hanging(short ID);
	}
	namespace SoulSand
	{
		constexpr short SoulSand()
		{
			return 4000;
		}
	}
	namespace SoulSoil
	{
		constexpr short SoulSoil()
		{
			return 4001;
		}
	}
	namespace SoulTorch
	{
		constexpr short SoulTorch()
		{
			return 4008;
		}
	}
	namespace SoulWallTorch
	{
		constexpr short SoulWallTorch(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4009;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4010;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4011;
			return 4012;
		}
		short SoulWallTorch();
		eBlockFace Facing(short ID);
	}
	namespace Spawner
	{
		constexpr short Spawner()
		{
			return 1953;
		}
	}
	namespace Sponge
	{
		constexpr short Sponge()
		{
			return 229;
		}
	}
	namespace SpruceButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short SpruceButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6370;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6371;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6372;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6373;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6374;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6375;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6376;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6377;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6378;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6379;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6380;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6381;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6382;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6383;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6384;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 6385;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 6386;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 6387;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 6388;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 6389;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 6390;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 6391;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 6392;
			return 6393;
		}
		short SpruceButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace SpruceDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short SpruceDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8738;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8739;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8740;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8741;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8742;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8743;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8744;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8745;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8746;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8747;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8748;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8749;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8750;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8751;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8752;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8753;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8754;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8755;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8756;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8757;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8758;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8759;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8760;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8761;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8762;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8763;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8764;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8765;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8766;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8767;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8768;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8769;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8770;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8771;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8772;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8773;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8774;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8775;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8776;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8777;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8778;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8779;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8780;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8781;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8782;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8783;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8784;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 8785;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 8786;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 8787;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 8788;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 8789;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 8790;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 8791;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 8792;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 8793;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 8794;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 8795;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 8796;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 8797;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 8798;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 8799;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 8800;
			return 8801;
		}
		short SpruceDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace SpruceFence
	{
		constexpr short SpruceFence(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 8580;
			if (East && North && South && !West) return 8581;
			if (East && North && !South && West) return 8584;
			if (East && North && !South && !West) return 8585;
			if (East && !North && South && West) return 8588;
			if (East && !North && South && !West) return 8589;
			if (East && !North && !South && West) return 8592;
			if (East && !North && !South && !West) return 8593;
			if (!East && North && South && West) return 8596;
			if (!East && North && South && !West) return 8597;
			if (!East && North && !South && West) return 8600;
			if (!East && North && !South && !West) return 8601;
			if (!East && !North && South && West) return 8604;
			if (!East && !North && South && !West) return 8605;
			if (!East && !North && !South && West) return 8608;
			return 8609;
		}
		short SpruceFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace SpruceFenceGate
	{
		constexpr short SpruceFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && Powered) return 8418;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && !Powered) return 8419;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && Powered) return 8420;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && !Powered) return 8421;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && Powered) return 8422;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && !Powered) return 8423;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && Powered) return 8424;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && !Powered) return 8425;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && Powered) return 8426;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && !Powered) return 8427;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && Powered) return 8428;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && !Powered) return 8429;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && Powered) return 8430;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && !Powered) return 8431;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && Powered) return 8432;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && !Powered) return 8433;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && Powered) return 8434;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && !Powered) return 8435;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && Powered) return 8436;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && !Powered) return 8437;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && Powered) return 8438;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && !Powered) return 8439;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && Powered) return 8440;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && !Powered) return 8441;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && Powered) return 8442;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && !Powered) return 8443;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && Powered) return 8444;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && !Powered) return 8445;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && Powered) return 8446;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && !Powered) return 8447;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && !Open && Powered) return 8448;
			return 8449;
		}
		short SpruceFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace SpruceLeaves
	{
		constexpr short SpruceLeaves(unsigned char Distance, bool Persistent)
		{
			if (Distance == 1 && Persistent) return 159;
			if (Distance == 1 && !Persistent) return 160;
			if (Distance == 2 && Persistent) return 161;
			if (Distance == 2 && !Persistent) return 162;
			if (Distance == 3 && Persistent) return 163;
			if (Distance == 3 && !Persistent) return 164;
			if (Distance == 4 && Persistent) return 165;
			if (Distance == 4 && !Persistent) return 166;
			if (Distance == 5 && Persistent) return 167;
			if (Distance == 5 && !Persistent) return 168;
			if (Distance == 6 && Persistent) return 169;
			if (Distance == 6 && !Persistent) return 170;
			if (Distance == 7 && Persistent) return 171;
			return 172;
		}
		short SpruceLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace SpruceLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short SpruceLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 76;
			if (Axis == Axis::Y) return 77;
			return 78;
		}
		short SpruceLog();
		enum Axis Axis(short ID);
	}
	namespace SprucePlanks
	{
		constexpr short SprucePlanks()
		{
			return 16;
		}
	}
	namespace SprucePressurePlate
	{
		constexpr short SprucePressurePlate(bool Powered)
		{
			if (Powered) return 3875;
			return 3876;
		}
		short SprucePressurePlate();
		bool Powered(short ID);
	}
	namespace SpruceSapling
	{
		constexpr short SpruceSapling(unsigned char Stage)
		{
			if (Stage == 0) return 23;
			return 24;
		}
		short SpruceSapling();
		unsigned char Stage(short ID);
	}
	namespace SpruceSign
	{
		constexpr short SpruceSign(unsigned char Rotation)
		{
			if (Rotation == 0) return 3414;
			if (Rotation == 1) return 3416;
			if (Rotation == 2) return 3418;
			if (Rotation == 3) return 3420;
			if (Rotation == 4) return 3422;
			if (Rotation == 5) return 3424;
			if (Rotation == 6) return 3426;
			if (Rotation == 7) return 3428;
			if (Rotation == 8) return 3430;
			if (Rotation == 9) return 3432;
			if (Rotation == 10) return 3434;
			if (Rotation == 11) return 3436;
			if (Rotation == 12) return 3438;
			if (Rotation == 13) return 3440;
			if (Rotation == 14) return 3442;
			return 3444;
		}
		short SpruceSign();
		unsigned char Rotation(short ID);
	}
	namespace SpruceSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SpruceSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8307;
			if (Type == Type::Bottom) return 8309;
			return 8311;
		}
		short SpruceSlab();
		enum Type Type(short ID);
	}
	namespace SpruceStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SpruceStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 5405;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 5407;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 5409;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 5411;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 5413;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 5415;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5417;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5419;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5421;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5423;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 5425;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 5427;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 5429;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 5431;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 5433;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 5435;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5437;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5439;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5441;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 5443;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 5445;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 5447;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 5449;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 5451;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 5453;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 5455;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5457;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 5459;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5461;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 5463;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 5465;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 5467;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 5469;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 5471;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 5473;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 5475;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5477;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5479;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5481;
			return 5483;
		}
		short SpruceStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace SpruceTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short SpruceTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && Powered) return 4176;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && !Powered) return 4178;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && Powered) return 4180;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && !Powered) return 4182;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && Powered) return 4184;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && !Powered) return 4186;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && Powered) return 4188;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && !Powered) return 4190;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && Powered) return 4192;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && !Powered) return 4194;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && Powered) return 4196;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && !Powered) return 4198;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && Powered) return 4200;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && !Powered) return 4202;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && Powered) return 4204;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && !Powered) return 4206;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && Powered) return 4208;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && !Powered) return 4210;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && Powered) return 4212;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && !Powered) return 4214;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && Powered) return 4216;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && !Powered) return 4218;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && Powered) return 4220;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && !Powered) return 4222;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && Powered) return 4224;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && !Powered) return 4226;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && Powered) return 4228;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && !Powered) return 4230;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && Powered) return 4232;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && !Powered) return 4234;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && !Open && Powered) return 4236;
			return 4238;
		}
		short SpruceTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace SpruceWallSign
	{
		constexpr short SpruceWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3744;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3746;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 3748;
			return 3750;
		}
		short SpruceWallSign();
		eBlockFace Facing(short ID);
	}
	namespace SpruceWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short SpruceWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 112;
			if (Axis == Axis::Y) return 113;
			return 114;
		}
		short SpruceWood();
		enum Axis Axis(short ID);
	}
	namespace StickyPiston
	{
		constexpr short StickyPiston(bool Extended, eBlockFace Facing)
		{
			if (Extended && Facing == eBlockFace::BLOCK_FACE_ZM) return 1329;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_XP) return 1330;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_ZP) return 1331;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_XM) return 1332;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_YP) return 1333;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_YM) return 1334;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_ZM) return 1335;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_XP) return 1336;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_ZP) return 1337;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_XM) return 1338;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_YP) return 1339;
			return 1340;
		}
		short StickyPiston();
		bool Extended(short ID);
		eBlockFace Facing(short ID);
	}
	namespace Stone
	{
		constexpr short Stone()
		{
			return 1;
		}
	}
	namespace StoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short StoneBrickSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8379;
			if (Type == Type::Bottom) return 8381;
			return 8383;
		}
		short StoneBrickSlab();
		enum Type Type(short ID);
	}
	namespace StoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short StoneBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 4933;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 4935;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 4937;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 4939;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 4941;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 4943;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 4945;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 4947;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 4949;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 4951;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 4953;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 4955;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 4957;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 4959;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 4961;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 4963;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 4965;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 4967;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 4969;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 4971;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 4973;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 4975;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 4977;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 4979;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 4981;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 4983;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 4985;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 4987;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 4989;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 4991;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 4993;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 4995;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 4997;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 4999;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 5001;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 5003;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 5005;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 5007;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 5009;
			return 5011;
		}
		short StoneBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace StoneBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short StoneBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (East == East::None && North == North::None && South == South::None && Up && West == West::None) return 12490;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Low) return 12491;
			if (East == East::None && North == North::None && South == South::None && Up && West == West::Tall) return 12492;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::None) return 12496;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Low) return 12497;
			if (East == East::None && North == North::None && South == South::None && !Up && West == West::Tall) return 12498;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::None) return 12502;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Low) return 12503;
			if (East == East::None && North == North::None && South == South::Low && Up && West == West::Tall) return 12504;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::None) return 12508;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Low) return 12509;
			if (East == East::None && North == North::None && South == South::Low && !Up && West == West::Tall) return 12510;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::None) return 12514;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Low) return 12515;
			if (East == East::None && North == North::None && South == South::Tall && Up && West == West::Tall) return 12516;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::None) return 12520;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Low) return 12521;
			if (East == East::None && North == North::None && South == South::Tall && !Up && West == West::Tall) return 12522;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::None) return 12526;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Low) return 12527;
			if (East == East::None && North == North::Low && South == South::None && Up && West == West::Tall) return 12528;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::None) return 12532;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Low) return 12533;
			if (East == East::None && North == North::Low && South == South::None && !Up && West == West::Tall) return 12534;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::None) return 12538;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Low) return 12539;
			if (East == East::None && North == North::Low && South == South::Low && Up && West == West::Tall) return 12540;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::None) return 12544;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Low) return 12545;
			if (East == East::None && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12546;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::None) return 12550;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Low) return 12551;
			if (East == East::None && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12552;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::None) return 12556;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12557;
			if (East == East::None && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12558;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::None) return 12562;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Low) return 12563;
			if (East == East::None && North == North::Tall && South == South::None && Up && West == West::Tall) return 12564;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::None) return 12568;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Low) return 12569;
			if (East == East::None && North == North::Tall && South == South::None && !Up && West == West::Tall) return 12570;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::None) return 12574;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Low) return 12575;
			if (East == East::None && North == North::Tall && South == South::Low && Up && West == West::Tall) return 12576;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::None) return 12580;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Low) return 12581;
			if (East == East::None && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 12582;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::None) return 12586;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Low) return 12587;
			if (East == East::None && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 12588;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::None) return 12592;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 12593;
			if (East == East::None && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 12594;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::None) return 12598;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Low) return 12599;
			if (East == East::Low && North == North::None && South == South::None && Up && West == West::Tall) return 12600;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::None) return 12604;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Low) return 12605;
			if (East == East::Low && North == North::None && South == South::None && !Up && West == West::Tall) return 12606;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::None) return 12610;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Low) return 12611;
			if (East == East::Low && North == North::None && South == South::Low && Up && West == West::Tall) return 12612;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::None) return 12616;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Low) return 12617;
			if (East == East::Low && North == North::None && South == South::Low && !Up && West == West::Tall) return 12618;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::None) return 12622;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Low) return 12623;
			if (East == East::Low && North == North::None && South == South::Tall && Up && West == West::Tall) return 12624;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::None) return 12628;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Low) return 12629;
			if (East == East::Low && North == North::None && South == South::Tall && !Up && West == West::Tall) return 12630;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::None) return 12634;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Low) return 12635;
			if (East == East::Low && North == North::Low && South == South::None && Up && West == West::Tall) return 12636;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::None) return 12640;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Low) return 12641;
			if (East == East::Low && North == North::Low && South == South::None && !Up && West == West::Tall) return 12642;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::None) return 12646;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Low) return 12647;
			if (East == East::Low && North == North::Low && South == South::Low && Up && West == West::Tall) return 12648;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::None) return 12652;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Low) return 12653;
			if (East == East::Low && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12654;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::None) return 12658;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Low) return 12659;
			if (East == East::Low && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12660;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::None) return 12664;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12665;
			if (East == East::Low && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12666;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::None) return 12670;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Low) return 12671;
			if (East == East::Low && North == North::Tall && South == South::None && Up && West == West::Tall) return 12672;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::None) return 12676;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Low) return 12677;
			if (East == East::Low && North == North::Tall && South == South::None && !Up && West == West::Tall) return 12678;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::None) return 12682;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Low) return 12683;
			if (East == East::Low && North == North::Tall && South == South::Low && Up && West == West::Tall) return 12684;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::None) return 12688;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Low) return 12689;
			if (East == East::Low && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 12690;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::None) return 12694;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Low) return 12695;
			if (East == East::Low && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 12696;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::None) return 12700;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 12701;
			if (East == East::Low && North == North::Tall && South == South::Tall && !Up && West == West::Tall) return 12702;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::None) return 12706;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Low) return 12707;
			if (East == East::Tall && North == North::None && South == South::None && Up && West == West::Tall) return 12708;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::None) return 12712;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Low) return 12713;
			if (East == East::Tall && North == North::None && South == South::None && !Up && West == West::Tall) return 12714;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::None) return 12718;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Low) return 12719;
			if (East == East::Tall && North == North::None && South == South::Low && Up && West == West::Tall) return 12720;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::None) return 12724;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Low) return 12725;
			if (East == East::Tall && North == North::None && South == South::Low && !Up && West == West::Tall) return 12726;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::None) return 12730;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Low) return 12731;
			if (East == East::Tall && North == North::None && South == South::Tall && Up && West == West::Tall) return 12732;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::None) return 12736;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Low) return 12737;
			if (East == East::Tall && North == North::None && South == South::Tall && !Up && West == West::Tall) return 12738;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::None) return 12742;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Low) return 12743;
			if (East == East::Tall && North == North::Low && South == South::None && Up && West == West::Tall) return 12744;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::None) return 12748;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Low) return 12749;
			if (East == East::Tall && North == North::Low && South == South::None && !Up && West == West::Tall) return 12750;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::None) return 12754;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Low) return 12755;
			if (East == East::Tall && North == North::Low && South == South::Low && Up && West == West::Tall) return 12756;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::None) return 12760;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Low) return 12761;
			if (East == East::Tall && North == North::Low && South == South::Low && !Up && West == West::Tall) return 12762;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::None) return 12766;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Low) return 12767;
			if (East == East::Tall && North == North::Low && South == South::Tall && Up && West == West::Tall) return 12768;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::None) return 12772;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Low) return 12773;
			if (East == East::Tall && North == North::Low && South == South::Tall && !Up && West == West::Tall) return 12774;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::None) return 12778;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Low) return 12779;
			if (East == East::Tall && North == North::Tall && South == South::None && Up && West == West::Tall) return 12780;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::None) return 12784;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Low) return 12785;
			if (East == East::Tall && North == North::Tall && South == South::None && !Up && West == West::Tall) return 12786;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::None) return 12790;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Low) return 12791;
			if (East == East::Tall && North == North::Tall && South == South::Low && Up && West == West::Tall) return 12792;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::None) return 12796;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Low) return 12797;
			if (East == East::Tall && North == North::Tall && South == South::Low && !Up && West == West::Tall) return 12798;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::None) return 12802;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Low) return 12803;
			if (East == East::Tall && North == North::Tall && South == South::Tall && Up && West == West::Tall) return 12804;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::None) return 12808;
			if (East == East::Tall && North == North::Tall && South == South::Tall && !Up && West == West::Low) return 12809;
			return 12810;
		}
		short StoneBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		enum West West(short ID);
	}
	namespace StoneBricks
	{
		constexpr short StoneBricks()
		{
			return 4495;
		}
	}
	namespace StoneButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short StoneButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 3897;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 3898;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 3899;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 3900;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 3901;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 3902;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 3903;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 3904;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 3905;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 3906;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 3907;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 3908;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 3909;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 3910;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 3911;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 3912;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 3913;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 3914;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 3915;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 3916;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 3917;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 3918;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 3919;
			return 3920;
		}
		short StoneButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace StonePressurePlate
	{
		constexpr short StonePressurePlate(bool Powered)
		{
			if (Powered) return 3807;
			return 3808;
		}
		short StonePressurePlate();
		bool Powered(short ID);
	}
	namespace StoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short StoneSlab(enum Type Type)
		{
			if (Type == Type::Top) return 8337;
			if (Type == Type::Bottom) return 8339;
			return 8341;
		}
		short StoneSlab();
		enum Type Type(short ID);
	}
	namespace StoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short StoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 10150;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 10152;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 10154;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 10156;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 10158;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 10160;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10162;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10164;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10166;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10168;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 10170;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 10172;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 10174;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 10176;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 10178;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 10180;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10182;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10184;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10186;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 10188;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 10190;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 10192;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 10194;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 10196;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 10198;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 10200;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10202;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 10204;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10206;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 10208;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 10210;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 10212;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 10214;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 10216;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 10218;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 10220;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 10222;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 10224;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 10226;
			return 10228;
		}
		short StoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace Stonecutter
	{
		constexpr short Stonecutter(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14850;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14851;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 14852;
			return 14853;
		}
		short Stonecutter();
		eBlockFace Facing(short ID);
	}
	namespace StrippedAcaciaLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedAcaciaLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 100;
			if (Axis == Axis::Y) return 101;
			return 102;
		}
		short StrippedAcaciaLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedAcaciaWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedAcaciaWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 139;
			if (Axis == Axis::Y) return 140;
			return 141;
		}
		short StrippedAcaciaWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedBirchLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedBirchLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 94;
			if (Axis == Axis::Y) return 95;
			return 96;
		}
		short StrippedBirchLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedBirchWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedBirchWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 133;
			if (Axis == Axis::Y) return 134;
			return 135;
		}
		short StrippedBirchWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedCrimsonHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedCrimsonHyphae(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14984;
			if (Axis == Axis::Y) return 14985;
			return 14986;
		}
		short StrippedCrimsonHyphae();
		enum Axis Axis(short ID);
	}
	namespace StrippedCrimsonStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedCrimsonStem(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14978;
			if (Axis == Axis::Y) return 14979;
			return 14980;
		}
		short StrippedCrimsonStem();
		enum Axis Axis(short ID);
	}
	namespace StrippedDarkOakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedDarkOakLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 103;
			if (Axis == Axis::Y) return 104;
			return 105;
		}
		short StrippedDarkOakLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedDarkOakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedDarkOakWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 142;
			if (Axis == Axis::Y) return 143;
			return 144;
		}
		short StrippedDarkOakWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedJungleLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedJungleLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 97;
			if (Axis == Axis::Y) return 98;
			return 99;
		}
		short StrippedJungleLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedJungleWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedJungleWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 136;
			if (Axis == Axis::Y) return 137;
			return 138;
		}
		short StrippedJungleWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedOakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedOakLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 106;
			if (Axis == Axis::Y) return 107;
			return 108;
		}
		short StrippedOakLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedOakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedOakWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 127;
			if (Axis == Axis::Y) return 128;
			return 129;
		}
		short StrippedOakWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedSpruceLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedSpruceLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 91;
			if (Axis == Axis::Y) return 92;
			return 93;
		}
		short StrippedSpruceLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedSpruceWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedSpruceWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 130;
			if (Axis == Axis::Y) return 131;
			return 132;
		}
		short StrippedSpruceWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedWarpedHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedWarpedHyphae(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14967;
			if (Axis == Axis::Y) return 14968;
			return 14969;
		}
		short StrippedWarpedHyphae();
		enum Axis Axis(short ID);
	}
	namespace StrippedWarpedStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedWarpedStem(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14961;
			if (Axis == Axis::Y) return 14962;
			return 14963;
		}
		short StrippedWarpedStem();
		enum Axis Axis(short ID);
	}
	namespace StructureBlock
	{
		enum class Mode
		{
			Save,
			Load,
			Corner,
			Data
		};
		constexpr short StructureBlock(enum Mode Mode)
		{
			if (Mode == Mode::Save) return 15735;
			if (Mode == Mode::Load) return 15736;
			if (Mode == Mode::Corner) return 15737;
			return 15738;
		}
		short StructureBlock();
		enum Mode Mode(short ID);
	}
	namespace StructureVoid
	{
		constexpr short StructureVoid()
		{
			return 9259;
		}
	}
	namespace SugarCane
	{
		constexpr short SugarCane(unsigned char Age)
		{
			if (Age == 0) return 3948;
			if (Age == 1) return 3949;
			if (Age == 2) return 3950;
			if (Age == 3) return 3951;
			if (Age == 4) return 3952;
			if (Age == 5) return 3953;
			if (Age == 6) return 3954;
			if (Age == 7) return 3955;
			if (Age == 8) return 3956;
			if (Age == 9) return 3957;
			if (Age == 10) return 3958;
			if (Age == 11) return 3959;
			if (Age == 12) return 3960;
			if (Age == 13) return 3961;
			if (Age == 14) return 3962;
			return 3963;
		}
		short SugarCane();
		unsigned char Age(short ID);
	}
	namespace Sunflower
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short Sunflower(enum Half Half)
		{
			if (Half == Half::Upper) return 7885;
			return 7886;
		}
		short Sunflower();
		enum Half Half(short ID);
	}
	namespace SweetBerryBush
	{
		constexpr short SweetBerryBush(unsigned char Age)
		{
			if (Age == 0) return 14954;
			if (Age == 1) return 14955;
			if (Age == 2) return 14956;
			return 14957;
		}
		short SweetBerryBush();
		unsigned char Age(short ID);
	}
	namespace TNT
	{
		constexpr short TNT(bool Unstable)
		{
			if (Unstable) return 1430;
			return 1431;
		}
		short TNT();
		bool Unstable(short ID);
	}
	namespace TallGrass
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short TallGrass(enum Half Half)
		{
			if (Half == Half::Upper) return 7893;
			return 7894;
		}
		short TallGrass();
		enum Half Half(short ID);
	}
	namespace TallSeagrass
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short TallSeagrass(enum Half Half)
		{
			if (Half == Half::Upper) return 1346;
			return 1347;
		}
		short TallSeagrass();
		enum Half Half(short ID);
	}
	namespace Target
	{
		constexpr short Target(unsigned char Power)
		{
			if (Power == 0) return 15760;
			if (Power == 1) return 15761;
			if (Power == 2) return 15762;
			if (Power == 3) return 15763;
			if (Power == 4) return 15764;
			if (Power == 5) return 15765;
			if (Power == 6) return 15766;
			if (Power == 7) return 15767;
			if (Power == 8) return 15768;
			if (Power == 9) return 15769;
			if (Power == 10) return 15770;
			if (Power == 11) return 15771;
			if (Power == 12) return 15772;
			if (Power == 13) return 15773;
			if (Power == 14) return 15774;
			return 15775;
		}
		short Target();
		unsigned char Power(short ID);
	}
	namespace Terracotta
	{
		constexpr short Terracotta()
		{
			return 7882;
		}
	}
	namespace Torch
	{
		constexpr short Torch()
		{
			return 1435;
		}
	}
	namespace TrappedChest
	{
		enum class Type
		{
			Single,
			Left,
			Right
		};
		constexpr short TrappedChest(eBlockFace Facing, enum Type Type)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Single) return 6623;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Left) return 6625;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Right) return 6627;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Single) return 6629;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Left) return 6631;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Right) return 6633;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Single) return 6635;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Left) return 6637;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Right) return 6639;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Type == Type::Single) return 6641;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Type == Type::Left) return 6643;
			return 6645;
		}
		short TrappedChest();
		eBlockFace Facing(short ID);
		enum Type Type(short ID);
	}
	namespace Tripwire
	{
		constexpr short Tripwire(bool Attached, bool Disarmed, bool East, bool North, bool Powered, bool South, bool West)
		{
			if (Attached && Disarmed && East && North && Powered && South && West) return 5275;
			if (Attached && Disarmed && East && North && Powered && South && !West) return 5276;
			if (Attached && Disarmed && East && North && Powered && !South && West) return 5277;
			if (Attached && Disarmed && East && North && Powered && !South && !West) return 5278;
			if (Attached && Disarmed && East && North && !Powered && South && West) return 5279;
			if (Attached && Disarmed && East && North && !Powered && South && !West) return 5280;
			if (Attached && Disarmed && East && North && !Powered && !South && West) return 5281;
			if (Attached && Disarmed && East && North && !Powered && !South && !West) return 5282;
			if (Attached && Disarmed && East && !North && Powered && South && West) return 5283;
			if (Attached && Disarmed && East && !North && Powered && South && !West) return 5284;
			if (Attached && Disarmed && East && !North && Powered && !South && West) return 5285;
			if (Attached && Disarmed && East && !North && Powered && !South && !West) return 5286;
			if (Attached && Disarmed && East && !North && !Powered && South && West) return 5287;
			if (Attached && Disarmed && East && !North && !Powered && South && !West) return 5288;
			if (Attached && Disarmed && East && !North && !Powered && !South && West) return 5289;
			if (Attached && Disarmed && East && !North && !Powered && !South && !West) return 5290;
			if (Attached && Disarmed && !East && North && Powered && South && West) return 5291;
			if (Attached && Disarmed && !East && North && Powered && South && !West) return 5292;
			if (Attached && Disarmed && !East && North && Powered && !South && West) return 5293;
			if (Attached && Disarmed && !East && North && Powered && !South && !West) return 5294;
			if (Attached && Disarmed && !East && North && !Powered && South && West) return 5295;
			if (Attached && Disarmed && !East && North && !Powered && South && !West) return 5296;
			if (Attached && Disarmed && !East && North && !Powered && !South && West) return 5297;
			if (Attached && Disarmed && !East && North && !Powered && !South && !West) return 5298;
			if (Attached && Disarmed && !East && !North && Powered && South && West) return 5299;
			if (Attached && Disarmed && !East && !North && Powered && South && !West) return 5300;
			if (Attached && Disarmed && !East && !North && Powered && !South && West) return 5301;
			if (Attached && Disarmed && !East && !North && Powered && !South && !West) return 5302;
			if (Attached && Disarmed && !East && !North && !Powered && South && West) return 5303;
			if (Attached && Disarmed && !East && !North && !Powered && South && !West) return 5304;
			if (Attached && Disarmed && !East && !North && !Powered && !South && West) return 5305;
			if (Attached && Disarmed && !East && !North && !Powered && !South && !West) return 5306;
			if (Attached && !Disarmed && East && North && Powered && South && West) return 5307;
			if (Attached && !Disarmed && East && North && Powered && South && !West) return 5308;
			if (Attached && !Disarmed && East && North && Powered && !South && West) return 5309;
			if (Attached && !Disarmed && East && North && Powered && !South && !West) return 5310;
			if (Attached && !Disarmed && East && North && !Powered && South && West) return 5311;
			if (Attached && !Disarmed && East && North && !Powered && South && !West) return 5312;
			if (Attached && !Disarmed && East && North && !Powered && !South && West) return 5313;
			if (Attached && !Disarmed && East && North && !Powered && !South && !West) return 5314;
			if (Attached && !Disarmed && East && !North && Powered && South && West) return 5315;
			if (Attached && !Disarmed && East && !North && Powered && South && !West) return 5316;
			if (Attached && !Disarmed && East && !North && Powered && !South && West) return 5317;
			if (Attached && !Disarmed && East && !North && Powered && !South && !West) return 5318;
			if (Attached && !Disarmed && East && !North && !Powered && South && West) return 5319;
			if (Attached && !Disarmed && East && !North && !Powered && South && !West) return 5320;
			if (Attached && !Disarmed && East && !North && !Powered && !South && West) return 5321;
			if (Attached && !Disarmed && East && !North && !Powered && !South && !West) return 5322;
			if (Attached && !Disarmed && !East && North && Powered && South && West) return 5323;
			if (Attached && !Disarmed && !East && North && Powered && South && !West) return 5324;
			if (Attached && !Disarmed && !East && North && Powered && !South && West) return 5325;
			if (Attached && !Disarmed && !East && North && Powered && !South && !West) return 5326;
			if (Attached && !Disarmed && !East && North && !Powered && South && West) return 5327;
			if (Attached && !Disarmed && !East && North && !Powered && South && !West) return 5328;
			if (Attached && !Disarmed && !East && North && !Powered && !South && West) return 5329;
			if (Attached && !Disarmed && !East && North && !Powered && !South && !West) return 5330;
			if (Attached && !Disarmed && !East && !North && Powered && South && West) return 5331;
			if (Attached && !Disarmed && !East && !North && Powered && South && !West) return 5332;
			if (Attached && !Disarmed && !East && !North && Powered && !South && West) return 5333;
			if (Attached && !Disarmed && !East && !North && Powered && !South && !West) return 5334;
			if (Attached && !Disarmed && !East && !North && !Powered && South && West) return 5335;
			if (Attached && !Disarmed && !East && !North && !Powered && South && !West) return 5336;
			if (Attached && !Disarmed && !East && !North && !Powered && !South && West) return 5337;
			if (Attached && !Disarmed && !East && !North && !Powered && !South && !West) return 5338;
			if (!Attached && Disarmed && East && North && Powered && South && West) return 5339;
			if (!Attached && Disarmed && East && North && Powered && South && !West) return 5340;
			if (!Attached && Disarmed && East && North && Powered && !South && West) return 5341;
			if (!Attached && Disarmed && East && North && Powered && !South && !West) return 5342;
			if (!Attached && Disarmed && East && North && !Powered && South && West) return 5343;
			if (!Attached && Disarmed && East && North && !Powered && South && !West) return 5344;
			if (!Attached && Disarmed && East && North && !Powered && !South && West) return 5345;
			if (!Attached && Disarmed && East && North && !Powered && !South && !West) return 5346;
			if (!Attached && Disarmed && East && !North && Powered && South && West) return 5347;
			if (!Attached && Disarmed && East && !North && Powered && South && !West) return 5348;
			if (!Attached && Disarmed && East && !North && Powered && !South && West) return 5349;
			if (!Attached && Disarmed && East && !North && Powered && !South && !West) return 5350;
			if (!Attached && Disarmed && East && !North && !Powered && South && West) return 5351;
			if (!Attached && Disarmed && East && !North && !Powered && South && !West) return 5352;
			if (!Attached && Disarmed && East && !North && !Powered && !South && West) return 5353;
			if (!Attached && Disarmed && East && !North && !Powered && !South && !West) return 5354;
			if (!Attached && Disarmed && !East && North && Powered && South && West) return 5355;
			if (!Attached && Disarmed && !East && North && Powered && South && !West) return 5356;
			if (!Attached && Disarmed && !East && North && Powered && !South && West) return 5357;
			if (!Attached && Disarmed && !East && North && Powered && !South && !West) return 5358;
			if (!Attached && Disarmed && !East && North && !Powered && South && West) return 5359;
			if (!Attached && Disarmed && !East && North && !Powered && South && !West) return 5360;
			if (!Attached && Disarmed && !East && North && !Powered && !South && West) return 5361;
			if (!Attached && Disarmed && !East && North && !Powered && !South && !West) return 5362;
			if (!Attached && Disarmed && !East && !North && Powered && South && West) return 5363;
			if (!Attached && Disarmed && !East && !North && Powered && South && !West) return 5364;
			if (!Attached && Disarmed && !East && !North && Powered && !South && West) return 5365;
			if (!Attached && Disarmed && !East && !North && Powered && !South && !West) return 5366;
			if (!Attached && Disarmed && !East && !North && !Powered && South && West) return 5367;
			if (!Attached && Disarmed && !East && !North && !Powered && South && !West) return 5368;
			if (!Attached && Disarmed && !East && !North && !Powered && !South && West) return 5369;
			if (!Attached && Disarmed && !East && !North && !Powered && !South && !West) return 5370;
			if (!Attached && !Disarmed && East && North && Powered && South && West) return 5371;
			if (!Attached && !Disarmed && East && North && Powered && South && !West) return 5372;
			if (!Attached && !Disarmed && East && North && Powered && !South && West) return 5373;
			if (!Attached && !Disarmed && East && North && Powered && !South && !West) return 5374;
			if (!Attached && !Disarmed && East && North && !Powered && South && West) return 5375;
			if (!Attached && !Disarmed && East && North && !Powered && South && !West) return 5376;
			if (!Attached && !Disarmed && East && North && !Powered && !South && West) return 5377;
			if (!Attached && !Disarmed && East && North && !Powered && !South && !West) return 5378;
			if (!Attached && !Disarmed && East && !North && Powered && South && West) return 5379;
			if (!Attached && !Disarmed && East && !North && Powered && South && !West) return 5380;
			if (!Attached && !Disarmed && East && !North && Powered && !South && West) return 5381;
			if (!Attached && !Disarmed && East && !North && Powered && !South && !West) return 5382;
			if (!Attached && !Disarmed && East && !North && !Powered && South && West) return 5383;
			if (!Attached && !Disarmed && East && !North && !Powered && South && !West) return 5384;
			if (!Attached && !Disarmed && East && !North && !Powered && !South && West) return 5385;
			if (!Attached && !Disarmed && East && !North && !Powered && !South && !West) return 5386;
			if (!Attached && !Disarmed && !East && North && Powered && South && West) return 5387;
			if (!Attached && !Disarmed && !East && North && Powered && South && !West) return 5388;
			if (!Attached && !Disarmed && !East && North && Powered && !South && West) return 5389;
			if (!Attached && !Disarmed && !East && North && Powered && !South && !West) return 5390;
			if (!Attached && !Disarmed && !East && North && !Powered && South && West) return 5391;
			if (!Attached && !Disarmed && !East && North && !Powered && South && !West) return 5392;
			if (!Attached && !Disarmed && !East && North && !Powered && !South && West) return 5393;
			if (!Attached && !Disarmed && !East && North && !Powered && !South && !West) return 5394;
			if (!Attached && !Disarmed && !East && !North && Powered && South && West) return 5395;
			if (!Attached && !Disarmed && !East && !North && Powered && South && !West) return 5396;
			if (!Attached && !Disarmed && !East && !North && Powered && !South && West) return 5397;
			if (!Attached && !Disarmed && !East && !North && Powered && !South && !West) return 5398;
			if (!Attached && !Disarmed && !East && !North && !Powered && South && West) return 5399;
			if (!Attached && !Disarmed && !East && !North && !Powered && South && !West) return 5400;
			if (!Attached && !Disarmed && !East && !North && !Powered && !South && West) return 5401;
			return 5402;
		}
		short Tripwire();
		bool Attached(short ID);
		bool Disarmed(short ID);
		bool East(short ID);
		bool North(short ID);
		bool Powered(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace TripwireHook
	{
		constexpr short TripwireHook(bool Attached, eBlockFace Facing, bool Powered)
		{
			if (Attached && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 5259;
			if (Attached && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 5260;
			if (Attached && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 5261;
			if (Attached && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 5262;
			if (Attached && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 5263;
			if (Attached && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 5264;
			if (Attached && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 5265;
			if (Attached && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 5266;
			if (!Attached && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 5267;
			if (!Attached && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 5268;
			if (!Attached && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 5269;
			if (!Attached && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 5270;
			if (!Attached && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 5271;
			if (!Attached && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 5272;
			if (!Attached && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 5273;
			return 5274;
		}
		short TripwireHook();
		bool Attached(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace TubeCoral
	{
		constexpr short TubeCoral()
		{
			return 9531;
		}
	}
	namespace TubeCoralBlock
	{
		constexpr short TubeCoralBlock()
		{
			return 9515;
		}
	}
	namespace TubeCoralFan
	{
		constexpr short TubeCoralFan()
		{
			return 9551;
		}
	}
	namespace TubeCoralWallFan
	{
		constexpr short TubeCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9601;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9603;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9605;
			return 9607;
		}
		short TubeCoralWallFan();
		eBlockFace Facing(short ID);
	}
	namespace TurtleEgg
	{
		constexpr short TurtleEgg(unsigned char Eggs, unsigned char Hatch)
		{
			if (Eggs == 1 && Hatch == 0) return 9498;
			if (Eggs == 1 && Hatch == 1) return 9499;
			if (Eggs == 1 && Hatch == 2) return 9500;
			if (Eggs == 2 && Hatch == 0) return 9501;
			if (Eggs == 2 && Hatch == 1) return 9502;
			if (Eggs == 2 && Hatch == 2) return 9503;
			if (Eggs == 3 && Hatch == 0) return 9504;
			if (Eggs == 3 && Hatch == 1) return 9505;
			if (Eggs == 3 && Hatch == 2) return 9506;
			if (Eggs == 4 && Hatch == 0) return 9507;
			if (Eggs == 4 && Hatch == 1) return 9508;
			return 9509;
		}
		short TurtleEgg();
		unsigned char Eggs(short ID);
		unsigned char Hatch(short ID);
	}
	namespace TwistingVines
	{
		constexpr short TwistingVines(unsigned char Age)
		{
			if (Age == 0) return 15017;
			if (Age == 1) return 15018;
			if (Age == 2) return 15019;
			if (Age == 3) return 15020;
			if (Age == 4) return 15021;
			if (Age == 5) return 15022;
			if (Age == 6) return 15023;
			if (Age == 7) return 15024;
			if (Age == 8) return 15025;
			if (Age == 9) return 15026;
			if (Age == 10) return 15027;
			if (Age == 11) return 15028;
			if (Age == 12) return 15029;
			if (Age == 13) return 15030;
			if (Age == 14) return 15031;
			if (Age == 15) return 15032;
			if (Age == 16) return 15033;
			if (Age == 17) return 15034;
			if (Age == 18) return 15035;
			if (Age == 19) return 15036;
			if (Age == 20) return 15037;
			if (Age == 21) return 15038;
			if (Age == 22) return 15039;
			if (Age == 23) return 15040;
			if (Age == 24) return 15041;
			return 15042;
		}
		short TwistingVines();
		unsigned char Age(short ID);
	}
	namespace TwistingVinesPlant
	{
		constexpr short TwistingVinesPlant()
		{
			return 15043;
		}
	}
	namespace Vine
	{
		constexpr short Vine(bool East, bool North, bool South, bool Up, bool West)
		{
			if (East && North && South && Up && West) return 4788;
			if (East && North && South && Up && !West) return 4789;
			if (East && North && South && !Up && West) return 4790;
			if (East && North && South && !Up && !West) return 4791;
			if (East && North && !South && Up && West) return 4792;
			if (East && North && !South && Up && !West) return 4793;
			if (East && North && !South && !Up && West) return 4794;
			if (East && North && !South && !Up && !West) return 4795;
			if (East && !North && South && Up && West) return 4796;
			if (East && !North && South && Up && !West) return 4797;
			if (East && !North && South && !Up && West) return 4798;
			if (East && !North && South && !Up && !West) return 4799;
			if (East && !North && !South && Up && West) return 4800;
			if (East && !North && !South && Up && !West) return 4801;
			if (East && !North && !South && !Up && West) return 4802;
			if (East && !North && !South && !Up && !West) return 4803;
			if (!East && North && South && Up && West) return 4804;
			if (!East && North && South && Up && !West) return 4805;
			if (!East && North && South && !Up && West) return 4806;
			if (!East && North && South && !Up && !West) return 4807;
			if (!East && North && !South && Up && West) return 4808;
			if (!East && North && !South && Up && !West) return 4809;
			if (!East && North && !South && !Up && West) return 4810;
			if (!East && North && !South && !Up && !West) return 4811;
			if (!East && !North && South && Up && West) return 4812;
			if (!East && !North && South && Up && !West) return 4813;
			if (!East && !North && South && !Up && West) return 4814;
			if (!East && !North && South && !Up && !West) return 4815;
			if (!East && !North && !South && Up && West) return 4816;
			if (!East && !North && !South && Up && !West) return 4817;
			if (!East && !North && !South && !Up && West) return 4818;
			return 4819;
		}
		short Vine();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace VoidAir
	{
		constexpr short VoidAir()
		{
			return 9665;
		}
	}
	namespace WallTorch
	{
		constexpr short WallTorch(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1436;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1437;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 1438;
			return 1439;
		}
		short WallTorch();
		eBlockFace Facing(short ID);
	}
	namespace WarpedButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short WarpedButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 15503;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 15504;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 15505;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 15506;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 15507;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 15508;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 15509;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 15510;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 15511;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 15512;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 15513;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 15514;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 15515;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 15516;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 15517;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 15518;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 15519;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 15520;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 15521;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 15522;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 15523;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 15524;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 15525;
			return 15526;
		}
		short WarpedButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace WarpedDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short WarpedDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 15591;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 15592;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 15593;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 15594;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 15595;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 15596;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 15597;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 15598;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 15599;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 15600;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 15601;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 15602;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 15603;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 15604;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 15605;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 15606;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 15607;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 15608;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 15609;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 15610;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 15611;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 15612;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 15613;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 15614;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 15615;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 15616;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 15617;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 15618;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 15619;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 15620;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 15621;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 15622;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 15623;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 15624;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 15625;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 15626;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 15627;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 15628;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 15629;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 15630;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 15631;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 15632;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 15633;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 15634;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 15635;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 15636;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 15637;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Lower && Hinge == Hinge::Right && !Open && !Powered) return 15638;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && Powered) return 15639;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && Open && !Powered) return 15640;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && Powered) return 15641;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Left && !Open && !Powered) return 15642;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && Powered) return 15643;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && Open && !Powered) return 15644;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && Powered) return 15645;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Upper && Hinge == Hinge::Right && !Open && !Powered) return 15646;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && Powered) return 15647;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && Open && !Powered) return 15648;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && Powered) return 15649;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Left && !Open && !Powered) return 15650;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && Powered) return 15651;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && Open && !Powered) return 15652;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Lower && Hinge == Hinge::Right && !Open && Powered) return 15653;
			return 15654;
		}
		short WarpedDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace WarpedFence
	{
		constexpr short WarpedFence(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 15097;
			if (East && North && South && !West) return 15098;
			if (East && North && !South && West) return 15101;
			if (East && North && !South && !West) return 15102;
			if (East && !North && South && West) return 15105;
			if (East && !North && South && !West) return 15106;
			if (East && !North && !South && West) return 15109;
			if (East && !North && !South && !West) return 15110;
			if (!East && North && South && West) return 15113;
			if (!East && North && South && !West) return 15114;
			if (!East && North && !South && West) return 15117;
			if (!East && North && !South && !West) return 15118;
			if (!East && !North && South && West) return 15121;
			if (!East && !North && South && !West) return 15122;
			if (!East && !North && !South && West) return 15125;
			return 15126;
		}
		short WarpedFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace WarpedFenceGate
	{
		constexpr short WarpedFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && Powered) return 15287;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && Open && !Powered) return 15288;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && Powered) return 15289;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && InWall && !Open && !Powered) return 15290;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && Powered) return 15291;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && Open && !Powered) return 15292;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && Powered) return 15293;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !InWall && !Open && !Powered) return 15294;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && Powered) return 15295;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && Open && !Powered) return 15296;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && Powered) return 15297;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && InWall && !Open && !Powered) return 15298;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && Powered) return 15299;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && Open && !Powered) return 15300;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && Powered) return 15301;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !InWall && !Open && !Powered) return 15302;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && Powered) return 15303;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && Open && !Powered) return 15304;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && Powered) return 15305;
			if (Facing == eBlockFace::BLOCK_FACE_XM && InWall && !Open && !Powered) return 15306;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && Powered) return 15307;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && Open && !Powered) return 15308;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && Powered) return 15309;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !InWall && !Open && !Powered) return 15310;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && Powered) return 15311;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && Open && !Powered) return 15312;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && Powered) return 15313;
			if (Facing == eBlockFace::BLOCK_FACE_XP && InWall && !Open && !Powered) return 15314;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && Powered) return 15315;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && Open && !Powered) return 15316;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !InWall && !Open && Powered) return 15317;
			return 15318;
		}
		short WarpedFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace WarpedFungus
	{
		constexpr short WarpedFungus()
		{
			return 14971;
		}
	}
	namespace WarpedHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short WarpedHyphae(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14964;
			if (Axis == Axis::Y) return 14965;
			return 14966;
		}
		short WarpedHyphae();
		enum Axis Axis(short ID);
	}
	namespace WarpedNylium
	{
		constexpr short WarpedNylium()
		{
			return 14970;
		}
	}
	namespace WarpedPlanks
	{
		constexpr short WarpedPlanks()
		{
			return 15046;
		}
	}
	namespace WarpedPressurePlate
	{
		constexpr short WarpedPressurePlate(bool Powered)
		{
			if (Powered) return 15061;
			return 15062;
		}
		short WarpedPressurePlate();
		bool Powered(short ID);
	}
	namespace WarpedRoots
	{
		constexpr short WarpedRoots()
		{
			return 14973;
		}
	}
	namespace WarpedSign
	{
		constexpr short WarpedSign(unsigned char Rotation)
		{
			if (Rotation == 0) return 15688;
			if (Rotation == 1) return 15690;
			if (Rotation == 2) return 15692;
			if (Rotation == 3) return 15694;
			if (Rotation == 4) return 15696;
			if (Rotation == 5) return 15698;
			if (Rotation == 6) return 15700;
			if (Rotation == 7) return 15702;
			if (Rotation == 8) return 15704;
			if (Rotation == 9) return 15706;
			if (Rotation == 10) return 15708;
			if (Rotation == 11) return 15710;
			if (Rotation == 12) return 15712;
			if (Rotation == 13) return 15714;
			if (Rotation == 14) return 15716;
			return 15718;
		}
		short WarpedSign();
		unsigned char Rotation(short ID);
	}
	namespace WarpedSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short WarpedSlab(enum Type Type)
		{
			if (Type == Type::Top) return 15054;
			if (Type == Type::Bottom) return 15056;
			return 15058;
		}
		short WarpedSlab();
		enum Type Type(short ID);
	}
	namespace WarpedStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short WarpedStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::Straight) return 15400;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerLeft) return 15402;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::InnerRight) return 15404;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterLeft) return 15406;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Shape == Shape::OuterRight) return 15408;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::Straight) return 15410;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15412;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::InnerRight) return 15414;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15416;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Shape == Shape::OuterRight) return 15418;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::Straight) return 15420;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerLeft) return 15422;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::InnerRight) return 15424;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterLeft) return 15426;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Shape == Shape::OuterRight) return 15428;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::Straight) return 15430;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15432;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::InnerRight) return 15434;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15436;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Shape == Shape::OuterRight) return 15438;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::Straight) return 15440;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerLeft) return 15442;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::InnerRight) return 15444;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterLeft) return 15446;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Shape == Shape::OuterRight) return 15448;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::Straight) return 15450;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15452;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::InnerRight) return 15454;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15456;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Shape == Shape::OuterRight) return 15458;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::Straight) return 15460;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerLeft) return 15462;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::InnerRight) return 15464;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterLeft) return 15466;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Shape == Shape::OuterRight) return 15468;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::Straight) return 15470;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerLeft) return 15472;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::InnerRight) return 15474;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Shape == Shape::OuterLeft) return 15476;
			return 15478;
		}
		short WarpedStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
	}
	namespace WarpedStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short WarpedStem(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14958;
			if (Axis == Axis::Y) return 14959;
			return 14960;
		}
		short WarpedStem();
		enum Axis Axis(short ID);
	}
	namespace WarpedTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short WarpedTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && Powered) return 15192;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && Open && !Powered) return 15194;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && Powered) return 15196;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Top && !Open && !Powered) return 15198;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && Powered) return 15200;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && Open && !Powered) return 15202;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && Powered) return 15204;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Half == Half::Bottom && !Open && !Powered) return 15206;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && Powered) return 15208;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && Open && !Powered) return 15210;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && Powered) return 15212;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Top && !Open && !Powered) return 15214;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && Powered) return 15216;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && Open && !Powered) return 15218;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && Powered) return 15220;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Half == Half::Bottom && !Open && !Powered) return 15222;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && Powered) return 15224;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && Open && !Powered) return 15226;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && Powered) return 15228;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Top && !Open && !Powered) return 15230;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && Powered) return 15232;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && Open && !Powered) return 15234;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && Powered) return 15236;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Half == Half::Bottom && !Open && !Powered) return 15238;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && Powered) return 15240;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && Open && !Powered) return 15242;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && Powered) return 15244;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Top && !Open && !Powered) return 15246;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && Powered) return 15248;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && Open && !Powered) return 15250;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Half == Half::Bottom && !Open && Powered) return 15252;
			return 15254;
		}
		short WarpedTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace WarpedWallSign
	{
		constexpr short WarpedWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 15728;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 15730;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 15732;
			return 15734;
		}
		short WarpedWallSign();
		eBlockFace Facing(short ID);
	}
	namespace WarpedWartBlock
	{
		constexpr short WarpedWartBlock()
		{
			return 14972;
		}
	}
	namespace Water
	{
		constexpr short Water(unsigned char Level)
		{
			if (Level == 0) return 34;
			if (Level == 1) return 35;
			if (Level == 2) return 36;
			if (Level == 3) return 37;
			if (Level == 4) return 38;
			if (Level == 5) return 39;
			if (Level == 6) return 40;
			if (Level == 7) return 41;
			if (Level == 8) return 42;
			if (Level == 9) return 43;
			if (Level == 10) return 44;
			if (Level == 11) return 45;
			if (Level == 12) return 46;
			if (Level == 13) return 47;
			if (Level == 14) return 48;
			return 49;
		}
		short Water();
		unsigned char Level(short ID);
	}
	namespace WeepingVines
	{
		constexpr short WeepingVines(unsigned char Age)
		{
			if (Age == 0) return 14990;
			if (Age == 1) return 14991;
			if (Age == 2) return 14992;
			if (Age == 3) return 14993;
			if (Age == 4) return 14994;
			if (Age == 5) return 14995;
			if (Age == 6) return 14996;
			if (Age == 7) return 14997;
			if (Age == 8) return 14998;
			if (Age == 9) return 14999;
			if (Age == 10) return 15000;
			if (Age == 11) return 15001;
			if (Age == 12) return 15002;
			if (Age == 13) return 15003;
			if (Age == 14) return 15004;
			if (Age == 15) return 15005;
			if (Age == 16) return 15006;
			if (Age == 17) return 15007;
			if (Age == 18) return 15008;
			if (Age == 19) return 15009;
			if (Age == 20) return 15010;
			if (Age == 21) return 15011;
			if (Age == 22) return 15012;
			if (Age == 23) return 15013;
			if (Age == 24) return 15014;
			return 15015;
		}
		short WeepingVines();
		unsigned char Age(short ID);
	}
	namespace WeepingVinesPlant
	{
		constexpr short WeepingVinesPlant()
		{
			return 15016;
		}
	}
	namespace WetSponge
	{
		constexpr short WetSponge()
		{
			return 230;
		}
	}
	namespace Wheat
	{
		constexpr short Wheat(unsigned char Age)
		{
			if (Age == 0) return 3357;
			if (Age == 1) return 3358;
			if (Age == 2) return 3359;
			if (Age == 3) return 3360;
			if (Age == 4) return 3361;
			if (Age == 5) return 3362;
			if (Age == 6) return 3363;
			return 3364;
		}
		short Wheat();
		unsigned char Age(short ID);
	}
	namespace WhiteBanner
	{
		constexpr short WhiteBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 7897;
			if (Rotation == 1) return 7898;
			if (Rotation == 2) return 7899;
			if (Rotation == 3) return 7900;
			if (Rotation == 4) return 7901;
			if (Rotation == 5) return 7902;
			if (Rotation == 6) return 7903;
			if (Rotation == 7) return 7904;
			if (Rotation == 8) return 7905;
			if (Rotation == 9) return 7906;
			if (Rotation == 10) return 7907;
			if (Rotation == 11) return 7908;
			if (Rotation == 12) return 7909;
			if (Rotation == 13) return 7910;
			if (Rotation == 14) return 7911;
			return 7912;
		}
		short WhiteBanner();
		unsigned char Rotation(short ID);
	}
	namespace WhiteBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short WhiteBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1049;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1050;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1051;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1052;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1053;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1054;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1055;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1056;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1057;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1058;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1059;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1060;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1061;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1062;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1063;
			return 1064;
		}
		short WhiteBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace WhiteCarpet
	{
		constexpr short WhiteCarpet()
		{
			return 7866;
		}
	}
	namespace WhiteConcrete
	{
		constexpr short WhiteConcrete()
		{
			return 9438;
		}
	}
	namespace WhiteConcretePowder
	{
		constexpr short WhiteConcretePowder()
		{
			return 9454;
		}
	}
	namespace WhiteGlazedTerracotta
	{
		constexpr short WhiteGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9374;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9375;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9376;
			return 9377;
		}
		short WhiteGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace WhiteShulkerBox
	{
		constexpr short WhiteShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9278;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9279;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9280;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9281;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9282;
			return 9283;
		}
		short WhiteShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace WhiteStainedGlass
	{
		constexpr short WhiteStainedGlass()
		{
			return 4095;
		}
	}
	namespace WhiteStainedGlassPane
	{
		constexpr short WhiteStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 6865;
			if (East && North && South && !West) return 6866;
			if (East && North && !South && West) return 6869;
			if (East && North && !South && !West) return 6870;
			if (East && !North && South && West) return 6873;
			if (East && !North && South && !West) return 6874;
			if (East && !North && !South && West) return 6877;
			if (East && !North && !South && !West) return 6878;
			if (!East && North && South && West) return 6881;
			if (!East && North && South && !West) return 6882;
			if (!East && North && !South && West) return 6885;
			if (!East && North && !South && !West) return 6886;
			if (!East && !North && South && West) return 6889;
			if (!East && !North && South && !West) return 6890;
			if (!East && !North && !South && West) return 6893;
			return 6894;
		}
		short WhiteStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace WhiteTerracotta
	{
		constexpr short WhiteTerracotta()
		{
			return 6847;
		}
	}
	namespace WhiteTulip
	{
		constexpr short WhiteTulip()
		{
			return 1419;
		}
	}
	namespace WhiteWallBanner
	{
		constexpr short WhiteWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8153;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8154;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8155;
			return 8156;
		}
		short WhiteWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace WhiteWool
	{
		constexpr short WhiteWool()
		{
			return 1384;
		}
	}
	namespace WitherRose
	{
		constexpr short WitherRose()
		{
			return 1423;
		}
	}
	namespace WitherSkeletonSkull
	{
		constexpr short WitherSkeletonSkull(unsigned char Rotation)
		{
			if (Rotation == 0) return 6510;
			if (Rotation == 1) return 6511;
			if (Rotation == 2) return 6512;
			if (Rotation == 3) return 6513;
			if (Rotation == 4) return 6514;
			if (Rotation == 5) return 6515;
			if (Rotation == 6) return 6516;
			if (Rotation == 7) return 6517;
			if (Rotation == 8) return 6518;
			if (Rotation == 9) return 6519;
			if (Rotation == 10) return 6520;
			if (Rotation == 11) return 6521;
			if (Rotation == 12) return 6522;
			if (Rotation == 13) return 6523;
			if (Rotation == 14) return 6524;
			return 6525;
		}
		short WitherSkeletonSkull();
		unsigned char Rotation(short ID);
	}
	namespace WitherSkeletonWallSkull
	{
		constexpr short WitherSkeletonWallSkull(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6526;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6527;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6528;
			return 6529;
		}
		short WitherSkeletonWallSkull();
		eBlockFace Facing(short ID);
	}
	namespace YellowBanner
	{
		constexpr short YellowBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 7961;
			if (Rotation == 1) return 7962;
			if (Rotation == 2) return 7963;
			if (Rotation == 3) return 7964;
			if (Rotation == 4) return 7965;
			if (Rotation == 5) return 7966;
			if (Rotation == 6) return 7967;
			if (Rotation == 7) return 7968;
			if (Rotation == 8) return 7969;
			if (Rotation == 9) return 7970;
			if (Rotation == 10) return 7971;
			if (Rotation == 11) return 7972;
			if (Rotation == 12) return 7973;
			if (Rotation == 13) return 7974;
			if (Rotation == 14) return 7975;
			return 7976;
		}
		short YellowBanner();
		unsigned char Rotation(short ID);
	}
	namespace YellowBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short YellowBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Head) return 1113;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Occupied && Part == Part::Foot) return 1114;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Head) return 1115;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Occupied && Part == Part::Foot) return 1116;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Head) return 1117;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Occupied && Part == Part::Foot) return 1118;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Head) return 1119;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Occupied && Part == Part::Foot) return 1120;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Head) return 1121;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Occupied && Part == Part::Foot) return 1122;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Head) return 1123;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Occupied && Part == Part::Foot) return 1124;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Head) return 1125;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Occupied && Part == Part::Foot) return 1126;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Occupied && Part == Part::Head) return 1127;
			return 1128;
		}
		short YellowBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace YellowCarpet
	{
		constexpr short YellowCarpet()
		{
			return 7870;
		}
	}
	namespace YellowConcrete
	{
		constexpr short YellowConcrete()
		{
			return 9442;
		}
	}
	namespace YellowConcretePowder
	{
		constexpr short YellowConcretePowder()
		{
			return 9458;
		}
	}
	namespace YellowGlazedTerracotta
	{
		constexpr short YellowGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9390;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9391;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9392;
			return 9393;
		}
		short YellowGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace YellowShulkerBox
	{
		constexpr short YellowShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9302;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9303;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9304;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9305;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9306;
			return 9307;
		}
		short YellowShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace YellowStainedGlass
	{
		constexpr short YellowStainedGlass()
		{
			return 4099;
		}
	}
	namespace YellowStainedGlassPane
	{
		constexpr short YellowStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (East && North && South && West) return 6993;
			if (East && North && South && !West) return 6994;
			if (East && North && !South && West) return 6997;
			if (East && North && !South && !West) return 6998;
			if (East && !North && South && West) return 7001;
			if (East && !North && South && !West) return 7002;
			if (East && !North && !South && West) return 7005;
			if (East && !North && !South && !West) return 7006;
			if (!East && North && South && West) return 7009;
			if (!East && North && South && !West) return 7010;
			if (!East && North && !South && West) return 7013;
			if (!East && North && !South && !West) return 7014;
			if (!East && !North && South && West) return 7017;
			if (!East && !North && South && !West) return 7018;
			if (!East && !North && !South && West) return 7021;
			return 7022;
		}
		short YellowStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace YellowTerracotta
	{
		constexpr short YellowTerracotta()
		{
			return 6851;
		}
	}
	namespace YellowWallBanner
	{
		constexpr short YellowWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8169;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8170;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8171;
			return 8172;
		}
		short YellowWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace YellowWool
	{
		constexpr short YellowWool()
		{
			return 1388;
		}
	}
	namespace ZombieHead
	{
		constexpr short ZombieHead(unsigned char Rotation)
		{
			if (Rotation == 0) return 6530;
			if (Rotation == 1) return 6531;
			if (Rotation == 2) return 6532;
			if (Rotation == 3) return 6533;
			if (Rotation == 4) return 6534;
			if (Rotation == 5) return 6535;
			if (Rotation == 6) return 6536;
			if (Rotation == 7) return 6537;
			if (Rotation == 8) return 6538;
			if (Rotation == 9) return 6539;
			if (Rotation == 10) return 6540;
			if (Rotation == 11) return 6541;
			if (Rotation == 12) return 6542;
			if (Rotation == 13) return 6543;
			if (Rotation == 14) return 6544;
			return 6545;
		}
		short ZombieHead();
		unsigned char Rotation(short ID);
	}
	namespace ZombieWallHead
	{
		constexpr short ZombieWallHead(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6546;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6547;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6548;
			return 6549;
		}
		short ZombieWallHead();
		eBlockFace Facing(short ID);
	}
}