
/*
 * Copyright 2011-2022 Cuberite Contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#pragma once

#include "Globals.h"
#include "BlockState.h"
#include "Defines.h"

namespace Block
{
	namespace AcaciaButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState AcaciaButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6442;
					else return 6443;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6444;
					else return 6445;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6446;
					else return 6447;
				else
					if (Powered) return 6448;
					else return 6449;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6450;
					else return 6451;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6452;
					else return 6453;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6454;
					else return 6455;
				else
					if (Powered) return 6456;
					else return 6457;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6458;
					else return 6459;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6460;
					else return 6461;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6462;
					else return 6463;
				else
					if (Powered) return 6464;
					else return 6465;
		}
		BlockState AcaciaButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace AcaciaDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr BlockState AcaciaDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8930;
							else return 8931;
						else
							if (Powered) return 8932;
							else return 8933;
					else
						if (Open)
							if (Powered) return 8934;
							else return 8935;
						else
							if (Powered) return 8936;
							else return 8937;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8938;
							else return 8939;
						else
							if (Powered) return 8940;
							else return 8941;
					else
						if (Open)
							if (Powered) return 8942;
							else return 8943;
						else
							if (Powered) return 8944;
							else return 8945;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8946;
							else return 8947;
						else
							if (Powered) return 8948;
							else return 8949;
					else
						if (Open)
							if (Powered) return 8950;
							else return 8951;
						else
							if (Powered) return 8952;
							else return 8953;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8954;
							else return 8955;
						else
							if (Powered) return 8956;
							else return 8957;
					else
						if (Open)
							if (Powered) return 8958;
							else return 8959;
						else
							if (Powered) return 8960;
							else return 8961;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8962;
							else return 8963;
						else
							if (Powered) return 8964;
							else return 8965;
					else
						if (Open)
							if (Powered) return 8966;
							else return 8967;
						else
							if (Powered) return 8968;
							else return 8969;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8970;
							else return 8971;
						else
							if (Powered) return 8972;
							else return 8973;
					else
						if (Open)
							if (Powered) return 8974;
							else return 8975;
						else
							if (Powered) return 8976;
							else return 8977;
			else
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8978;
							else return 8979;
						else
							if (Powered) return 8980;
							else return 8981;
					else
						if (Open)
							if (Powered) return 8982;
							else return 8983;
						else
							if (Powered) return 8984;
							else return 8985;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8986;
							else return 8987;
						else
							if (Powered) return 8988;
							else return 8989;
					else
						if (Open)
							if (Powered) return 8990;
							else return 8991;
						else
							if (Powered) return 8992;
							else return 8993;
		}
		BlockState AcaciaDoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Hinge Hinge(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace AcaciaFence
	{
		constexpr BlockState AcaciaFence(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 8676;
						else return 8677;
					else
						if (West) return 8680;
						else return 8681;
				else
					if (South)
						if (West) return 8684;
						else return 8685;
					else
						if (West) return 8688;
						else return 8689;
			else
				if (North)
					if (South)
						if (West) return 8692;
						else return 8693;
					else
						if (West) return 8696;
						else return 8697;
				else
					if (South)
						if (West) return 8700;
						else return 8701;
					else
						if (West) return 8704;
						else return 8705;
		}
		BlockState AcaciaFence();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace AcaciaFenceGate
	{
		constexpr BlockState AcaciaFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (InWall)
					if (Open)
						if (Powered) return 8514;
						else return 8515;
					else
						if (Powered) return 8516;
						else return 8517;
				else
					if (Open)
						if (Powered) return 8518;
						else return 8519;
					else
						if (Powered) return 8520;
						else return 8521;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (InWall)
					if (Open)
						if (Powered) return 8522;
						else return 8523;
					else
						if (Powered) return 8524;
						else return 8525;
				else
					if (Open)
						if (Powered) return 8526;
						else return 8527;
					else
						if (Powered) return 8528;
						else return 8529;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (InWall)
					if (Open)
						if (Powered) return 8530;
						else return 8531;
					else
						if (Powered) return 8532;
						else return 8533;
				else
					if (Open)
						if (Powered) return 8534;
						else return 8535;
					else
						if (Powered) return 8536;
						else return 8537;
			else
				if (InWall)
					if (Open)
						if (Powered) return 8538;
						else return 8539;
					else
						if (Powered) return 8540;
						else return 8541;
				else
					if (Open)
						if (Powered) return 8542;
						else return 8543;
					else
						if (Powered) return 8544;
						else return 8545;
		}
		BlockState AcaciaFenceGate();
		eBlockFace Facing(BlockState Block);
		bool InWall(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace AcaciaLeaves
	{
		constexpr BlockState AcaciaLeaves(const unsigned char Distance, const bool Persistent)
		{
			if (Distance == 1)
				if (Persistent) return 201;
				else return 202;
			else if (Distance == 2)
				if (Persistent) return 203;
				else return 204;
			else if (Distance == 3)
				if (Persistent) return 205;
				else return 206;
			else if (Distance == 4)
				if (Persistent) return 207;
				else return 208;
			else if (Distance == 5)
				if (Persistent) return 209;
				else return 210;
			else if (Distance == 6)
				if (Persistent) return 211;
				else return 212;
			else
				if (Persistent) return 213;
				else return 214;
		}
		BlockState AcaciaLeaves();
		unsigned char Distance(BlockState Block);
		bool Persistent(BlockState Block);
	}
	namespace AcaciaLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState AcaciaLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 85;
			else if (Axis == Axis::Y) return 86;
			else return 87;
		}
		BlockState AcaciaLog();
		enum Axis Axis(BlockState Block);
	}
	namespace AcaciaPlanks
	{
		constexpr BlockState AcaciaPlanks()
		{
			return 19;
		}
	}
	namespace AcaciaPressurePlate
	{
		constexpr BlockState AcaciaPressurePlate(const bool Powered)
		{
			if (Powered) return 3881;
			else return 3882;
		}
		BlockState AcaciaPressurePlate();
		bool Powered(BlockState Block);
	}
	namespace AcaciaSapling
	{
		constexpr BlockState AcaciaSapling(const unsigned char Stage)
		{
			if (Stage == 0) return 29;
			else return 30;
		}
		BlockState AcaciaSapling();
		unsigned char Stage(BlockState Block);
	}
	namespace AcaciaSign
	{
		constexpr BlockState AcaciaSign(const unsigned char Rotation)
		{
			if (Rotation == 0) return 3478;
			else if (Rotation == 1) return 3480;
			else if (Rotation == 2) return 3482;
			else if (Rotation == 3) return 3484;
			else if (Rotation == 4) return 3486;
			else if (Rotation == 5) return 3488;
			else if (Rotation == 6) return 3490;
			else if (Rotation == 7) return 3492;
			else if (Rotation == 8) return 3494;
			else if (Rotation == 9) return 3496;
			else if (Rotation == 10) return 3498;
			else if (Rotation == 11) return 3500;
			else if (Rotation == 12) return 3502;
			else if (Rotation == 13) return 3504;
			else if (Rotation == 14) return 3506;
			else return 3508;
		}
		BlockState AcaciaSign();
		unsigned char Rotation(BlockState Block);
	}
	namespace AcaciaSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState AcaciaSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8325;
			else if (Type == Type::Bottom) return 8327;
			else return 8329;
		}
		BlockState AcaciaSlab();
		enum Type Type(BlockState Block);
	}
	namespace AcaciaStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState AcaciaStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7376;
					else if (Shape == Shape::InnerLeft) return 7378;
					else if (Shape == Shape::InnerRight) return 7380;
					else if (Shape == Shape::OuterLeft) return 7382;
					else return 7384;
				else
					if (Shape == Shape::Straight) return 7386;
					else if (Shape == Shape::InnerLeft) return 7388;
					else if (Shape == Shape::InnerRight) return 7390;
					else if (Shape == Shape::OuterLeft) return 7392;
					else return 7394;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7396;
					else if (Shape == Shape::InnerLeft) return 7398;
					else if (Shape == Shape::InnerRight) return 7400;
					else if (Shape == Shape::OuterLeft) return 7402;
					else return 7404;
				else
					if (Shape == Shape::Straight) return 7406;
					else if (Shape == Shape::InnerLeft) return 7408;
					else if (Shape == Shape::InnerRight) return 7410;
					else if (Shape == Shape::OuterLeft) return 7412;
					else return 7414;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7416;
					else if (Shape == Shape::InnerLeft) return 7418;
					else if (Shape == Shape::InnerRight) return 7420;
					else if (Shape == Shape::OuterLeft) return 7422;
					else return 7424;
				else
					if (Shape == Shape::Straight) return 7426;
					else if (Shape == Shape::InnerLeft) return 7428;
					else if (Shape == Shape::InnerRight) return 7430;
					else if (Shape == Shape::OuterLeft) return 7432;
					else return 7434;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7436;
					else if (Shape == Shape::InnerLeft) return 7438;
					else if (Shape == Shape::InnerRight) return 7440;
					else if (Shape == Shape::OuterLeft) return 7442;
					else return 7444;
				else
					if (Shape == Shape::Straight) return 7446;
					else if (Shape == Shape::InnerLeft) return 7448;
					else if (Shape == Shape::InnerRight) return 7450;
					else if (Shape == Shape::OuterLeft) return 7452;
					else return 7454;
		}
		BlockState AcaciaStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace AcaciaTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr BlockState AcaciaTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4368;
						else return 4370;
					else
						if (Powered) return 4372;
						else return 4374;
				else
					if (Open)
						if (Powered) return 4376;
						else return 4378;
					else
						if (Powered) return 4380;
						else return 4382;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4384;
						else return 4386;
					else
						if (Powered) return 4388;
						else return 4390;
				else
					if (Open)
						if (Powered) return 4392;
						else return 4394;
					else
						if (Powered) return 4396;
						else return 4398;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4400;
						else return 4402;
					else
						if (Powered) return 4404;
						else return 4406;
				else
					if (Open)
						if (Powered) return 4408;
						else return 4410;
					else
						if (Powered) return 4412;
						else return 4414;
			else
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4416;
						else return 4418;
					else
						if (Powered) return 4420;
						else return 4422;
				else
					if (Open)
						if (Powered) return 4424;
						else return 4426;
					else
						if (Powered) return 4428;
						else return 4430;
		}
		BlockState AcaciaTrapdoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace AcaciaWallSign
	{
		constexpr BlockState AcaciaWallSign(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3760;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3762;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3764;
			else return 3766;
		}
		BlockState AcaciaWallSign();
		eBlockFace Facing(BlockState Block);
	}
	namespace AcaciaWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState AcaciaWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 121;
			else if (Axis == Axis::Y) return 122;
			else return 123;
		}
		BlockState AcaciaWood();
		enum Axis Axis(BlockState Block);
	}
	namespace ActivatorRail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth
		};
		constexpr BlockState ActivatorRail(const bool Powered, const enum Shape Shape)
		{
			if (Powered)
				if (Shape == Shape::NorthSouth) return 6823;
				else if (Shape == Shape::EastWest) return 6824;
				else if (Shape == Shape::AscendingEast) return 6825;
				else if (Shape == Shape::AscendingWest) return 6826;
				else if (Shape == Shape::AscendingNorth) return 6827;
				else return 6828;
			else
				if (Shape == Shape::NorthSouth) return 6829;
				else if (Shape == Shape::EastWest) return 6830;
				else if (Shape == Shape::AscendingEast) return 6831;
				else if (Shape == Shape::AscendingWest) return 6832;
				else if (Shape == Shape::AscendingNorth) return 6833;
				else return 6834;
		}
		BlockState ActivatorRail();
		bool Powered(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace Air
	{
		constexpr BlockState Air()
		{
			return -0;
		}
	}
	namespace Allium
	{
		constexpr BlockState Allium()
		{
			return 1415;
		}
	}
	namespace AncientDebris
	{
		constexpr BlockState AncientDebris()
		{
			return 15827;
		}
	}
	namespace Andesite
	{
		constexpr BlockState Andesite()
		{
			return 6;
		}
	}
	namespace AndesiteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState AndesiteSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10844;
			else if (Type == Type::Bottom) return 10846;
			else return 10848;
		}
		BlockState AndesiteSlab();
		enum Type Type(BlockState Block);
	}
	namespace AndesiteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState AndesiteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10470;
					else if (Shape == Shape::InnerLeft) return 10472;
					else if (Shape == Shape::InnerRight) return 10474;
					else if (Shape == Shape::OuterLeft) return 10476;
					else return 10478;
				else
					if (Shape == Shape::Straight) return 10480;
					else if (Shape == Shape::InnerLeft) return 10482;
					else if (Shape == Shape::InnerRight) return 10484;
					else if (Shape == Shape::OuterLeft) return 10486;
					else return 10488;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10490;
					else if (Shape == Shape::InnerLeft) return 10492;
					else if (Shape == Shape::InnerRight) return 10494;
					else if (Shape == Shape::OuterLeft) return 10496;
					else return 10498;
				else
					if (Shape == Shape::Straight) return 10500;
					else if (Shape == Shape::InnerLeft) return 10502;
					else if (Shape == Shape::InnerRight) return 10504;
					else if (Shape == Shape::OuterLeft) return 10506;
					else return 10508;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10510;
					else if (Shape == Shape::InnerLeft) return 10512;
					else if (Shape == Shape::InnerRight) return 10514;
					else if (Shape == Shape::OuterLeft) return 10516;
					else return 10518;
				else
					if (Shape == Shape::Straight) return 10520;
					else if (Shape == Shape::InnerLeft) return 10522;
					else if (Shape == Shape::InnerRight) return 10524;
					else if (Shape == Shape::OuterLeft) return 10526;
					else return 10528;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10530;
					else if (Shape == Shape::InnerLeft) return 10532;
					else if (Shape == Shape::InnerRight) return 10534;
					else if (Shape == Shape::OuterLeft) return 10536;
					else return 10538;
				else
					if (Shape == Shape::Straight) return 10540;
					else if (Shape == Shape::InnerLeft) return 10542;
					else if (Shape == Shape::InnerRight) return 10544;
					else if (Shape == Shape::OuterLeft) return 10546;
					else return 10548;
		}
		BlockState AndesiteStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState AndesiteWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13138;
							else if (West == West::Low) return 13139;
							else return 13140;
						else
							if (West == West::None) return 13144;
							else if (West == West::Low) return 13145;
							else return 13146;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13150;
							else if (West == West::Low) return 13151;
							else return 13152;
						else
							if (West == West::None) return 13156;
							else if (West == West::Low) return 13157;
							else return 13158;
					else
						if (Up)
							if (West == West::None) return 13162;
							else if (West == West::Low) return 13163;
							else return 13164;
						else
							if (West == West::None) return 13168;
							else if (West == West::Low) return 13169;
							else return 13170;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13174;
							else if (West == West::Low) return 13175;
							else return 13176;
						else
							if (West == West::None) return 13180;
							else if (West == West::Low) return 13181;
							else return 13182;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13186;
							else if (West == West::Low) return 13187;
							else return 13188;
						else
							if (West == West::None) return 13192;
							else if (West == West::Low) return 13193;
							else return 13194;
					else
						if (Up)
							if (West == West::None) return 13198;
							else if (West == West::Low) return 13199;
							else return 13200;
						else
							if (West == West::None) return 13204;
							else if (West == West::Low) return 13205;
							else return 13206;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13210;
							else if (West == West::Low) return 13211;
							else return 13212;
						else
							if (West == West::None) return 13216;
							else if (West == West::Low) return 13217;
							else return 13218;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13222;
							else if (West == West::Low) return 13223;
							else return 13224;
						else
							if (West == West::None) return 13228;
							else if (West == West::Low) return 13229;
							else return 13230;
					else
						if (Up)
							if (West == West::None) return 13234;
							else if (West == West::Low) return 13235;
							else return 13236;
						else
							if (West == West::None) return 13240;
							else if (West == West::Low) return 13241;
							else return 13242;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13246;
							else if (West == West::Low) return 13247;
							else return 13248;
						else
							if (West == West::None) return 13252;
							else if (West == West::Low) return 13253;
							else return 13254;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13258;
							else if (West == West::Low) return 13259;
							else return 13260;
						else
							if (West == West::None) return 13264;
							else if (West == West::Low) return 13265;
							else return 13266;
					else
						if (Up)
							if (West == West::None) return 13270;
							else if (West == West::Low) return 13271;
							else return 13272;
						else
							if (West == West::None) return 13276;
							else if (West == West::Low) return 13277;
							else return 13278;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13282;
							else if (West == West::Low) return 13283;
							else return 13284;
						else
							if (West == West::None) return 13288;
							else if (West == West::Low) return 13289;
							else return 13290;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13294;
							else if (West == West::Low) return 13295;
							else return 13296;
						else
							if (West == West::None) return 13300;
							else if (West == West::Low) return 13301;
							else return 13302;
					else
						if (Up)
							if (West == West::None) return 13306;
							else if (West == West::Low) return 13307;
							else return 13308;
						else
							if (West == West::None) return 13312;
							else if (West == West::Low) return 13313;
							else return 13314;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13318;
							else if (West == West::Low) return 13319;
							else return 13320;
						else
							if (West == West::None) return 13324;
							else if (West == West::Low) return 13325;
							else return 13326;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13330;
							else if (West == West::Low) return 13331;
							else return 13332;
						else
							if (West == West::None) return 13336;
							else if (West == West::Low) return 13337;
							else return 13338;
					else
						if (Up)
							if (West == West::None) return 13342;
							else if (West == West::Low) return 13343;
							else return 13344;
						else
							if (West == West::None) return 13348;
							else if (West == West::Low) return 13349;
							else return 13350;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13354;
							else if (West == West::Low) return 13355;
							else return 13356;
						else
							if (West == West::None) return 13360;
							else if (West == West::Low) return 13361;
							else return 13362;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13366;
							else if (West == West::Low) return 13367;
							else return 13368;
						else
							if (West == West::None) return 13372;
							else if (West == West::Low) return 13373;
							else return 13374;
					else
						if (Up)
							if (West == West::None) return 13378;
							else if (West == West::Low) return 13379;
							else return 13380;
						else
							if (West == West::None) return 13384;
							else if (West == West::Low) return 13385;
							else return 13386;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13390;
							else if (West == West::Low) return 13391;
							else return 13392;
						else
							if (West == West::None) return 13396;
							else if (West == West::Low) return 13397;
							else return 13398;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13402;
							else if (West == West::Low) return 13403;
							else return 13404;
						else
							if (West == West::None) return 13408;
							else if (West == West::Low) return 13409;
							else return 13410;
					else
						if (Up)
							if (West == West::None) return 13414;
							else if (West == West::Low) return 13415;
							else return 13416;
						else
							if (West == West::None) return 13420;
							else if (West == West::Low) return 13421;
							else return 13422;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13426;
							else if (West == West::Low) return 13427;
							else return 13428;
						else
							if (West == West::None) return 13432;
							else if (West == West::Low) return 13433;
							else return 13434;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13438;
							else if (West == West::Low) return 13439;
							else return 13440;
						else
							if (West == West::None) return 13444;
							else if (West == West::Low) return 13445;
							else return 13446;
					else
						if (Up)
							if (West == West::None) return 13450;
							else if (West == West::Low) return 13451;
							else return 13452;
						else
							if (West == West::None) return 13456;
							else if (West == West::Low) return 13457;
							else return 13458;
		}
		BlockState AndesiteWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace Anvil
	{
		constexpr BlockState Anvil(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6610;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6611;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6612;
			else return 6613;
		}
		BlockState Anvil();
		eBlockFace Facing(BlockState Block);
	}
	namespace AttachedMelonStem
	{
		constexpr BlockState AttachedMelonStem(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4768;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4769;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4770;
			else return 4771;
		}
		BlockState AttachedMelonStem();
		eBlockFace Facing(BlockState Block);
	}
	namespace AttachedPumpkinStem
	{
		constexpr BlockState AttachedPumpkinStem(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4764;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4765;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4766;
			else return 4767;
		}
		BlockState AttachedPumpkinStem();
		eBlockFace Facing(BlockState Block);
	}
	namespace AzureBluet
	{
		constexpr BlockState AzureBluet()
		{
			return 1416;
		}
	}
	namespace Bamboo
	{
		enum class Leaves
		{
			None,
			Small,
			Large
		};
		constexpr BlockState Bamboo(const unsigned char Age, const enum Leaves Leaves, const unsigned char Stage)
		{
			if (Age == 0)
				if (Leaves == Leaves::None)
					if (Stage == 0) return 9652;
					else return 9653;
				else if (Leaves == Leaves::Small)
					if (Stage == 0) return 9654;
					else return 9655;
				else
					if (Stage == 0) return 9656;
					else return 9657;
			else
				if (Leaves == Leaves::None)
					if (Stage == 0) return 9658;
					else return 9659;
				else if (Leaves == Leaves::Small)
					if (Stage == 0) return 9660;
					else return 9661;
				else
					if (Stage == 0) return 9662;
					else return 9663;
		}
		BlockState Bamboo();
		unsigned char Age(BlockState Block);
		enum Leaves Leaves(BlockState Block);
		unsigned char Stage(BlockState Block);
	}
	namespace BambooSapling
	{
		constexpr BlockState BambooSapling()
		{
			return 9651;
		}
	}
	namespace Barrel
	{
		constexpr BlockState Barrel(const eBlockFace Facing, const bool Open)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Open) return 14791;
				else return 14792;
			else if (Facing == eBlockFace::BLOCK_FACE_XP)
				if (Open) return 14793;
				else return 14794;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Open) return 14795;
				else return 14796;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Open) return 14797;
				else return 14798;
			else if (Facing == eBlockFace::BLOCK_FACE_YP)
				if (Open) return 14799;
				else return 14800;
			else
				if (Open) return 14801;
				else return 14802;
		}
		BlockState Barrel();
		eBlockFace Facing(BlockState Block);
		bool Open(BlockState Block);
	}
	namespace Barrier
	{
		constexpr BlockState Barrier()
		{
			return 7536;
		}
	}
	namespace Basalt
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState Basalt(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 4002;
			else if (Axis == Axis::Y) return 4003;
			else return 4004;
		}
		BlockState Basalt();
		enum Axis Axis(BlockState Block);
	}
	namespace Beacon
	{
		constexpr BlockState Beacon()
		{
			return 5656;
		}
	}
	namespace Bedrock
	{
		constexpr BlockState Bedrock()
		{
			return 33;
		}
	}
	namespace BeeNest
	{
		constexpr BlockState BeeNest(const eBlockFace Facing, const unsigned char HoneyLevel)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (HoneyLevel == 0) return 15776;
				else if (HoneyLevel == 1) return 15777;
				else if (HoneyLevel == 2) return 15778;
				else if (HoneyLevel == 3) return 15779;
				else if (HoneyLevel == 4) return 15780;
				else return 15781;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (HoneyLevel == 0) return 15782;
				else if (HoneyLevel == 1) return 15783;
				else if (HoneyLevel == 2) return 15784;
				else if (HoneyLevel == 3) return 15785;
				else if (HoneyLevel == 4) return 15786;
				else return 15787;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (HoneyLevel == 0) return 15788;
				else if (HoneyLevel == 1) return 15789;
				else if (HoneyLevel == 2) return 15790;
				else if (HoneyLevel == 3) return 15791;
				else if (HoneyLevel == 4) return 15792;
				else return 15793;
			else
				if (HoneyLevel == 0) return 15794;
				else if (HoneyLevel == 1) return 15795;
				else if (HoneyLevel == 2) return 15796;
				else if (HoneyLevel == 3) return 15797;
				else if (HoneyLevel == 4) return 15798;
				else return 15799;
		}
		BlockState BeeNest();
		eBlockFace Facing(BlockState Block);
		unsigned char HoneyLevel(BlockState Block);
	}
	namespace Beehive
	{
		constexpr BlockState Beehive(const eBlockFace Facing, const unsigned char HoneyLevel)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (HoneyLevel == 0) return 15800;
				else if (HoneyLevel == 1) return 15801;
				else if (HoneyLevel == 2) return 15802;
				else if (HoneyLevel == 3) return 15803;
				else if (HoneyLevel == 4) return 15804;
				else return 15805;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (HoneyLevel == 0) return 15806;
				else if (HoneyLevel == 1) return 15807;
				else if (HoneyLevel == 2) return 15808;
				else if (HoneyLevel == 3) return 15809;
				else if (HoneyLevel == 4) return 15810;
				else return 15811;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (HoneyLevel == 0) return 15812;
				else if (HoneyLevel == 1) return 15813;
				else if (HoneyLevel == 2) return 15814;
				else if (HoneyLevel == 3) return 15815;
				else if (HoneyLevel == 4) return 15816;
				else return 15817;
			else
				if (HoneyLevel == 0) return 15818;
				else if (HoneyLevel == 1) return 15819;
				else if (HoneyLevel == 2) return 15820;
				else if (HoneyLevel == 3) return 15821;
				else if (HoneyLevel == 4) return 15822;
				else return 15823;
		}
		BlockState Beehive();
		eBlockFace Facing(BlockState Block);
		unsigned char HoneyLevel(BlockState Block);
	}
	namespace Beetroots
	{
		constexpr BlockState Beetroots(const unsigned char Age)
		{
			if (Age == 0) return 9219;
			else if (Age == 1) return 9220;
			else if (Age == 2) return 9221;
			else return 9222;
		}
		BlockState Beetroots();
		unsigned char Age(BlockState Block);
	}
	namespace Bell
	{
		enum class Attachment
		{
			Floor,
			Ceiling,
			SingleWall,
			DoubleWall
		};
		constexpr BlockState Bell(const enum Attachment Attachment, const eBlockFace Facing, const bool Powered)
		{
			if (Attachment == Attachment::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 14854;
					else return 14855;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 14856;
					else return 14857;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 14858;
					else return 14859;
				else
					if (Powered) return 14860;
					else return 14861;
			else if (Attachment == Attachment::Ceiling)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 14862;
					else return 14863;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 14864;
					else return 14865;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 14866;
					else return 14867;
				else
					if (Powered) return 14868;
					else return 14869;
			else if (Attachment == Attachment::SingleWall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 14870;
					else return 14871;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 14872;
					else return 14873;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 14874;
					else return 14875;
				else
					if (Powered) return 14876;
					else return 14877;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 14878;
					else return 14879;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 14880;
					else return 14881;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 14882;
					else return 14883;
				else
					if (Powered) return 14884;
					else return 14885;
		}
		BlockState Bell();
		enum Attachment Attachment(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace BirchButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState BirchButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6394;
					else return 6395;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6396;
					else return 6397;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6398;
					else return 6399;
				else
					if (Powered) return 6400;
					else return 6401;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6402;
					else return 6403;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6404;
					else return 6405;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6406;
					else return 6407;
				else
					if (Powered) return 6408;
					else return 6409;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6410;
					else return 6411;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6412;
					else return 6413;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6414;
					else return 6415;
				else
					if (Powered) return 6416;
					else return 6417;
		}
		BlockState BirchButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace BirchDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr BlockState BirchDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8802;
							else return 8803;
						else
							if (Powered) return 8804;
							else return 8805;
					else
						if (Open)
							if (Powered) return 8806;
							else return 8807;
						else
							if (Powered) return 8808;
							else return 8809;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8810;
							else return 8811;
						else
							if (Powered) return 8812;
							else return 8813;
					else
						if (Open)
							if (Powered) return 8814;
							else return 8815;
						else
							if (Powered) return 8816;
							else return 8817;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8818;
							else return 8819;
						else
							if (Powered) return 8820;
							else return 8821;
					else
						if (Open)
							if (Powered) return 8822;
							else return 8823;
						else
							if (Powered) return 8824;
							else return 8825;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8826;
							else return 8827;
						else
							if (Powered) return 8828;
							else return 8829;
					else
						if (Open)
							if (Powered) return 8830;
							else return 8831;
						else
							if (Powered) return 8832;
							else return 8833;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8834;
							else return 8835;
						else
							if (Powered) return 8836;
							else return 8837;
					else
						if (Open)
							if (Powered) return 8838;
							else return 8839;
						else
							if (Powered) return 8840;
							else return 8841;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8842;
							else return 8843;
						else
							if (Powered) return 8844;
							else return 8845;
					else
						if (Open)
							if (Powered) return 8846;
							else return 8847;
						else
							if (Powered) return 8848;
							else return 8849;
			else
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8850;
							else return 8851;
						else
							if (Powered) return 8852;
							else return 8853;
					else
						if (Open)
							if (Powered) return 8854;
							else return 8855;
						else
							if (Powered) return 8856;
							else return 8857;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8858;
							else return 8859;
						else
							if (Powered) return 8860;
							else return 8861;
					else
						if (Open)
							if (Powered) return 8862;
							else return 8863;
						else
							if (Powered) return 8864;
							else return 8865;
		}
		BlockState BirchDoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Hinge Hinge(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace BirchFence
	{
		constexpr BlockState BirchFence(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 8612;
						else return 8613;
					else
						if (West) return 8616;
						else return 8617;
				else
					if (South)
						if (West) return 8620;
						else return 8621;
					else
						if (West) return 8624;
						else return 8625;
			else
				if (North)
					if (South)
						if (West) return 8628;
						else return 8629;
					else
						if (West) return 8632;
						else return 8633;
				else
					if (South)
						if (West) return 8636;
						else return 8637;
					else
						if (West) return 8640;
						else return 8641;
		}
		BlockState BirchFence();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace BirchFenceGate
	{
		constexpr BlockState BirchFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (InWall)
					if (Open)
						if (Powered) return 8450;
						else return 8451;
					else
						if (Powered) return 8452;
						else return 8453;
				else
					if (Open)
						if (Powered) return 8454;
						else return 8455;
					else
						if (Powered) return 8456;
						else return 8457;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (InWall)
					if (Open)
						if (Powered) return 8458;
						else return 8459;
					else
						if (Powered) return 8460;
						else return 8461;
				else
					if (Open)
						if (Powered) return 8462;
						else return 8463;
					else
						if (Powered) return 8464;
						else return 8465;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (InWall)
					if (Open)
						if (Powered) return 8466;
						else return 8467;
					else
						if (Powered) return 8468;
						else return 8469;
				else
					if (Open)
						if (Powered) return 8470;
						else return 8471;
					else
						if (Powered) return 8472;
						else return 8473;
			else
				if (InWall)
					if (Open)
						if (Powered) return 8474;
						else return 8475;
					else
						if (Powered) return 8476;
						else return 8477;
				else
					if (Open)
						if (Powered) return 8478;
						else return 8479;
					else
						if (Powered) return 8480;
						else return 8481;
		}
		BlockState BirchFenceGate();
		eBlockFace Facing(BlockState Block);
		bool InWall(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace BirchLeaves
	{
		constexpr BlockState BirchLeaves(const unsigned char Distance, const bool Persistent)
		{
			if (Distance == 1)
				if (Persistent) return 173;
				else return 174;
			else if (Distance == 2)
				if (Persistent) return 175;
				else return 176;
			else if (Distance == 3)
				if (Persistent) return 177;
				else return 178;
			else if (Distance == 4)
				if (Persistent) return 179;
				else return 180;
			else if (Distance == 5)
				if (Persistent) return 181;
				else return 182;
			else if (Distance == 6)
				if (Persistent) return 183;
				else return 184;
			else
				if (Persistent) return 185;
				else return 186;
		}
		BlockState BirchLeaves();
		unsigned char Distance(BlockState Block);
		bool Persistent(BlockState Block);
	}
	namespace BirchLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState BirchLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 79;
			else if (Axis == Axis::Y) return 80;
			else return 81;
		}
		BlockState BirchLog();
		enum Axis Axis(BlockState Block);
	}
	namespace BirchPlanks
	{
		constexpr BlockState BirchPlanks()
		{
			return 17;
		}
	}
	namespace BirchPressurePlate
	{
		constexpr BlockState BirchPressurePlate(const bool Powered)
		{
			if (Powered) return 3877;
			else return 3878;
		}
		BlockState BirchPressurePlate();
		bool Powered(BlockState Block);
	}
	namespace BirchSapling
	{
		constexpr BlockState BirchSapling(const unsigned char Stage)
		{
			if (Stage == 0) return 25;
			else return 26;
		}
		BlockState BirchSapling();
		unsigned char Stage(BlockState Block);
	}
	namespace BirchSign
	{
		constexpr BlockState BirchSign(const unsigned char Rotation)
		{
			if (Rotation == 0) return 3446;
			else if (Rotation == 1) return 3448;
			else if (Rotation == 2) return 3450;
			else if (Rotation == 3) return 3452;
			else if (Rotation == 4) return 3454;
			else if (Rotation == 5) return 3456;
			else if (Rotation == 6) return 3458;
			else if (Rotation == 7) return 3460;
			else if (Rotation == 8) return 3462;
			else if (Rotation == 9) return 3464;
			else if (Rotation == 10) return 3466;
			else if (Rotation == 11) return 3468;
			else if (Rotation == 12) return 3470;
			else if (Rotation == 13) return 3472;
			else if (Rotation == 14) return 3474;
			else return 3476;
		}
		BlockState BirchSign();
		unsigned char Rotation(BlockState Block);
	}
	namespace BirchSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState BirchSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8313;
			else if (Type == Type::Bottom) return 8315;
			else return 8317;
		}
		BlockState BirchSlab();
		enum Type Type(BlockState Block);
	}
	namespace BirchStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState BirchStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5485;
					else if (Shape == Shape::InnerLeft) return 5487;
					else if (Shape == Shape::InnerRight) return 5489;
					else if (Shape == Shape::OuterLeft) return 5491;
					else return 5493;
				else
					if (Shape == Shape::Straight) return 5495;
					else if (Shape == Shape::InnerLeft) return 5497;
					else if (Shape == Shape::InnerRight) return 5499;
					else if (Shape == Shape::OuterLeft) return 5501;
					else return 5503;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5505;
					else if (Shape == Shape::InnerLeft) return 5507;
					else if (Shape == Shape::InnerRight) return 5509;
					else if (Shape == Shape::OuterLeft) return 5511;
					else return 5513;
				else
					if (Shape == Shape::Straight) return 5515;
					else if (Shape == Shape::InnerLeft) return 5517;
					else if (Shape == Shape::InnerRight) return 5519;
					else if (Shape == Shape::OuterLeft) return 5521;
					else return 5523;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5525;
					else if (Shape == Shape::InnerLeft) return 5527;
					else if (Shape == Shape::InnerRight) return 5529;
					else if (Shape == Shape::OuterLeft) return 5531;
					else return 5533;
				else
					if (Shape == Shape::Straight) return 5535;
					else if (Shape == Shape::InnerLeft) return 5537;
					else if (Shape == Shape::InnerRight) return 5539;
					else if (Shape == Shape::OuterLeft) return 5541;
					else return 5543;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5545;
					else if (Shape == Shape::InnerLeft) return 5547;
					else if (Shape == Shape::InnerRight) return 5549;
					else if (Shape == Shape::OuterLeft) return 5551;
					else return 5553;
				else
					if (Shape == Shape::Straight) return 5555;
					else if (Shape == Shape::InnerLeft) return 5557;
					else if (Shape == Shape::InnerRight) return 5559;
					else if (Shape == Shape::OuterLeft) return 5561;
					else return 5563;
		}
		BlockState BirchStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace BirchTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr BlockState BirchTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4240;
						else return 4242;
					else
						if (Powered) return 4244;
						else return 4246;
				else
					if (Open)
						if (Powered) return 4248;
						else return 4250;
					else
						if (Powered) return 4252;
						else return 4254;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4256;
						else return 4258;
					else
						if (Powered) return 4260;
						else return 4262;
				else
					if (Open)
						if (Powered) return 4264;
						else return 4266;
					else
						if (Powered) return 4268;
						else return 4270;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4272;
						else return 4274;
					else
						if (Powered) return 4276;
						else return 4278;
				else
					if (Open)
						if (Powered) return 4280;
						else return 4282;
					else
						if (Powered) return 4284;
						else return 4286;
			else
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4288;
						else return 4290;
					else
						if (Powered) return 4292;
						else return 4294;
				else
					if (Open)
						if (Powered) return 4296;
						else return 4298;
					else
						if (Powered) return 4300;
						else return 4302;
		}
		BlockState BirchTrapdoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace BirchWallSign
	{
		constexpr BlockState BirchWallSign(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3752;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3754;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3756;
			else return 3758;
		}
		BlockState BirchWallSign();
		eBlockFace Facing(BlockState Block);
	}
	namespace BirchWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState BirchWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 115;
			else if (Axis == Axis::Y) return 116;
			else return 117;
		}
		BlockState BirchWood();
		enum Axis Axis(BlockState Block);
	}
	namespace BlackBanner
	{
		constexpr BlockState BlackBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 8137;
			else if (Rotation == 1) return 8138;
			else if (Rotation == 2) return 8139;
			else if (Rotation == 3) return 8140;
			else if (Rotation == 4) return 8141;
			else if (Rotation == 5) return 8142;
			else if (Rotation == 6) return 8143;
			else if (Rotation == 7) return 8144;
			else if (Rotation == 8) return 8145;
			else if (Rotation == 9) return 8146;
			else if (Rotation == 10) return 8147;
			else if (Rotation == 11) return 8148;
			else if (Rotation == 12) return 8149;
			else if (Rotation == 13) return 8150;
			else if (Rotation == 14) return 8151;
			else return 8152;
		}
		BlockState BlackBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace BlackBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState BlackBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1289;
					else return 1290;
				else
					if (Part == Part::Head) return 1291;
					else return 1292;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1293;
					else return 1294;
				else
					if (Part == Part::Head) return 1295;
					else return 1296;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1297;
					else return 1298;
				else
					if (Part == Part::Head) return 1299;
					else return 1300;
			else
				if (Occupied)
					if (Part == Part::Head) return 1301;
					else return 1302;
				else
					if (Part == Part::Head) return 1303;
					else return 1304;
		}
		BlockState BlackBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace BlackCarpet
	{
		constexpr BlockState BlackCarpet()
		{
			return 7881;
		}
	}
	namespace BlackConcrete
	{
		constexpr BlockState BlackConcrete()
		{
			return 9453;
		}
	}
	namespace BlackConcretePowder
	{
		constexpr BlockState BlackConcretePowder()
		{
			return 9469;
		}
	}
	namespace BlackGlazedTerracotta
	{
		constexpr BlockState BlackGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9434;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9435;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9436;
			else return 9437;
		}
		BlockState BlackGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace BlackShulkerBox
	{
		constexpr BlockState BlackShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9368;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9369;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9370;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9371;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9372;
			else return 9373;
		}
		BlockState BlackShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace BlackStainedGlass
	{
		constexpr BlockState BlackStainedGlass()
		{
			return 4110;
		}
	}
	namespace BlackStainedGlassPane
	{
		constexpr BlockState BlackStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7345;
						else return 7346;
					else
						if (West) return 7349;
						else return 7350;
				else
					if (South)
						if (West) return 7353;
						else return 7354;
					else
						if (West) return 7357;
						else return 7358;
			else
				if (North)
					if (South)
						if (West) return 7361;
						else return 7362;
					else
						if (West) return 7365;
						else return 7366;
				else
					if (South)
						if (West) return 7369;
						else return 7370;
					else
						if (West) return 7373;
						else return 7374;
		}
		BlockState BlackStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace BlackTerracotta
	{
		constexpr BlockState BlackTerracotta()
		{
			return 6862;
		}
	}
	namespace BlackWallBanner
	{
		constexpr BlockState BlackWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8213;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8214;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8215;
			else return 8216;
		}
		BlockState BlackWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace BlackWool
	{
		constexpr BlockState BlackWool()
		{
			return 1399;
		}
	}
	namespace Blackstone
	{
		constexpr BlockState Blackstone()
		{
			return 15839;
		}
	}
	namespace BlackstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState BlackstoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 16245;
			else if (Type == Type::Bottom) return 16247;
			else return 16249;
		}
		BlockState BlackstoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace BlackstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState BlackstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15841;
					else if (Shape == Shape::InnerLeft) return 15843;
					else if (Shape == Shape::InnerRight) return 15845;
					else if (Shape == Shape::OuterLeft) return 15847;
					else return 15849;
				else
					if (Shape == Shape::Straight) return 15851;
					else if (Shape == Shape::InnerLeft) return 15853;
					else if (Shape == Shape::InnerRight) return 15855;
					else if (Shape == Shape::OuterLeft) return 15857;
					else return 15859;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15861;
					else if (Shape == Shape::InnerLeft) return 15863;
					else if (Shape == Shape::InnerRight) return 15865;
					else if (Shape == Shape::OuterLeft) return 15867;
					else return 15869;
				else
					if (Shape == Shape::Straight) return 15871;
					else if (Shape == Shape::InnerLeft) return 15873;
					else if (Shape == Shape::InnerRight) return 15875;
					else if (Shape == Shape::OuterLeft) return 15877;
					else return 15879;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15881;
					else if (Shape == Shape::InnerLeft) return 15883;
					else if (Shape == Shape::InnerRight) return 15885;
					else if (Shape == Shape::OuterLeft) return 15887;
					else return 15889;
				else
					if (Shape == Shape::Straight) return 15891;
					else if (Shape == Shape::InnerLeft) return 15893;
					else if (Shape == Shape::InnerRight) return 15895;
					else if (Shape == Shape::OuterLeft) return 15897;
					else return 15899;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15901;
					else if (Shape == Shape::InnerLeft) return 15903;
					else if (Shape == Shape::InnerRight) return 15905;
					else if (Shape == Shape::OuterLeft) return 15907;
					else return 15909;
				else
					if (Shape == Shape::Straight) return 15911;
					else if (Shape == Shape::InnerLeft) return 15913;
					else if (Shape == Shape::InnerRight) return 15915;
					else if (Shape == Shape::OuterLeft) return 15917;
					else return 15919;
		}
		BlockState BlackstoneStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState BlackstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 15923;
							else if (West == West::Low) return 15924;
							else return 15925;
						else
							if (West == West::None) return 15929;
							else if (West == West::Low) return 15930;
							else return 15931;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 15935;
							else if (West == West::Low) return 15936;
							else return 15937;
						else
							if (West == West::None) return 15941;
							else if (West == West::Low) return 15942;
							else return 15943;
					else
						if (Up)
							if (West == West::None) return 15947;
							else if (West == West::Low) return 15948;
							else return 15949;
						else
							if (West == West::None) return 15953;
							else if (West == West::Low) return 15954;
							else return 15955;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 15959;
							else if (West == West::Low) return 15960;
							else return 15961;
						else
							if (West == West::None) return 15965;
							else if (West == West::Low) return 15966;
							else return 15967;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 15971;
							else if (West == West::Low) return 15972;
							else return 15973;
						else
							if (West == West::None) return 15977;
							else if (West == West::Low) return 15978;
							else return 15979;
					else
						if (Up)
							if (West == West::None) return 15983;
							else if (West == West::Low) return 15984;
							else return 15985;
						else
							if (West == West::None) return 15989;
							else if (West == West::Low) return 15990;
							else return 15991;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 15995;
							else if (West == West::Low) return 15996;
							else return 15997;
						else
							if (West == West::None) return 16001;
							else if (West == West::Low) return 16002;
							else return 16003;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16007;
							else if (West == West::Low) return 16008;
							else return 16009;
						else
							if (West == West::None) return 16013;
							else if (West == West::Low) return 16014;
							else return 16015;
					else
						if (Up)
							if (West == West::None) return 16019;
							else if (West == West::Low) return 16020;
							else return 16021;
						else
							if (West == West::None) return 16025;
							else if (West == West::Low) return 16026;
							else return 16027;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16031;
							else if (West == West::Low) return 16032;
							else return 16033;
						else
							if (West == West::None) return 16037;
							else if (West == West::Low) return 16038;
							else return 16039;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16043;
							else if (West == West::Low) return 16044;
							else return 16045;
						else
							if (West == West::None) return 16049;
							else if (West == West::Low) return 16050;
							else return 16051;
					else
						if (Up)
							if (West == West::None) return 16055;
							else if (West == West::Low) return 16056;
							else return 16057;
						else
							if (West == West::None) return 16061;
							else if (West == West::Low) return 16062;
							else return 16063;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16067;
							else if (West == West::Low) return 16068;
							else return 16069;
						else
							if (West == West::None) return 16073;
							else if (West == West::Low) return 16074;
							else return 16075;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16079;
							else if (West == West::Low) return 16080;
							else return 16081;
						else
							if (West == West::None) return 16085;
							else if (West == West::Low) return 16086;
							else return 16087;
					else
						if (Up)
							if (West == West::None) return 16091;
							else if (West == West::Low) return 16092;
							else return 16093;
						else
							if (West == West::None) return 16097;
							else if (West == West::Low) return 16098;
							else return 16099;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16103;
							else if (West == West::Low) return 16104;
							else return 16105;
						else
							if (West == West::None) return 16109;
							else if (West == West::Low) return 16110;
							else return 16111;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16115;
							else if (West == West::Low) return 16116;
							else return 16117;
						else
							if (West == West::None) return 16121;
							else if (West == West::Low) return 16122;
							else return 16123;
					else
						if (Up)
							if (West == West::None) return 16127;
							else if (West == West::Low) return 16128;
							else return 16129;
						else
							if (West == West::None) return 16133;
							else if (West == West::Low) return 16134;
							else return 16135;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16139;
							else if (West == West::Low) return 16140;
							else return 16141;
						else
							if (West == West::None) return 16145;
							else if (West == West::Low) return 16146;
							else return 16147;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16151;
							else if (West == West::Low) return 16152;
							else return 16153;
						else
							if (West == West::None) return 16157;
							else if (West == West::Low) return 16158;
							else return 16159;
					else
						if (Up)
							if (West == West::None) return 16163;
							else if (West == West::Low) return 16164;
							else return 16165;
						else
							if (West == West::None) return 16169;
							else if (West == West::Low) return 16170;
							else return 16171;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16175;
							else if (West == West::Low) return 16176;
							else return 16177;
						else
							if (West == West::None) return 16181;
							else if (West == West::Low) return 16182;
							else return 16183;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16187;
							else if (West == West::Low) return 16188;
							else return 16189;
						else
							if (West == West::None) return 16193;
							else if (West == West::Low) return 16194;
							else return 16195;
					else
						if (Up)
							if (West == West::None) return 16199;
							else if (West == West::Low) return 16200;
							else return 16201;
						else
							if (West == West::None) return 16205;
							else if (West == West::Low) return 16206;
							else return 16207;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16211;
							else if (West == West::Low) return 16212;
							else return 16213;
						else
							if (West == West::None) return 16217;
							else if (West == West::Low) return 16218;
							else return 16219;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16223;
							else if (West == West::Low) return 16224;
							else return 16225;
						else
							if (West == West::None) return 16229;
							else if (West == West::Low) return 16230;
							else return 16231;
					else
						if (Up)
							if (West == West::None) return 16235;
							else if (West == West::Low) return 16236;
							else return 16237;
						else
							if (West == West::None) return 16241;
							else if (West == West::Low) return 16242;
							else return 16243;
		}
		BlockState BlackstoneWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace BlastFurnace
	{
		constexpr BlockState BlastFurnace(const eBlockFace Facing, const bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Lit) return 14811;
				else return 14812;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Lit) return 14813;
				else return 14814;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Lit) return 14815;
				else return 14816;
			else
				if (Lit) return 14817;
				else return 14818;
		}
		BlockState BlastFurnace();
		eBlockFace Facing(BlockState Block);
		bool Lit(BlockState Block);
	}
	namespace BlueBanner
	{
		constexpr BlockState BlueBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 8073;
			else if (Rotation == 1) return 8074;
			else if (Rotation == 2) return 8075;
			else if (Rotation == 3) return 8076;
			else if (Rotation == 4) return 8077;
			else if (Rotation == 5) return 8078;
			else if (Rotation == 6) return 8079;
			else if (Rotation == 7) return 8080;
			else if (Rotation == 8) return 8081;
			else if (Rotation == 9) return 8082;
			else if (Rotation == 10) return 8083;
			else if (Rotation == 11) return 8084;
			else if (Rotation == 12) return 8085;
			else if (Rotation == 13) return 8086;
			else if (Rotation == 14) return 8087;
			else return 8088;
		}
		BlockState BlueBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace BlueBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState BlueBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1225;
					else return 1226;
				else
					if (Part == Part::Head) return 1227;
					else return 1228;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1229;
					else return 1230;
				else
					if (Part == Part::Head) return 1231;
					else return 1232;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1233;
					else return 1234;
				else
					if (Part == Part::Head) return 1235;
					else return 1236;
			else
				if (Occupied)
					if (Part == Part::Head) return 1237;
					else return 1238;
				else
					if (Part == Part::Head) return 1239;
					else return 1240;
		}
		BlockState BlueBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace BlueCarpet
	{
		constexpr BlockState BlueCarpet()
		{
			return 7877;
		}
	}
	namespace BlueConcrete
	{
		constexpr BlockState BlueConcrete()
		{
			return 9449;
		}
	}
	namespace BlueConcretePowder
	{
		constexpr BlockState BlueConcretePowder()
		{
			return 9465;
		}
	}
	namespace BlueGlazedTerracotta
	{
		constexpr BlockState BlueGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9418;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9419;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9420;
			else return 9421;
		}
		BlockState BlueGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace BlueIce
	{
		constexpr BlockState BlueIce()
		{
			return 9648;
		}
	}
	namespace BlueOrchid
	{
		constexpr BlockState BlueOrchid()
		{
			return 1414;
		}
	}
	namespace BlueShulkerBox
	{
		constexpr BlockState BlueShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9344;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9345;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9346;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9347;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9348;
			else return 9349;
		}
		BlockState BlueShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace BlueStainedGlass
	{
		constexpr BlockState BlueStainedGlass()
		{
			return 4106;
		}
	}
	namespace BlueStainedGlassPane
	{
		constexpr BlockState BlueStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7217;
						else return 7218;
					else
						if (West) return 7221;
						else return 7222;
				else
					if (South)
						if (West) return 7225;
						else return 7226;
					else
						if (West) return 7229;
						else return 7230;
			else
				if (North)
					if (South)
						if (West) return 7233;
						else return 7234;
					else
						if (West) return 7237;
						else return 7238;
				else
					if (South)
						if (West) return 7241;
						else return 7242;
					else
						if (West) return 7245;
						else return 7246;
		}
		BlockState BlueStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace BlueTerracotta
	{
		constexpr BlockState BlueTerracotta()
		{
			return 6858;
		}
	}
	namespace BlueWallBanner
	{
		constexpr BlockState BlueWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8197;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8198;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8199;
			else return 8200;
		}
		BlockState BlueWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace BlueWool
	{
		constexpr BlockState BlueWool()
		{
			return 1395;
		}
	}
	namespace BoneBlock
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState BoneBlock(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 9256;
			else if (Axis == Axis::Y) return 9257;
			else return 9258;
		}
		BlockState BoneBlock();
		enum Axis Axis(BlockState Block);
	}
	namespace Bookshelf
	{
		constexpr BlockState Bookshelf()
		{
			return 1432;
		}
	}
	namespace BrainCoral
	{
		constexpr BlockState BrainCoral()
		{
			return 9533;
		}
	}
	namespace BrainCoralBlock
	{
		constexpr BlockState BrainCoralBlock()
		{
			return 9516;
		}
	}
	namespace BrainCoralFan
	{
		constexpr BlockState BrainCoralFan()
		{
			return 9553;
		}
	}
	namespace BrainCoralWallFan
	{
		constexpr BlockState BrainCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9609;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9611;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9613;
			else return 9615;
		}
		BlockState BrainCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace BrewingStand
	{
		constexpr BlockState BrewingStand(const bool HasBottle_0, const bool HasBottle_1, const bool HasBottle_2)
		{
			if (HasBottle_0)
				if (HasBottle_1)
					if (HasBottle_2) return 5133;
					else return 5134;
				else
					if (HasBottle_2) return 5135;
					else return 5136;
			else
				if (HasBottle_1)
					if (HasBottle_2) return 5137;
					else return 5138;
				else
					if (HasBottle_2) return 5139;
					else return 5140;
		}
		BlockState BrewingStand();
		bool HasBottle_0(BlockState Block);
		bool HasBottle_1(BlockState Block);
		bool HasBottle_2(BlockState Block);
	}
	namespace BrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState BrickSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8373;
			else if (Type == Type::Bottom) return 8375;
			else return 8377;
		}
		BlockState BrickSlab();
		enum Type Type(BlockState Block);
	}
	namespace BrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState BrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 4853;
					else if (Shape == Shape::InnerLeft) return 4855;
					else if (Shape == Shape::InnerRight) return 4857;
					else if (Shape == Shape::OuterLeft) return 4859;
					else return 4861;
				else
					if (Shape == Shape::Straight) return 4863;
					else if (Shape == Shape::InnerLeft) return 4865;
					else if (Shape == Shape::InnerRight) return 4867;
					else if (Shape == Shape::OuterLeft) return 4869;
					else return 4871;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 4873;
					else if (Shape == Shape::InnerLeft) return 4875;
					else if (Shape == Shape::InnerRight) return 4877;
					else if (Shape == Shape::OuterLeft) return 4879;
					else return 4881;
				else
					if (Shape == Shape::Straight) return 4883;
					else if (Shape == Shape::InnerLeft) return 4885;
					else if (Shape == Shape::InnerRight) return 4887;
					else if (Shape == Shape::OuterLeft) return 4889;
					else return 4891;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 4893;
					else if (Shape == Shape::InnerLeft) return 4895;
					else if (Shape == Shape::InnerRight) return 4897;
					else if (Shape == Shape::OuterLeft) return 4899;
					else return 4901;
				else
					if (Shape == Shape::Straight) return 4903;
					else if (Shape == Shape::InnerLeft) return 4905;
					else if (Shape == Shape::InnerRight) return 4907;
					else if (Shape == Shape::OuterLeft) return 4909;
					else return 4911;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 4913;
					else if (Shape == Shape::InnerLeft) return 4915;
					else if (Shape == Shape::InnerRight) return 4917;
					else if (Shape == Shape::OuterLeft) return 4919;
					else return 4921;
				else
					if (Shape == Shape::Straight) return 4923;
					else if (Shape == Shape::InnerLeft) return 4925;
					else if (Shape == Shape::InnerRight) return 4927;
					else if (Shape == Shape::OuterLeft) return 4929;
					else return 4931;
		}
		BlockState BrickStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState BrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 10870;
							else if (West == West::Low) return 10871;
							else return 10872;
						else
							if (West == West::None) return 10876;
							else if (West == West::Low) return 10877;
							else return 10878;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 10882;
							else if (West == West::Low) return 10883;
							else return 10884;
						else
							if (West == West::None) return 10888;
							else if (West == West::Low) return 10889;
							else return 10890;
					else
						if (Up)
							if (West == West::None) return 10894;
							else if (West == West::Low) return 10895;
							else return 10896;
						else
							if (West == West::None) return 10900;
							else if (West == West::Low) return 10901;
							else return 10902;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 10906;
							else if (West == West::Low) return 10907;
							else return 10908;
						else
							if (West == West::None) return 10912;
							else if (West == West::Low) return 10913;
							else return 10914;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 10918;
							else if (West == West::Low) return 10919;
							else return 10920;
						else
							if (West == West::None) return 10924;
							else if (West == West::Low) return 10925;
							else return 10926;
					else
						if (Up)
							if (West == West::None) return 10930;
							else if (West == West::Low) return 10931;
							else return 10932;
						else
							if (West == West::None) return 10936;
							else if (West == West::Low) return 10937;
							else return 10938;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 10942;
							else if (West == West::Low) return 10943;
							else return 10944;
						else
							if (West == West::None) return 10948;
							else if (West == West::Low) return 10949;
							else return 10950;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 10954;
							else if (West == West::Low) return 10955;
							else return 10956;
						else
							if (West == West::None) return 10960;
							else if (West == West::Low) return 10961;
							else return 10962;
					else
						if (Up)
							if (West == West::None) return 10966;
							else if (West == West::Low) return 10967;
							else return 10968;
						else
							if (West == West::None) return 10972;
							else if (West == West::Low) return 10973;
							else return 10974;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 10978;
							else if (West == West::Low) return 10979;
							else return 10980;
						else
							if (West == West::None) return 10984;
							else if (West == West::Low) return 10985;
							else return 10986;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 10990;
							else if (West == West::Low) return 10991;
							else return 10992;
						else
							if (West == West::None) return 10996;
							else if (West == West::Low) return 10997;
							else return 10998;
					else
						if (Up)
							if (West == West::None) return 11002;
							else if (West == West::Low) return 11003;
							else return 11004;
						else
							if (West == West::None) return 11008;
							else if (West == West::Low) return 11009;
							else return 11010;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11014;
							else if (West == West::Low) return 11015;
							else return 11016;
						else
							if (West == West::None) return 11020;
							else if (West == West::Low) return 11021;
							else return 11022;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11026;
							else if (West == West::Low) return 11027;
							else return 11028;
						else
							if (West == West::None) return 11032;
							else if (West == West::Low) return 11033;
							else return 11034;
					else
						if (Up)
							if (West == West::None) return 11038;
							else if (West == West::Low) return 11039;
							else return 11040;
						else
							if (West == West::None) return 11044;
							else if (West == West::Low) return 11045;
							else return 11046;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11050;
							else if (West == West::Low) return 11051;
							else return 11052;
						else
							if (West == West::None) return 11056;
							else if (West == West::Low) return 11057;
							else return 11058;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11062;
							else if (West == West::Low) return 11063;
							else return 11064;
						else
							if (West == West::None) return 11068;
							else if (West == West::Low) return 11069;
							else return 11070;
					else
						if (Up)
							if (West == West::None) return 11074;
							else if (West == West::Low) return 11075;
							else return 11076;
						else
							if (West == West::None) return 11080;
							else if (West == West::Low) return 11081;
							else return 11082;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11086;
							else if (West == West::Low) return 11087;
							else return 11088;
						else
							if (West == West::None) return 11092;
							else if (West == West::Low) return 11093;
							else return 11094;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11098;
							else if (West == West::Low) return 11099;
							else return 11100;
						else
							if (West == West::None) return 11104;
							else if (West == West::Low) return 11105;
							else return 11106;
					else
						if (Up)
							if (West == West::None) return 11110;
							else if (West == West::Low) return 11111;
							else return 11112;
						else
							if (West == West::None) return 11116;
							else if (West == West::Low) return 11117;
							else return 11118;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11122;
							else if (West == West::Low) return 11123;
							else return 11124;
						else
							if (West == West::None) return 11128;
							else if (West == West::Low) return 11129;
							else return 11130;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11134;
							else if (West == West::Low) return 11135;
							else return 11136;
						else
							if (West == West::None) return 11140;
							else if (West == West::Low) return 11141;
							else return 11142;
					else
						if (Up)
							if (West == West::None) return 11146;
							else if (West == West::Low) return 11147;
							else return 11148;
						else
							if (West == West::None) return 11152;
							else if (West == West::Low) return 11153;
							else return 11154;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11158;
							else if (West == West::Low) return 11159;
							else return 11160;
						else
							if (West == West::None) return 11164;
							else if (West == West::Low) return 11165;
							else return 11166;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11170;
							else if (West == West::Low) return 11171;
							else return 11172;
						else
							if (West == West::None) return 11176;
							else if (West == West::Low) return 11177;
							else return 11178;
					else
						if (Up)
							if (West == West::None) return 11182;
							else if (West == West::Low) return 11183;
							else return 11184;
						else
							if (West == West::None) return 11188;
							else if (West == West::Low) return 11189;
							else return 11190;
		}
		BlockState BrickWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace Bricks
	{
		constexpr BlockState Bricks()
		{
			return 1429;
		}
	}
	namespace BrownBanner
	{
		constexpr BlockState BrownBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 8089;
			else if (Rotation == 1) return 8090;
			else if (Rotation == 2) return 8091;
			else if (Rotation == 3) return 8092;
			else if (Rotation == 4) return 8093;
			else if (Rotation == 5) return 8094;
			else if (Rotation == 6) return 8095;
			else if (Rotation == 7) return 8096;
			else if (Rotation == 8) return 8097;
			else if (Rotation == 9) return 8098;
			else if (Rotation == 10) return 8099;
			else if (Rotation == 11) return 8100;
			else if (Rotation == 12) return 8101;
			else if (Rotation == 13) return 8102;
			else if (Rotation == 14) return 8103;
			else return 8104;
		}
		BlockState BrownBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace BrownBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState BrownBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1241;
					else return 1242;
				else
					if (Part == Part::Head) return 1243;
					else return 1244;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1245;
					else return 1246;
				else
					if (Part == Part::Head) return 1247;
					else return 1248;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1249;
					else return 1250;
				else
					if (Part == Part::Head) return 1251;
					else return 1252;
			else
				if (Occupied)
					if (Part == Part::Head) return 1253;
					else return 1254;
				else
					if (Part == Part::Head) return 1255;
					else return 1256;
		}
		BlockState BrownBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace BrownCarpet
	{
		constexpr BlockState BrownCarpet()
		{
			return 7878;
		}
	}
	namespace BrownConcrete
	{
		constexpr BlockState BrownConcrete()
		{
			return 9450;
		}
	}
	namespace BrownConcretePowder
	{
		constexpr BlockState BrownConcretePowder()
		{
			return 9466;
		}
	}
	namespace BrownGlazedTerracotta
	{
		constexpr BlockState BrownGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9422;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9423;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9424;
			else return 9425;
		}
		BlockState BrownGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace BrownMushroom
	{
		constexpr BlockState BrownMushroom()
		{
			return 1425;
		}
	}
	namespace BrownMushroomBlock
	{
		constexpr BlockState BrownMushroomBlock(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West)
		{
			if (Down)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 4505;
								else return 4506;
							else
								if (West) return 4507;
								else return 4508;
						else
							if (Up)
								if (West) return 4509;
								else return 4510;
							else
								if (West) return 4511;
								else return 4512;
					else
						if (South)
							if (Up)
								if (West) return 4513;
								else return 4514;
							else
								if (West) return 4515;
								else return 4516;
						else
							if (Up)
								if (West) return 4517;
								else return 4518;
							else
								if (West) return 4519;
								else return 4520;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 4521;
								else return 4522;
							else
								if (West) return 4523;
								else return 4524;
						else
							if (Up)
								if (West) return 4525;
								else return 4526;
							else
								if (West) return 4527;
								else return 4528;
					else
						if (South)
							if (Up)
								if (West) return 4529;
								else return 4530;
							else
								if (West) return 4531;
								else return 4532;
						else
							if (Up)
								if (West) return 4533;
								else return 4534;
							else
								if (West) return 4535;
								else return 4536;
			else
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 4537;
								else return 4538;
							else
								if (West) return 4539;
								else return 4540;
						else
							if (Up)
								if (West) return 4541;
								else return 4542;
							else
								if (West) return 4543;
								else return 4544;
					else
						if (South)
							if (Up)
								if (West) return 4545;
								else return 4546;
							else
								if (West) return 4547;
								else return 4548;
						else
							if (Up)
								if (West) return 4549;
								else return 4550;
							else
								if (West) return 4551;
								else return 4552;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 4553;
								else return 4554;
							else
								if (West) return 4555;
								else return 4556;
						else
							if (Up)
								if (West) return 4557;
								else return 4558;
							else
								if (West) return 4559;
								else return 4560;
					else
						if (South)
							if (Up)
								if (West) return 4561;
								else return 4562;
							else
								if (West) return 4563;
								else return 4564;
						else
							if (Up)
								if (West) return 4565;
								else return 4566;
							else
								if (West) return 4567;
								else return 4568;
		}
		BlockState BrownMushroomBlock();
		bool Down(BlockState Block);
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool Up(BlockState Block);
		bool West(BlockState Block);
	}
	namespace BrownShulkerBox
	{
		constexpr BlockState BrownShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9350;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9351;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9352;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9353;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9354;
			else return 9355;
		}
		BlockState BrownShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace BrownStainedGlass
	{
		constexpr BlockState BrownStainedGlass()
		{
			return 4107;
		}
	}
	namespace BrownStainedGlassPane
	{
		constexpr BlockState BrownStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7249;
						else return 7250;
					else
						if (West) return 7253;
						else return 7254;
				else
					if (South)
						if (West) return 7257;
						else return 7258;
					else
						if (West) return 7261;
						else return 7262;
			else
				if (North)
					if (South)
						if (West) return 7265;
						else return 7266;
					else
						if (West) return 7269;
						else return 7270;
				else
					if (South)
						if (West) return 7273;
						else return 7274;
					else
						if (West) return 7277;
						else return 7278;
		}
		BlockState BrownStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace BrownTerracotta
	{
		constexpr BlockState BrownTerracotta()
		{
			return 6859;
		}
	}
	namespace BrownWallBanner
	{
		constexpr BlockState BrownWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8201;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8202;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8203;
			else return 8204;
		}
		BlockState BrownWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace BrownWool
	{
		constexpr BlockState BrownWool()
		{
			return 1396;
		}
	}
	namespace BubbleColumn
	{
		constexpr BlockState BubbleColumn(const bool Drag)
		{
			if (Drag) return 9667;
			else return 9668;
		}
		BlockState BubbleColumn();
		bool Drag(BlockState Block);
	}
	namespace BubbleCoral
	{
		constexpr BlockState BubbleCoral()
		{
			return 9535;
		}
	}
	namespace BubbleCoralBlock
	{
		constexpr BlockState BubbleCoralBlock()
		{
			return 9517;
		}
	}
	namespace BubbleCoralFan
	{
		constexpr BlockState BubbleCoralFan()
		{
			return 9555;
		}
	}
	namespace BubbleCoralWallFan
	{
		constexpr BlockState BubbleCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9617;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9619;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9621;
			else return 9623;
		}
		BlockState BubbleCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace Cactus
	{
		constexpr BlockState Cactus(const unsigned char Age)
		{
			if (Age == 0) return 3931;
			else if (Age == 1) return 3932;
			else if (Age == 2) return 3933;
			else if (Age == 3) return 3934;
			else if (Age == 4) return 3935;
			else if (Age == 5) return 3936;
			else if (Age == 6) return 3937;
			else if (Age == 7) return 3938;
			else if (Age == 8) return 3939;
			else if (Age == 9) return 3940;
			else if (Age == 10) return 3941;
			else if (Age == 11) return 3942;
			else if (Age == 12) return 3943;
			else if (Age == 13) return 3944;
			else if (Age == 14) return 3945;
			else return 3946;
		}
		BlockState Cactus();
		unsigned char Age(BlockState Block);
	}
	namespace Cake
	{
		constexpr BlockState Cake(const unsigned char Bites)
		{
			if (Bites == 0) return 4024;
			else if (Bites == 1) return 4025;
			else if (Bites == 2) return 4026;
			else if (Bites == 3) return 4027;
			else if (Bites == 4) return 4028;
			else if (Bites == 5) return 4029;
			else return 4030;
		}
		BlockState Cake();
		unsigned char Bites(BlockState Block);
	}
	namespace Campfire
	{
		constexpr BlockState Campfire(const eBlockFace Facing, const bool Lit, const bool SignalFire)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Lit)
					if (SignalFire) return 14891;
					else return 14893;
				else
					if (SignalFire) return 14895;
					else return 14897;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Lit)
					if (SignalFire) return 14899;
					else return 14901;
				else
					if (SignalFire) return 14903;
					else return 14905;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Lit)
					if (SignalFire) return 14907;
					else return 14909;
				else
					if (SignalFire) return 14911;
					else return 14913;
			else
				if (Lit)
					if (SignalFire) return 14915;
					else return 14917;
				else
					if (SignalFire) return 14919;
					else return 14921;
		}
		BlockState Campfire();
		eBlockFace Facing(BlockState Block);
		bool Lit(BlockState Block);
		bool SignalFire(BlockState Block);
	}
	namespace Carrots
	{
		constexpr BlockState Carrots(const unsigned char Age)
		{
			if (Age == 0) return 6330;
			else if (Age == 1) return 6331;
			else if (Age == 2) return 6332;
			else if (Age == 3) return 6333;
			else if (Age == 4) return 6334;
			else if (Age == 5) return 6335;
			else if (Age == 6) return 6336;
			else return 6337;
		}
		BlockState Carrots();
		unsigned char Age(BlockState Block);
	}
	namespace CartographyTable
	{
		constexpr BlockState CartographyTable()
		{
			return 14819;
		}
	}
	namespace CarvedPumpkin
	{
		constexpr BlockState CarvedPumpkin(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4016;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4017;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4018;
			else return 4019;
		}
		BlockState CarvedPumpkin();
		eBlockFace Facing(BlockState Block);
	}
	namespace Cauldron
	{
		constexpr BlockState Cauldron(const unsigned char Level)
		{
			if (Level == 0) return 5141;
			else if (Level == 1) return 5142;
			else if (Level == 2) return 5143;
			else return 5144;
		}
		BlockState Cauldron();
		unsigned char Level(BlockState Block);
	}
	namespace CaveAir
	{
		constexpr BlockState CaveAir()
		{
			return 9666;
		}
	}
	namespace Chain
	{
		constexpr BlockState Chain()
		{
			return 4730;
		}
	}
	namespace ChainCommandBlock
	{
		constexpr BlockState ChainCommandBlock(const bool Conditional, const eBlockFace Facing)
		{
			if (Conditional)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9237;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9238;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9239;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9240;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9241;
				else return 9242;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9243;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9244;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9245;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9246;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9247;
				else return 9248;
		}
		BlockState ChainCommandBlock();
		bool Conditional(BlockState Block);
		eBlockFace Facing(BlockState Block);
	}
	namespace Chest
	{
		enum class Type
		{
			Single,
			Left,
			Right
		};
		constexpr BlockState Chest(const eBlockFace Facing, const enum Type Type)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Type == Type::Single) return 2035;
				else if (Type == Type::Left) return 2037;
				else return 2039;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Type == Type::Single) return 2041;
				else if (Type == Type::Left) return 2043;
				else return 2045;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Type == Type::Single) return 2047;
				else if (Type == Type::Left) return 2049;
				else return 2051;
			else
				if (Type == Type::Single) return 2053;
				else if (Type == Type::Left) return 2055;
				else return 2057;
		}
		BlockState Chest();
		eBlockFace Facing(BlockState Block);
		enum Type Type(BlockState Block);
	}
	namespace ChippedAnvil
	{
		constexpr BlockState ChippedAnvil(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6614;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6615;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6616;
			else return 6617;
		}
		BlockState ChippedAnvil();
		eBlockFace Facing(BlockState Block);
	}
	namespace ChiseledNetherBricks
	{
		constexpr BlockState ChiseledNetherBricks()
		{
			return 17101;
		}
	}
	namespace ChiseledPolishedBlackstone
	{
		constexpr BlockState ChiseledPolishedBlackstone()
		{
			return 16253;
		}
	}
	namespace ChiseledQuartzBlock
	{
		constexpr BlockState ChiseledQuartzBlock()
		{
			return 6739;
		}
	}
	namespace ChiseledRedSandstone
	{
		constexpr BlockState ChiseledRedSandstone()
		{
			return 8218;
		}
	}
	namespace ChiseledSandstone
	{
		constexpr BlockState ChiseledSandstone()
		{
			return 247;
		}
	}
	namespace ChiseledStoneBricks
	{
		constexpr BlockState ChiseledStoneBricks()
		{
			return 4498;
		}
	}
	namespace ChorusFlower
	{
		constexpr BlockState ChorusFlower(const unsigned char Age)
		{
			if (Age == 0) return 9128;
			else if (Age == 1) return 9129;
			else if (Age == 2) return 9130;
			else if (Age == 3) return 9131;
			else if (Age == 4) return 9132;
			else return 9133;
		}
		BlockState ChorusFlower();
		unsigned char Age(BlockState Block);
	}
	namespace ChorusPlant
	{
		constexpr BlockState ChorusPlant(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West)
		{
			if (Down)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 9064;
								else return 9065;
							else
								if (West) return 9066;
								else return 9067;
						else
							if (Up)
								if (West) return 9068;
								else return 9069;
							else
								if (West) return 9070;
								else return 9071;
					else
						if (South)
							if (Up)
								if (West) return 9072;
								else return 9073;
							else
								if (West) return 9074;
								else return 9075;
						else
							if (Up)
								if (West) return 9076;
								else return 9077;
							else
								if (West) return 9078;
								else return 9079;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 9080;
								else return 9081;
							else
								if (West) return 9082;
								else return 9083;
						else
							if (Up)
								if (West) return 9084;
								else return 9085;
							else
								if (West) return 9086;
								else return 9087;
					else
						if (South)
							if (Up)
								if (West) return 9088;
								else return 9089;
							else
								if (West) return 9090;
								else return 9091;
						else
							if (Up)
								if (West) return 9092;
								else return 9093;
							else
								if (West) return 9094;
								else return 9095;
			else
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 9096;
								else return 9097;
							else
								if (West) return 9098;
								else return 9099;
						else
							if (Up)
								if (West) return 9100;
								else return 9101;
							else
								if (West) return 9102;
								else return 9103;
					else
						if (South)
							if (Up)
								if (West) return 9104;
								else return 9105;
							else
								if (West) return 9106;
								else return 9107;
						else
							if (Up)
								if (West) return 9108;
								else return 9109;
							else
								if (West) return 9110;
								else return 9111;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 9112;
								else return 9113;
							else
								if (West) return 9114;
								else return 9115;
						else
							if (Up)
								if (West) return 9116;
								else return 9117;
							else
								if (West) return 9118;
								else return 9119;
					else
						if (South)
							if (Up)
								if (West) return 9120;
								else return 9121;
							else
								if (West) return 9122;
								else return 9123;
						else
							if (Up)
								if (West) return 9124;
								else return 9125;
							else
								if (West) return 9126;
								else return 9127;
		}
		BlockState ChorusPlant();
		bool Down(BlockState Block);
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool Up(BlockState Block);
		bool West(BlockState Block);
	}
	namespace Clay
	{
		constexpr BlockState Clay()
		{
			return 3947;
		}
	}
	namespace CoalBlock
	{
		constexpr BlockState CoalBlock()
		{
			return 7883;
		}
	}
	namespace CoalOre
	{
		constexpr BlockState CoalOre()
		{
			return 71;
		}
	}
	namespace CoarseDirt
	{
		constexpr BlockState CoarseDirt()
		{
			return 11;
		}
	}
	namespace Cobblestone
	{
		constexpr BlockState Cobblestone()
		{
			return 14;
		}
	}
	namespace CobblestoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState CobblestoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8367;
			else if (Type == Type::Bottom) return 8369;
			else return 8371;
		}
		BlockState CobblestoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace CobblestoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState CobblestoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 3656;
					else if (Shape == Shape::InnerLeft) return 3658;
					else if (Shape == Shape::InnerRight) return 3660;
					else if (Shape == Shape::OuterLeft) return 3662;
					else return 3664;
				else
					if (Shape == Shape::Straight) return 3666;
					else if (Shape == Shape::InnerLeft) return 3668;
					else if (Shape == Shape::InnerRight) return 3670;
					else if (Shape == Shape::OuterLeft) return 3672;
					else return 3674;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 3676;
					else if (Shape == Shape::InnerLeft) return 3678;
					else if (Shape == Shape::InnerRight) return 3680;
					else if (Shape == Shape::OuterLeft) return 3682;
					else return 3684;
				else
					if (Shape == Shape::Straight) return 3686;
					else if (Shape == Shape::InnerLeft) return 3688;
					else if (Shape == Shape::InnerRight) return 3690;
					else if (Shape == Shape::OuterLeft) return 3692;
					else return 3694;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 3696;
					else if (Shape == Shape::InnerLeft) return 3698;
					else if (Shape == Shape::InnerRight) return 3700;
					else if (Shape == Shape::OuterLeft) return 3702;
					else return 3704;
				else
					if (Shape == Shape::Straight) return 3706;
					else if (Shape == Shape::InnerLeft) return 3708;
					else if (Shape == Shape::InnerRight) return 3710;
					else if (Shape == Shape::OuterLeft) return 3712;
					else return 3714;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 3716;
					else if (Shape == Shape::InnerLeft) return 3718;
					else if (Shape == Shape::InnerRight) return 3720;
					else if (Shape == Shape::OuterLeft) return 3722;
					else return 3724;
				else
					if (Shape == Shape::Straight) return 3726;
					else if (Shape == Shape::InnerLeft) return 3728;
					else if (Shape == Shape::InnerRight) return 3730;
					else if (Shape == Shape::OuterLeft) return 3732;
					else return 3734;
		}
		BlockState CobblestoneStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState CobblestoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5660;
							else if (West == West::Low) return 5661;
							else return 5662;
						else
							if (West == West::None) return 5666;
							else if (West == West::Low) return 5667;
							else return 5668;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5672;
							else if (West == West::Low) return 5673;
							else return 5674;
						else
							if (West == West::None) return 5678;
							else if (West == West::Low) return 5679;
							else return 5680;
					else
						if (Up)
							if (West == West::None) return 5684;
							else if (West == West::Low) return 5685;
							else return 5686;
						else
							if (West == West::None) return 5690;
							else if (West == West::Low) return 5691;
							else return 5692;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5696;
							else if (West == West::Low) return 5697;
							else return 5698;
						else
							if (West == West::None) return 5702;
							else if (West == West::Low) return 5703;
							else return 5704;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5708;
							else if (West == West::Low) return 5709;
							else return 5710;
						else
							if (West == West::None) return 5714;
							else if (West == West::Low) return 5715;
							else return 5716;
					else
						if (Up)
							if (West == West::None) return 5720;
							else if (West == West::Low) return 5721;
							else return 5722;
						else
							if (West == West::None) return 5726;
							else if (West == West::Low) return 5727;
							else return 5728;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5732;
							else if (West == West::Low) return 5733;
							else return 5734;
						else
							if (West == West::None) return 5738;
							else if (West == West::Low) return 5739;
							else return 5740;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5744;
							else if (West == West::Low) return 5745;
							else return 5746;
						else
							if (West == West::None) return 5750;
							else if (West == West::Low) return 5751;
							else return 5752;
					else
						if (Up)
							if (West == West::None) return 5756;
							else if (West == West::Low) return 5757;
							else return 5758;
						else
							if (West == West::None) return 5762;
							else if (West == West::Low) return 5763;
							else return 5764;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5768;
							else if (West == West::Low) return 5769;
							else return 5770;
						else
							if (West == West::None) return 5774;
							else if (West == West::Low) return 5775;
							else return 5776;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5780;
							else if (West == West::Low) return 5781;
							else return 5782;
						else
							if (West == West::None) return 5786;
							else if (West == West::Low) return 5787;
							else return 5788;
					else
						if (Up)
							if (West == West::None) return 5792;
							else if (West == West::Low) return 5793;
							else return 5794;
						else
							if (West == West::None) return 5798;
							else if (West == West::Low) return 5799;
							else return 5800;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5804;
							else if (West == West::Low) return 5805;
							else return 5806;
						else
							if (West == West::None) return 5810;
							else if (West == West::Low) return 5811;
							else return 5812;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5816;
							else if (West == West::Low) return 5817;
							else return 5818;
						else
							if (West == West::None) return 5822;
							else if (West == West::Low) return 5823;
							else return 5824;
					else
						if (Up)
							if (West == West::None) return 5828;
							else if (West == West::Low) return 5829;
							else return 5830;
						else
							if (West == West::None) return 5834;
							else if (West == West::Low) return 5835;
							else return 5836;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5840;
							else if (West == West::Low) return 5841;
							else return 5842;
						else
							if (West == West::None) return 5846;
							else if (West == West::Low) return 5847;
							else return 5848;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5852;
							else if (West == West::Low) return 5853;
							else return 5854;
						else
							if (West == West::None) return 5858;
							else if (West == West::Low) return 5859;
							else return 5860;
					else
						if (Up)
							if (West == West::None) return 5864;
							else if (West == West::Low) return 5865;
							else return 5866;
						else
							if (West == West::None) return 5870;
							else if (West == West::Low) return 5871;
							else return 5872;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5876;
							else if (West == West::Low) return 5877;
							else return 5878;
						else
							if (West == West::None) return 5882;
							else if (West == West::Low) return 5883;
							else return 5884;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5888;
							else if (West == West::Low) return 5889;
							else return 5890;
						else
							if (West == West::None) return 5894;
							else if (West == West::Low) return 5895;
							else return 5896;
					else
						if (Up)
							if (West == West::None) return 5900;
							else if (West == West::Low) return 5901;
							else return 5902;
						else
							if (West == West::None) return 5906;
							else if (West == West::Low) return 5907;
							else return 5908;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5912;
							else if (West == West::Low) return 5913;
							else return 5914;
						else
							if (West == West::None) return 5918;
							else if (West == West::Low) return 5919;
							else return 5920;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5924;
							else if (West == West::Low) return 5925;
							else return 5926;
						else
							if (West == West::None) return 5930;
							else if (West == West::Low) return 5931;
							else return 5932;
					else
						if (Up)
							if (West == West::None) return 5936;
							else if (West == West::Low) return 5937;
							else return 5938;
						else
							if (West == West::None) return 5942;
							else if (West == West::Low) return 5943;
							else return 5944;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5948;
							else if (West == West::Low) return 5949;
							else return 5950;
						else
							if (West == West::None) return 5954;
							else if (West == West::Low) return 5955;
							else return 5956;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5960;
							else if (West == West::Low) return 5961;
							else return 5962;
						else
							if (West == West::None) return 5966;
							else if (West == West::Low) return 5967;
							else return 5968;
					else
						if (Up)
							if (West == West::None) return 5972;
							else if (West == West::Low) return 5973;
							else return 5974;
						else
							if (West == West::None) return 5978;
							else if (West == West::Low) return 5979;
							else return 5980;
		}
		BlockState CobblestoneWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace Cobweb
	{
		constexpr BlockState Cobweb()
		{
			return 1341;
		}
	}
	namespace Cocoa
	{
		constexpr BlockState Cocoa(const unsigned char Age, const eBlockFace Facing)
		{
			if (Age == 0)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5158;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5159;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5160;
				else return 5161;
			else if (Age == 1)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5162;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5163;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5164;
				else return 5165;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5166;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5167;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5168;
				else return 5169;
		}
		BlockState Cocoa();
		unsigned char Age(BlockState Block);
		eBlockFace Facing(BlockState Block);
	}
	namespace CommandBlock
	{
		constexpr BlockState CommandBlock(const bool Conditional, const eBlockFace Facing)
		{
			if (Conditional)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5644;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 5645;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5646;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5647;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 5648;
				else return 5649;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5650;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 5651;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5652;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5653;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 5654;
				else return 5655;
		}
		BlockState CommandBlock();
		bool Conditional(BlockState Block);
		eBlockFace Facing(BlockState Block);
	}
	namespace Comparator
	{
		enum class Mode
		{
			Compare,
			Subtract
		};
		constexpr BlockState Comparator(const eBlockFace Facing, const enum Mode Mode, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Mode == Mode::Compare)
					if (Powered) return 6678;
					else return 6679;
				else
					if (Powered) return 6680;
					else return 6681;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Mode == Mode::Compare)
					if (Powered) return 6682;
					else return 6683;
				else
					if (Powered) return 6684;
					else return 6685;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Mode == Mode::Compare)
					if (Powered) return 6686;
					else return 6687;
				else
					if (Powered) return 6688;
					else return 6689;
			else
				if (Mode == Mode::Compare)
					if (Powered) return 6690;
					else return 6691;
				else
					if (Powered) return 6692;
					else return 6693;
		}
		BlockState Comparator();
		eBlockFace Facing(BlockState Block);
		enum Mode Mode(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace Composter
	{
		constexpr BlockState Composter(const unsigned char Level)
		{
			if (Level == 0) return 15751;
			else if (Level == 1) return 15752;
			else if (Level == 2) return 15753;
			else if (Level == 3) return 15754;
			else if (Level == 4) return 15755;
			else if (Level == 5) return 15756;
			else if (Level == 6) return 15757;
			else if (Level == 7) return 15758;
			else return 15759;
		}
		BlockState Composter();
		unsigned char Level(BlockState Block);
	}
	namespace Conduit
	{
		constexpr BlockState Conduit()
		{
			return 9650;
		}
	}
	namespace Cornflower
	{
		constexpr BlockState Cornflower()
		{
			return 1422;
		}
	}
	namespace CrackedNetherBricks
	{
		constexpr BlockState CrackedNetherBricks()
		{
			return 17102;
		}
	}
	namespace CrackedPolishedBlackstoneBricks
	{
		constexpr BlockState CrackedPolishedBlackstoneBricks()
		{
			return 16252;
		}
	}
	namespace CrackedStoneBricks
	{
		constexpr BlockState CrackedStoneBricks()
		{
			return 4497;
		}
	}
	namespace CraftingTable
	{
		constexpr BlockState CraftingTable()
		{
			return 3356;
		}
	}
	namespace CreeperHead
	{
		constexpr BlockState CreeperHead(const unsigned char Rotation)
		{
			if (Rotation == 0) return 6570;
			else if (Rotation == 1) return 6571;
			else if (Rotation == 2) return 6572;
			else if (Rotation == 3) return 6573;
			else if (Rotation == 4) return 6574;
			else if (Rotation == 5) return 6575;
			else if (Rotation == 6) return 6576;
			else if (Rotation == 7) return 6577;
			else if (Rotation == 8) return 6578;
			else if (Rotation == 9) return 6579;
			else if (Rotation == 10) return 6580;
			else if (Rotation == 11) return 6581;
			else if (Rotation == 12) return 6582;
			else if (Rotation == 13) return 6583;
			else if (Rotation == 14) return 6584;
			else return 6585;
		}
		BlockState CreeperHead();
		unsigned char Rotation(BlockState Block);
	}
	namespace CreeperWallHead
	{
		constexpr BlockState CreeperWallHead(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6586;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6587;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6588;
			else return 6589;
		}
		BlockState CreeperWallHead();
		eBlockFace Facing(BlockState Block);
	}
	namespace CrimsonButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState CrimsonButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 15479;
					else return 15480;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 15481;
					else return 15482;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 15483;
					else return 15484;
				else
					if (Powered) return 15485;
					else return 15486;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 15487;
					else return 15488;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 15489;
					else return 15490;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 15491;
					else return 15492;
				else
					if (Powered) return 15493;
					else return 15494;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 15495;
					else return 15496;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 15497;
					else return 15498;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 15499;
					else return 15500;
				else
					if (Powered) return 15501;
					else return 15502;
		}
		BlockState CrimsonButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace CrimsonDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr BlockState CrimsonDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15527;
							else return 15528;
						else
							if (Powered) return 15529;
							else return 15530;
					else
						if (Open)
							if (Powered) return 15531;
							else return 15532;
						else
							if (Powered) return 15533;
							else return 15534;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15535;
							else return 15536;
						else
							if (Powered) return 15537;
							else return 15538;
					else
						if (Open)
							if (Powered) return 15539;
							else return 15540;
						else
							if (Powered) return 15541;
							else return 15542;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15543;
							else return 15544;
						else
							if (Powered) return 15545;
							else return 15546;
					else
						if (Open)
							if (Powered) return 15547;
							else return 15548;
						else
							if (Powered) return 15549;
							else return 15550;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15551;
							else return 15552;
						else
							if (Powered) return 15553;
							else return 15554;
					else
						if (Open)
							if (Powered) return 15555;
							else return 15556;
						else
							if (Powered) return 15557;
							else return 15558;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15559;
							else return 15560;
						else
							if (Powered) return 15561;
							else return 15562;
					else
						if (Open)
							if (Powered) return 15563;
							else return 15564;
						else
							if (Powered) return 15565;
							else return 15566;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15567;
							else return 15568;
						else
							if (Powered) return 15569;
							else return 15570;
					else
						if (Open)
							if (Powered) return 15571;
							else return 15572;
						else
							if (Powered) return 15573;
							else return 15574;
			else
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15575;
							else return 15576;
						else
							if (Powered) return 15577;
							else return 15578;
					else
						if (Open)
							if (Powered) return 15579;
							else return 15580;
						else
							if (Powered) return 15581;
							else return 15582;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15583;
							else return 15584;
						else
							if (Powered) return 15585;
							else return 15586;
					else
						if (Open)
							if (Powered) return 15587;
							else return 15588;
						else
							if (Powered) return 15589;
							else return 15590;
		}
		BlockState CrimsonDoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Hinge Hinge(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace CrimsonFence
	{
		constexpr BlockState CrimsonFence(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 15065;
						else return 15066;
					else
						if (West) return 15069;
						else return 15070;
				else
					if (South)
						if (West) return 15073;
						else return 15074;
					else
						if (West) return 15077;
						else return 15078;
			else
				if (North)
					if (South)
						if (West) return 15081;
						else return 15082;
					else
						if (West) return 15085;
						else return 15086;
				else
					if (South)
						if (West) return 15089;
						else return 15090;
					else
						if (West) return 15093;
						else return 15094;
		}
		BlockState CrimsonFence();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace CrimsonFenceGate
	{
		constexpr BlockState CrimsonFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (InWall)
					if (Open)
						if (Powered) return 15255;
						else return 15256;
					else
						if (Powered) return 15257;
						else return 15258;
				else
					if (Open)
						if (Powered) return 15259;
						else return 15260;
					else
						if (Powered) return 15261;
						else return 15262;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (InWall)
					if (Open)
						if (Powered) return 15263;
						else return 15264;
					else
						if (Powered) return 15265;
						else return 15266;
				else
					if (Open)
						if (Powered) return 15267;
						else return 15268;
					else
						if (Powered) return 15269;
						else return 15270;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (InWall)
					if (Open)
						if (Powered) return 15271;
						else return 15272;
					else
						if (Powered) return 15273;
						else return 15274;
				else
					if (Open)
						if (Powered) return 15275;
						else return 15276;
					else
						if (Powered) return 15277;
						else return 15278;
			else
				if (InWall)
					if (Open)
						if (Powered) return 15279;
						else return 15280;
					else
						if (Powered) return 15281;
						else return 15282;
				else
					if (Open)
						if (Powered) return 15283;
						else return 15284;
					else
						if (Powered) return 15285;
						else return 15286;
		}
		BlockState CrimsonFenceGate();
		eBlockFace Facing(BlockState Block);
		bool InWall(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace CrimsonFungus
	{
		constexpr BlockState CrimsonFungus()
		{
			return 14988;
		}
	}
	namespace CrimsonHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState CrimsonHyphae(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 14981;
			else if (Axis == Axis::Y) return 14982;
			else return 14983;
		}
		BlockState CrimsonHyphae();
		enum Axis Axis(BlockState Block);
	}
	namespace CrimsonNylium
	{
		constexpr BlockState CrimsonNylium()
		{
			return 14987;
		}
	}
	namespace CrimsonPlanks
	{
		constexpr BlockState CrimsonPlanks()
		{
			return 15045;
		}
	}
	namespace CrimsonPressurePlate
	{
		constexpr BlockState CrimsonPressurePlate(const bool Powered)
		{
			if (Powered) return 15059;
			else return 15060;
		}
		BlockState CrimsonPressurePlate();
		bool Powered(BlockState Block);
	}
	namespace CrimsonRoots
	{
		constexpr BlockState CrimsonRoots()
		{
			return 15044;
		}
	}
	namespace CrimsonSign
	{
		constexpr BlockState CrimsonSign(const unsigned char Rotation)
		{
			if (Rotation == 0) return 15656;
			else if (Rotation == 1) return 15658;
			else if (Rotation == 2) return 15660;
			else if (Rotation == 3) return 15662;
			else if (Rotation == 4) return 15664;
			else if (Rotation == 5) return 15666;
			else if (Rotation == 6) return 15668;
			else if (Rotation == 7) return 15670;
			else if (Rotation == 8) return 15672;
			else if (Rotation == 9) return 15674;
			else if (Rotation == 10) return 15676;
			else if (Rotation == 11) return 15678;
			else if (Rotation == 12) return 15680;
			else if (Rotation == 13) return 15682;
			else if (Rotation == 14) return 15684;
			else return 15686;
		}
		BlockState CrimsonSign();
		unsigned char Rotation(BlockState Block);
	}
	namespace CrimsonSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState CrimsonSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 15048;
			else if (Type == Type::Bottom) return 15050;
			else return 15052;
		}
		BlockState CrimsonSlab();
		enum Type Type(BlockState Block);
	}
	namespace CrimsonStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState CrimsonStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15320;
					else if (Shape == Shape::InnerLeft) return 15322;
					else if (Shape == Shape::InnerRight) return 15324;
					else if (Shape == Shape::OuterLeft) return 15326;
					else return 15328;
				else
					if (Shape == Shape::Straight) return 15330;
					else if (Shape == Shape::InnerLeft) return 15332;
					else if (Shape == Shape::InnerRight) return 15334;
					else if (Shape == Shape::OuterLeft) return 15336;
					else return 15338;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15340;
					else if (Shape == Shape::InnerLeft) return 15342;
					else if (Shape == Shape::InnerRight) return 15344;
					else if (Shape == Shape::OuterLeft) return 15346;
					else return 15348;
				else
					if (Shape == Shape::Straight) return 15350;
					else if (Shape == Shape::InnerLeft) return 15352;
					else if (Shape == Shape::InnerRight) return 15354;
					else if (Shape == Shape::OuterLeft) return 15356;
					else return 15358;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15360;
					else if (Shape == Shape::InnerLeft) return 15362;
					else if (Shape == Shape::InnerRight) return 15364;
					else if (Shape == Shape::OuterLeft) return 15366;
					else return 15368;
				else
					if (Shape == Shape::Straight) return 15370;
					else if (Shape == Shape::InnerLeft) return 15372;
					else if (Shape == Shape::InnerRight) return 15374;
					else if (Shape == Shape::OuterLeft) return 15376;
					else return 15378;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15380;
					else if (Shape == Shape::InnerLeft) return 15382;
					else if (Shape == Shape::InnerRight) return 15384;
					else if (Shape == Shape::OuterLeft) return 15386;
					else return 15388;
				else
					if (Shape == Shape::Straight) return 15390;
					else if (Shape == Shape::InnerLeft) return 15392;
					else if (Shape == Shape::InnerRight) return 15394;
					else if (Shape == Shape::OuterLeft) return 15396;
					else return 15398;
		}
		BlockState CrimsonStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace CrimsonStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState CrimsonStem(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 14975;
			else if (Axis == Axis::Y) return 14976;
			else return 14977;
		}
		BlockState CrimsonStem();
		enum Axis Axis(BlockState Block);
	}
	namespace CrimsonTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr BlockState CrimsonTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 15128;
						else return 15130;
					else
						if (Powered) return 15132;
						else return 15134;
				else
					if (Open)
						if (Powered) return 15136;
						else return 15138;
					else
						if (Powered) return 15140;
						else return 15142;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 15144;
						else return 15146;
					else
						if (Powered) return 15148;
						else return 15150;
				else
					if (Open)
						if (Powered) return 15152;
						else return 15154;
					else
						if (Powered) return 15156;
						else return 15158;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 15160;
						else return 15162;
					else
						if (Powered) return 15164;
						else return 15166;
				else
					if (Open)
						if (Powered) return 15168;
						else return 15170;
					else
						if (Powered) return 15172;
						else return 15174;
			else
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 15176;
						else return 15178;
					else
						if (Powered) return 15180;
						else return 15182;
				else
					if (Open)
						if (Powered) return 15184;
						else return 15186;
					else
						if (Powered) return 15188;
						else return 15190;
		}
		BlockState CrimsonTrapdoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace CrimsonWallSign
	{
		constexpr BlockState CrimsonWallSign(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 15720;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 15722;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 15724;
			else return 15726;
		}
		BlockState CrimsonWallSign();
		eBlockFace Facing(BlockState Block);
	}
	namespace CryingObsidian
	{
		constexpr BlockState CryingObsidian()
		{
			return 15828;
		}
	}
	namespace CutRedSandstone
	{
		constexpr BlockState CutRedSandstone()
		{
			return 8219;
		}
	}
	namespace CutRedSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState CutRedSandstoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8403;
			else if (Type == Type::Bottom) return 8405;
			else return 8407;
		}
		BlockState CutRedSandstoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace CutSandstone
	{
		constexpr BlockState CutSandstone()
		{
			return 248;
		}
	}
	namespace CutSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState CutSandstoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8355;
			else if (Type == Type::Bottom) return 8357;
			else return 8359;
		}
		BlockState CutSandstoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace CyanBanner
	{
		constexpr BlockState CyanBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 8041;
			else if (Rotation == 1) return 8042;
			else if (Rotation == 2) return 8043;
			else if (Rotation == 3) return 8044;
			else if (Rotation == 4) return 8045;
			else if (Rotation == 5) return 8046;
			else if (Rotation == 6) return 8047;
			else if (Rotation == 7) return 8048;
			else if (Rotation == 8) return 8049;
			else if (Rotation == 9) return 8050;
			else if (Rotation == 10) return 8051;
			else if (Rotation == 11) return 8052;
			else if (Rotation == 12) return 8053;
			else if (Rotation == 13) return 8054;
			else if (Rotation == 14) return 8055;
			else return 8056;
		}
		BlockState CyanBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace CyanBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState CyanBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1193;
					else return 1194;
				else
					if (Part == Part::Head) return 1195;
					else return 1196;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1197;
					else return 1198;
				else
					if (Part == Part::Head) return 1199;
					else return 1200;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1201;
					else return 1202;
				else
					if (Part == Part::Head) return 1203;
					else return 1204;
			else
				if (Occupied)
					if (Part == Part::Head) return 1205;
					else return 1206;
				else
					if (Part == Part::Head) return 1207;
					else return 1208;
		}
		BlockState CyanBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace CyanCarpet
	{
		constexpr BlockState CyanCarpet()
		{
			return 7875;
		}
	}
	namespace CyanConcrete
	{
		constexpr BlockState CyanConcrete()
		{
			return 9447;
		}
	}
	namespace CyanConcretePowder
	{
		constexpr BlockState CyanConcretePowder()
		{
			return 9463;
		}
	}
	namespace CyanGlazedTerracotta
	{
		constexpr BlockState CyanGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9410;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9411;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9412;
			else return 9413;
		}
		BlockState CyanGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace CyanShulkerBox
	{
		constexpr BlockState CyanShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9332;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9333;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9334;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9335;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9336;
			else return 9337;
		}
		BlockState CyanShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace CyanStainedGlass
	{
		constexpr BlockState CyanStainedGlass()
		{
			return 4104;
		}
	}
	namespace CyanStainedGlassPane
	{
		constexpr BlockState CyanStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7153;
						else return 7154;
					else
						if (West) return 7157;
						else return 7158;
				else
					if (South)
						if (West) return 7161;
						else return 7162;
					else
						if (West) return 7165;
						else return 7166;
			else
				if (North)
					if (South)
						if (West) return 7169;
						else return 7170;
					else
						if (West) return 7173;
						else return 7174;
				else
					if (South)
						if (West) return 7177;
						else return 7178;
					else
						if (West) return 7181;
						else return 7182;
		}
		BlockState CyanStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace CyanTerracotta
	{
		constexpr BlockState CyanTerracotta()
		{
			return 6856;
		}
	}
	namespace CyanWallBanner
	{
		constexpr BlockState CyanWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8189;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8190;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8191;
			else return 8192;
		}
		BlockState CyanWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace CyanWool
	{
		constexpr BlockState CyanWool()
		{
			return 1393;
		}
	}
	namespace DamagedAnvil
	{
		constexpr BlockState DamagedAnvil(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6618;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6619;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6620;
			else return 6621;
		}
		BlockState DamagedAnvil();
		eBlockFace Facing(BlockState Block);
	}
	namespace Dandelion
	{
		constexpr BlockState Dandelion()
		{
			return 1412;
		}
	}
	namespace DarkOakButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState DarkOakButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6466;
					else return 6467;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6468;
					else return 6469;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6470;
					else return 6471;
				else
					if (Powered) return 6472;
					else return 6473;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6474;
					else return 6475;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6476;
					else return 6477;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6478;
					else return 6479;
				else
					if (Powered) return 6480;
					else return 6481;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6482;
					else return 6483;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6484;
					else return 6485;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6486;
					else return 6487;
				else
					if (Powered) return 6488;
					else return 6489;
		}
		BlockState DarkOakButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace DarkOakDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr BlockState DarkOakDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8994;
							else return 8995;
						else
							if (Powered) return 8996;
							else return 8997;
					else
						if (Open)
							if (Powered) return 8998;
							else return 8999;
						else
							if (Powered) return 9000;
							else return 9001;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 9002;
							else return 9003;
						else
							if (Powered) return 9004;
							else return 9005;
					else
						if (Open)
							if (Powered) return 9006;
							else return 9007;
						else
							if (Powered) return 9008;
							else return 9009;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 9010;
							else return 9011;
						else
							if (Powered) return 9012;
							else return 9013;
					else
						if (Open)
							if (Powered) return 9014;
							else return 9015;
						else
							if (Powered) return 9016;
							else return 9017;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 9018;
							else return 9019;
						else
							if (Powered) return 9020;
							else return 9021;
					else
						if (Open)
							if (Powered) return 9022;
							else return 9023;
						else
							if (Powered) return 9024;
							else return 9025;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 9026;
							else return 9027;
						else
							if (Powered) return 9028;
							else return 9029;
					else
						if (Open)
							if (Powered) return 9030;
							else return 9031;
						else
							if (Powered) return 9032;
							else return 9033;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 9034;
							else return 9035;
						else
							if (Powered) return 9036;
							else return 9037;
					else
						if (Open)
							if (Powered) return 9038;
							else return 9039;
						else
							if (Powered) return 9040;
							else return 9041;
			else
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 9042;
							else return 9043;
						else
							if (Powered) return 9044;
							else return 9045;
					else
						if (Open)
							if (Powered) return 9046;
							else return 9047;
						else
							if (Powered) return 9048;
							else return 9049;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 9050;
							else return 9051;
						else
							if (Powered) return 9052;
							else return 9053;
					else
						if (Open)
							if (Powered) return 9054;
							else return 9055;
						else
							if (Powered) return 9056;
							else return 9057;
		}
		BlockState DarkOakDoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Hinge Hinge(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace DarkOakFence
	{
		constexpr BlockState DarkOakFence(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 8708;
						else return 8709;
					else
						if (West) return 8712;
						else return 8713;
				else
					if (South)
						if (West) return 8716;
						else return 8717;
					else
						if (West) return 8720;
						else return 8721;
			else
				if (North)
					if (South)
						if (West) return 8724;
						else return 8725;
					else
						if (West) return 8728;
						else return 8729;
				else
					if (South)
						if (West) return 8732;
						else return 8733;
					else
						if (West) return 8736;
						else return 8737;
		}
		BlockState DarkOakFence();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace DarkOakFenceGate
	{
		constexpr BlockState DarkOakFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (InWall)
					if (Open)
						if (Powered) return 8546;
						else return 8547;
					else
						if (Powered) return 8548;
						else return 8549;
				else
					if (Open)
						if (Powered) return 8550;
						else return 8551;
					else
						if (Powered) return 8552;
						else return 8553;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (InWall)
					if (Open)
						if (Powered) return 8554;
						else return 8555;
					else
						if (Powered) return 8556;
						else return 8557;
				else
					if (Open)
						if (Powered) return 8558;
						else return 8559;
					else
						if (Powered) return 8560;
						else return 8561;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (InWall)
					if (Open)
						if (Powered) return 8562;
						else return 8563;
					else
						if (Powered) return 8564;
						else return 8565;
				else
					if (Open)
						if (Powered) return 8566;
						else return 8567;
					else
						if (Powered) return 8568;
						else return 8569;
			else
				if (InWall)
					if (Open)
						if (Powered) return 8570;
						else return 8571;
					else
						if (Powered) return 8572;
						else return 8573;
				else
					if (Open)
						if (Powered) return 8574;
						else return 8575;
					else
						if (Powered) return 8576;
						else return 8577;
		}
		BlockState DarkOakFenceGate();
		eBlockFace Facing(BlockState Block);
		bool InWall(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace DarkOakLeaves
	{
		constexpr BlockState DarkOakLeaves(const unsigned char Distance, const bool Persistent)
		{
			if (Distance == 1)
				if (Persistent) return 215;
				else return 216;
			else if (Distance == 2)
				if (Persistent) return 217;
				else return 218;
			else if (Distance == 3)
				if (Persistent) return 219;
				else return 220;
			else if (Distance == 4)
				if (Persistent) return 221;
				else return 222;
			else if (Distance == 5)
				if (Persistent) return 223;
				else return 224;
			else if (Distance == 6)
				if (Persistent) return 225;
				else return 226;
			else
				if (Persistent) return 227;
				else return 228;
		}
		BlockState DarkOakLeaves();
		unsigned char Distance(BlockState Block);
		bool Persistent(BlockState Block);
	}
	namespace DarkOakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState DarkOakLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 88;
			else if (Axis == Axis::Y) return 89;
			else return 90;
		}
		BlockState DarkOakLog();
		enum Axis Axis(BlockState Block);
	}
	namespace DarkOakPlanks
	{
		constexpr BlockState DarkOakPlanks()
		{
			return 20;
		}
	}
	namespace DarkOakPressurePlate
	{
		constexpr BlockState DarkOakPressurePlate(const bool Powered)
		{
			if (Powered) return 3883;
			else return 3884;
		}
		BlockState DarkOakPressurePlate();
		bool Powered(BlockState Block);
	}
	namespace DarkOakSapling
	{
		constexpr BlockState DarkOakSapling(const unsigned char Stage)
		{
			if (Stage == 0) return 31;
			else return 32;
		}
		BlockState DarkOakSapling();
		unsigned char Stage(BlockState Block);
	}
	namespace DarkOakSign
	{
		constexpr BlockState DarkOakSign(const unsigned char Rotation)
		{
			if (Rotation == 0) return 3542;
			else if (Rotation == 1) return 3544;
			else if (Rotation == 2) return 3546;
			else if (Rotation == 3) return 3548;
			else if (Rotation == 4) return 3550;
			else if (Rotation == 5) return 3552;
			else if (Rotation == 6) return 3554;
			else if (Rotation == 7) return 3556;
			else if (Rotation == 8) return 3558;
			else if (Rotation == 9) return 3560;
			else if (Rotation == 10) return 3562;
			else if (Rotation == 11) return 3564;
			else if (Rotation == 12) return 3566;
			else if (Rotation == 13) return 3568;
			else if (Rotation == 14) return 3570;
			else return 3572;
		}
		BlockState DarkOakSign();
		unsigned char Rotation(BlockState Block);
	}
	namespace DarkOakSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState DarkOakSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8331;
			else if (Type == Type::Bottom) return 8333;
			else return 8335;
		}
		BlockState DarkOakSlab();
		enum Type Type(BlockState Block);
	}
	namespace DarkOakStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState DarkOakStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7456;
					else if (Shape == Shape::InnerLeft) return 7458;
					else if (Shape == Shape::InnerRight) return 7460;
					else if (Shape == Shape::OuterLeft) return 7462;
					else return 7464;
				else
					if (Shape == Shape::Straight) return 7466;
					else if (Shape == Shape::InnerLeft) return 7468;
					else if (Shape == Shape::InnerRight) return 7470;
					else if (Shape == Shape::OuterLeft) return 7472;
					else return 7474;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7476;
					else if (Shape == Shape::InnerLeft) return 7478;
					else if (Shape == Shape::InnerRight) return 7480;
					else if (Shape == Shape::OuterLeft) return 7482;
					else return 7484;
				else
					if (Shape == Shape::Straight) return 7486;
					else if (Shape == Shape::InnerLeft) return 7488;
					else if (Shape == Shape::InnerRight) return 7490;
					else if (Shape == Shape::OuterLeft) return 7492;
					else return 7494;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7496;
					else if (Shape == Shape::InnerLeft) return 7498;
					else if (Shape == Shape::InnerRight) return 7500;
					else if (Shape == Shape::OuterLeft) return 7502;
					else return 7504;
				else
					if (Shape == Shape::Straight) return 7506;
					else if (Shape == Shape::InnerLeft) return 7508;
					else if (Shape == Shape::InnerRight) return 7510;
					else if (Shape == Shape::OuterLeft) return 7512;
					else return 7514;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7516;
					else if (Shape == Shape::InnerLeft) return 7518;
					else if (Shape == Shape::InnerRight) return 7520;
					else if (Shape == Shape::OuterLeft) return 7522;
					else return 7524;
				else
					if (Shape == Shape::Straight) return 7526;
					else if (Shape == Shape::InnerLeft) return 7528;
					else if (Shape == Shape::InnerRight) return 7530;
					else if (Shape == Shape::OuterLeft) return 7532;
					else return 7534;
		}
		BlockState DarkOakStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace DarkOakTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr BlockState DarkOakTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4432;
						else return 4434;
					else
						if (Powered) return 4436;
						else return 4438;
				else
					if (Open)
						if (Powered) return 4440;
						else return 4442;
					else
						if (Powered) return 4444;
						else return 4446;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4448;
						else return 4450;
					else
						if (Powered) return 4452;
						else return 4454;
				else
					if (Open)
						if (Powered) return 4456;
						else return 4458;
					else
						if (Powered) return 4460;
						else return 4462;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4464;
						else return 4466;
					else
						if (Powered) return 4468;
						else return 4470;
				else
					if (Open)
						if (Powered) return 4472;
						else return 4474;
					else
						if (Powered) return 4476;
						else return 4478;
			else
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4480;
						else return 4482;
					else
						if (Powered) return 4484;
						else return 4486;
				else
					if (Open)
						if (Powered) return 4488;
						else return 4490;
					else
						if (Powered) return 4492;
						else return 4494;
		}
		BlockState DarkOakTrapdoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace DarkOakWallSign
	{
		constexpr BlockState DarkOakWallSign(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3776;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3778;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3780;
			else return 3782;
		}
		BlockState DarkOakWallSign();
		eBlockFace Facing(BlockState Block);
	}
	namespace DarkOakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState DarkOakWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 124;
			else if (Axis == Axis::Y) return 125;
			else return 126;
		}
		BlockState DarkOakWood();
		enum Axis Axis(BlockState Block);
	}
	namespace DarkPrismarine
	{
		constexpr BlockState DarkPrismarine()
		{
			return 7603;
		}
	}
	namespace DarkPrismarineSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState DarkPrismarineSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 7857;
			else if (Type == Type::Bottom) return 7859;
			else return 7861;
		}
		BlockState DarkPrismarineSlab();
		enum Type Type(BlockState Block);
	}
	namespace DarkPrismarineStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState DarkPrismarineStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7765;
					else if (Shape == Shape::InnerLeft) return 7767;
					else if (Shape == Shape::InnerRight) return 7769;
					else if (Shape == Shape::OuterLeft) return 7771;
					else return 7773;
				else
					if (Shape == Shape::Straight) return 7775;
					else if (Shape == Shape::InnerLeft) return 7777;
					else if (Shape == Shape::InnerRight) return 7779;
					else if (Shape == Shape::OuterLeft) return 7781;
					else return 7783;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7785;
					else if (Shape == Shape::InnerLeft) return 7787;
					else if (Shape == Shape::InnerRight) return 7789;
					else if (Shape == Shape::OuterLeft) return 7791;
					else return 7793;
				else
					if (Shape == Shape::Straight) return 7795;
					else if (Shape == Shape::InnerLeft) return 7797;
					else if (Shape == Shape::InnerRight) return 7799;
					else if (Shape == Shape::OuterLeft) return 7801;
					else return 7803;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7805;
					else if (Shape == Shape::InnerLeft) return 7807;
					else if (Shape == Shape::InnerRight) return 7809;
					else if (Shape == Shape::OuterLeft) return 7811;
					else return 7813;
				else
					if (Shape == Shape::Straight) return 7815;
					else if (Shape == Shape::InnerLeft) return 7817;
					else if (Shape == Shape::InnerRight) return 7819;
					else if (Shape == Shape::OuterLeft) return 7821;
					else return 7823;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7825;
					else if (Shape == Shape::InnerLeft) return 7827;
					else if (Shape == Shape::InnerRight) return 7829;
					else if (Shape == Shape::OuterLeft) return 7831;
					else return 7833;
				else
					if (Shape == Shape::Straight) return 7835;
					else if (Shape == Shape::InnerLeft) return 7837;
					else if (Shape == Shape::InnerRight) return 7839;
					else if (Shape == Shape::OuterLeft) return 7841;
					else return 7843;
		}
		BlockState DarkPrismarineStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace DaylightDetector
	{
		constexpr BlockState DaylightDetector(const bool Inverted, const unsigned char Power)
		{
			if (Inverted)
				if (Power == 0) return 6694;
				else if (Power == 1) return 6695;
				else if (Power == 2) return 6696;
				else if (Power == 3) return 6697;
				else if (Power == 4) return 6698;
				else if (Power == 5) return 6699;
				else if (Power == 6) return 6700;
				else if (Power == 7) return 6701;
				else if (Power == 8) return 6702;
				else if (Power == 9) return 6703;
				else if (Power == 10) return 6704;
				else if (Power == 11) return 6705;
				else if (Power == 12) return 6706;
				else if (Power == 13) return 6707;
				else if (Power == 14) return 6708;
				else return 6709;
			else
				if (Power == 0) return 6710;
				else if (Power == 1) return 6711;
				else if (Power == 2) return 6712;
				else if (Power == 3) return 6713;
				else if (Power == 4) return 6714;
				else if (Power == 5) return 6715;
				else if (Power == 6) return 6716;
				else if (Power == 7) return 6717;
				else if (Power == 8) return 6718;
				else if (Power == 9) return 6719;
				else if (Power == 10) return 6720;
				else if (Power == 11) return 6721;
				else if (Power == 12) return 6722;
				else if (Power == 13) return 6723;
				else if (Power == 14) return 6724;
				else return 6725;
		}
		BlockState DaylightDetector();
		bool Inverted(BlockState Block);
		unsigned char Power(BlockState Block);
	}
	namespace DeadBrainCoral
	{
		constexpr BlockState DeadBrainCoral()
		{
			return 9523;
		}
	}
	namespace DeadBrainCoralBlock
	{
		constexpr BlockState DeadBrainCoralBlock()
		{
			return 9511;
		}
	}
	namespace DeadBrainCoralFan
	{
		constexpr BlockState DeadBrainCoralFan()
		{
			return 9543;
		}
	}
	namespace DeadBrainCoralWallFan
	{
		constexpr BlockState DeadBrainCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9569;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9571;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9573;
			else return 9575;
		}
		BlockState DeadBrainCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace DeadBubbleCoral
	{
		constexpr BlockState DeadBubbleCoral()
		{
			return 9525;
		}
	}
	namespace DeadBubbleCoralBlock
	{
		constexpr BlockState DeadBubbleCoralBlock()
		{
			return 9512;
		}
	}
	namespace DeadBubbleCoralFan
	{
		constexpr BlockState DeadBubbleCoralFan()
		{
			return 9545;
		}
	}
	namespace DeadBubbleCoralWallFan
	{
		constexpr BlockState DeadBubbleCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9577;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9579;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9581;
			else return 9583;
		}
		BlockState DeadBubbleCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace DeadBush
	{
		constexpr BlockState DeadBush()
		{
			return 1344;
		}
	}
	namespace DeadFireCoral
	{
		constexpr BlockState DeadFireCoral()
		{
			return 9527;
		}
	}
	namespace DeadFireCoralBlock
	{
		constexpr BlockState DeadFireCoralBlock()
		{
			return 9513;
		}
	}
	namespace DeadFireCoralFan
	{
		constexpr BlockState DeadFireCoralFan()
		{
			return 9547;
		}
	}
	namespace DeadFireCoralWallFan
	{
		constexpr BlockState DeadFireCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9585;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9587;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9589;
			else return 9591;
		}
		BlockState DeadFireCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace DeadHornCoral
	{
		constexpr BlockState DeadHornCoral()
		{
			return 9529;
		}
	}
	namespace DeadHornCoralBlock
	{
		constexpr BlockState DeadHornCoralBlock()
		{
			return 9514;
		}
	}
	namespace DeadHornCoralFan
	{
		constexpr BlockState DeadHornCoralFan()
		{
			return 9549;
		}
	}
	namespace DeadHornCoralWallFan
	{
		constexpr BlockState DeadHornCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9593;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9595;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9597;
			else return 9599;
		}
		BlockState DeadHornCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace DeadTubeCoral
	{
		constexpr BlockState DeadTubeCoral()
		{
			return 9521;
		}
	}
	namespace DeadTubeCoralBlock
	{
		constexpr BlockState DeadTubeCoralBlock()
		{
			return 9510;
		}
	}
	namespace DeadTubeCoralFan
	{
		constexpr BlockState DeadTubeCoralFan()
		{
			return 9541;
		}
	}
	namespace DeadTubeCoralWallFan
	{
		constexpr BlockState DeadTubeCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9561;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9563;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9565;
			else return 9567;
		}
		BlockState DeadTubeCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace DetectorRail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth
		};
		constexpr BlockState DetectorRail(const bool Powered, const enum Shape Shape)
		{
			if (Powered)
				if (Shape == Shape::NorthSouth) return 1317;
				else if (Shape == Shape::EastWest) return 1318;
				else if (Shape == Shape::AscendingEast) return 1319;
				else if (Shape == Shape::AscendingWest) return 1320;
				else if (Shape == Shape::AscendingNorth) return 1321;
				else return 1322;
			else
				if (Shape == Shape::NorthSouth) return 1323;
				else if (Shape == Shape::EastWest) return 1324;
				else if (Shape == Shape::AscendingEast) return 1325;
				else if (Shape == Shape::AscendingWest) return 1326;
				else if (Shape == Shape::AscendingNorth) return 1327;
				else return 1328;
		}
		BlockState DetectorRail();
		bool Powered(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace DiamondBlock
	{
		constexpr BlockState DiamondBlock()
		{
			return 3355;
		}
	}
	namespace DiamondOre
	{
		constexpr BlockState DiamondOre()
		{
			return 3354;
		}
	}
	namespace Diorite
	{
		constexpr BlockState Diorite()
		{
			return 4;
		}
	}
	namespace DioriteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState DioriteSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10862;
			else if (Type == Type::Bottom) return 10864;
			else return 10866;
		}
		BlockState DioriteSlab();
		enum Type Type(BlockState Block);
	}
	namespace DioriteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState DioriteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10710;
					else if (Shape == Shape::InnerLeft) return 10712;
					else if (Shape == Shape::InnerRight) return 10714;
					else if (Shape == Shape::OuterLeft) return 10716;
					else return 10718;
				else
					if (Shape == Shape::Straight) return 10720;
					else if (Shape == Shape::InnerLeft) return 10722;
					else if (Shape == Shape::InnerRight) return 10724;
					else if (Shape == Shape::OuterLeft) return 10726;
					else return 10728;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10730;
					else if (Shape == Shape::InnerLeft) return 10732;
					else if (Shape == Shape::InnerRight) return 10734;
					else if (Shape == Shape::OuterLeft) return 10736;
					else return 10738;
				else
					if (Shape == Shape::Straight) return 10740;
					else if (Shape == Shape::InnerLeft) return 10742;
					else if (Shape == Shape::InnerRight) return 10744;
					else if (Shape == Shape::OuterLeft) return 10746;
					else return 10748;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10750;
					else if (Shape == Shape::InnerLeft) return 10752;
					else if (Shape == Shape::InnerRight) return 10754;
					else if (Shape == Shape::OuterLeft) return 10756;
					else return 10758;
				else
					if (Shape == Shape::Straight) return 10760;
					else if (Shape == Shape::InnerLeft) return 10762;
					else if (Shape == Shape::InnerRight) return 10764;
					else if (Shape == Shape::OuterLeft) return 10766;
					else return 10768;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10770;
					else if (Shape == Shape::InnerLeft) return 10772;
					else if (Shape == Shape::InnerRight) return 10774;
					else if (Shape == Shape::OuterLeft) return 10776;
					else return 10778;
				else
					if (Shape == Shape::Straight) return 10780;
					else if (Shape == Shape::InnerLeft) return 10782;
					else if (Shape == Shape::InnerRight) return 10784;
					else if (Shape == Shape::OuterLeft) return 10786;
					else return 10788;
		}
		BlockState DioriteStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState DioriteWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14434;
							else if (West == West::Low) return 14435;
							else return 14436;
						else
							if (West == West::None) return 14440;
							else if (West == West::Low) return 14441;
							else return 14442;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14446;
							else if (West == West::Low) return 14447;
							else return 14448;
						else
							if (West == West::None) return 14452;
							else if (West == West::Low) return 14453;
							else return 14454;
					else
						if (Up)
							if (West == West::None) return 14458;
							else if (West == West::Low) return 14459;
							else return 14460;
						else
							if (West == West::None) return 14464;
							else if (West == West::Low) return 14465;
							else return 14466;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14470;
							else if (West == West::Low) return 14471;
							else return 14472;
						else
							if (West == West::None) return 14476;
							else if (West == West::Low) return 14477;
							else return 14478;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14482;
							else if (West == West::Low) return 14483;
							else return 14484;
						else
							if (West == West::None) return 14488;
							else if (West == West::Low) return 14489;
							else return 14490;
					else
						if (Up)
							if (West == West::None) return 14494;
							else if (West == West::Low) return 14495;
							else return 14496;
						else
							if (West == West::None) return 14500;
							else if (West == West::Low) return 14501;
							else return 14502;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14506;
							else if (West == West::Low) return 14507;
							else return 14508;
						else
							if (West == West::None) return 14512;
							else if (West == West::Low) return 14513;
							else return 14514;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14518;
							else if (West == West::Low) return 14519;
							else return 14520;
						else
							if (West == West::None) return 14524;
							else if (West == West::Low) return 14525;
							else return 14526;
					else
						if (Up)
							if (West == West::None) return 14530;
							else if (West == West::Low) return 14531;
							else return 14532;
						else
							if (West == West::None) return 14536;
							else if (West == West::Low) return 14537;
							else return 14538;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14542;
							else if (West == West::Low) return 14543;
							else return 14544;
						else
							if (West == West::None) return 14548;
							else if (West == West::Low) return 14549;
							else return 14550;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14554;
							else if (West == West::Low) return 14555;
							else return 14556;
						else
							if (West == West::None) return 14560;
							else if (West == West::Low) return 14561;
							else return 14562;
					else
						if (Up)
							if (West == West::None) return 14566;
							else if (West == West::Low) return 14567;
							else return 14568;
						else
							if (West == West::None) return 14572;
							else if (West == West::Low) return 14573;
							else return 14574;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14578;
							else if (West == West::Low) return 14579;
							else return 14580;
						else
							if (West == West::None) return 14584;
							else if (West == West::Low) return 14585;
							else return 14586;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14590;
							else if (West == West::Low) return 14591;
							else return 14592;
						else
							if (West == West::None) return 14596;
							else if (West == West::Low) return 14597;
							else return 14598;
					else
						if (Up)
							if (West == West::None) return 14602;
							else if (West == West::Low) return 14603;
							else return 14604;
						else
							if (West == West::None) return 14608;
							else if (West == West::Low) return 14609;
							else return 14610;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14614;
							else if (West == West::Low) return 14615;
							else return 14616;
						else
							if (West == West::None) return 14620;
							else if (West == West::Low) return 14621;
							else return 14622;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14626;
							else if (West == West::Low) return 14627;
							else return 14628;
						else
							if (West == West::None) return 14632;
							else if (West == West::Low) return 14633;
							else return 14634;
					else
						if (Up)
							if (West == West::None) return 14638;
							else if (West == West::Low) return 14639;
							else return 14640;
						else
							if (West == West::None) return 14644;
							else if (West == West::Low) return 14645;
							else return 14646;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14650;
							else if (West == West::Low) return 14651;
							else return 14652;
						else
							if (West == West::None) return 14656;
							else if (West == West::Low) return 14657;
							else return 14658;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14662;
							else if (West == West::Low) return 14663;
							else return 14664;
						else
							if (West == West::None) return 14668;
							else if (West == West::Low) return 14669;
							else return 14670;
					else
						if (Up)
							if (West == West::None) return 14674;
							else if (West == West::Low) return 14675;
							else return 14676;
						else
							if (West == West::None) return 14680;
							else if (West == West::Low) return 14681;
							else return 14682;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14686;
							else if (West == West::Low) return 14687;
							else return 14688;
						else
							if (West == West::None) return 14692;
							else if (West == West::Low) return 14693;
							else return 14694;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14698;
							else if (West == West::Low) return 14699;
							else return 14700;
						else
							if (West == West::None) return 14704;
							else if (West == West::Low) return 14705;
							else return 14706;
					else
						if (Up)
							if (West == West::None) return 14710;
							else if (West == West::Low) return 14711;
							else return 14712;
						else
							if (West == West::None) return 14716;
							else if (West == West::Low) return 14717;
							else return 14718;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14722;
							else if (West == West::Low) return 14723;
							else return 14724;
						else
							if (West == West::None) return 14728;
							else if (West == West::Low) return 14729;
							else return 14730;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14734;
							else if (West == West::Low) return 14735;
							else return 14736;
						else
							if (West == West::None) return 14740;
							else if (West == West::Low) return 14741;
							else return 14742;
					else
						if (Up)
							if (West == West::None) return 14746;
							else if (West == West::Low) return 14747;
							else return 14748;
						else
							if (West == West::None) return 14752;
							else if (West == West::Low) return 14753;
							else return 14754;
		}
		BlockState DioriteWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace Dirt
	{
		constexpr BlockState Dirt()
		{
			return 10;
		}
	}
	namespace Dispenser
	{
		constexpr BlockState Dispenser(const eBlockFace Facing, const bool Triggered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Triggered) return 234;
				else return 235;
			else if (Facing == eBlockFace::BLOCK_FACE_XP)
				if (Triggered) return 236;
				else return 237;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Triggered) return 238;
				else return 239;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Triggered) return 240;
				else return 241;
			else if (Facing == eBlockFace::BLOCK_FACE_YP)
				if (Triggered) return 242;
				else return 243;
			else
				if (Triggered) return 244;
				else return 245;
		}
		BlockState Dispenser();
		eBlockFace Facing(BlockState Block);
		bool Triggered(BlockState Block);
	}
	namespace DragonEgg
	{
		constexpr BlockState DragonEgg()
		{
			return 5155;
		}
	}
	namespace DragonHead
	{
		constexpr BlockState DragonHead(const unsigned char Rotation)
		{
			if (Rotation == 0) return 6590;
			else if (Rotation == 1) return 6591;
			else if (Rotation == 2) return 6592;
			else if (Rotation == 3) return 6593;
			else if (Rotation == 4) return 6594;
			else if (Rotation == 5) return 6595;
			else if (Rotation == 6) return 6596;
			else if (Rotation == 7) return 6597;
			else if (Rotation == 8) return 6598;
			else if (Rotation == 9) return 6599;
			else if (Rotation == 10) return 6600;
			else if (Rotation == 11) return 6601;
			else if (Rotation == 12) return 6602;
			else if (Rotation == 13) return 6603;
			else if (Rotation == 14) return 6604;
			else return 6605;
		}
		BlockState DragonHead();
		unsigned char Rotation(BlockState Block);
	}
	namespace DragonWallHead
	{
		constexpr BlockState DragonWallHead(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6606;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6607;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6608;
			else return 6609;
		}
		BlockState DragonWallHead();
		eBlockFace Facing(BlockState Block);
	}
	namespace DriedKelpBlock
	{
		constexpr BlockState DriedKelpBlock()
		{
			return 9497;
		}
	}
	namespace Dropper
	{
		constexpr BlockState Dropper(const eBlockFace Facing, const bool Triggered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Triggered) return 6835;
				else return 6836;
			else if (Facing == eBlockFace::BLOCK_FACE_XP)
				if (Triggered) return 6837;
				else return 6838;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Triggered) return 6839;
				else return 6840;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Triggered) return 6841;
				else return 6842;
			else if (Facing == eBlockFace::BLOCK_FACE_YP)
				if (Triggered) return 6843;
				else return 6844;
			else
				if (Triggered) return 6845;
				else return 6846;
		}
		BlockState Dropper();
		eBlockFace Facing(BlockState Block);
		bool Triggered(BlockState Block);
	}
	namespace EmeraldBlock
	{
		constexpr BlockState EmeraldBlock()
		{
			return 5403;
		}
	}
	namespace EmeraldOre
	{
		constexpr BlockState EmeraldOre()
		{
			return 5250;
		}
	}
	namespace EnchantingTable
	{
		constexpr BlockState EnchantingTable()
		{
			return 5132;
		}
	}
	namespace EndGateway
	{
		constexpr BlockState EndGateway()
		{
			return 9224;
		}
	}
	namespace EndPortal
	{
		constexpr BlockState EndPortal()
		{
			return 5145;
		}
	}
	namespace EndPortalFrame
	{
		constexpr BlockState EndPortalFrame(const bool Eye, const eBlockFace Facing)
		{
			if (Eye)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5146;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5147;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5148;
				else return 5149;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5150;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5151;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5152;
				else return 5153;
		}
		BlockState EndPortalFrame();
		bool Eye(BlockState Block);
		eBlockFace Facing(BlockState Block);
	}
	namespace EndRod
	{
		constexpr BlockState EndRod(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9058;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9059;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9060;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9061;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9062;
			else return 9063;
		}
		BlockState EndRod();
		eBlockFace Facing(BlockState Block);
	}
	namespace EndStone
	{
		constexpr BlockState EndStone()
		{
			return 5154;
		}
	}
	namespace EndStoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState EndStoneBrickSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10820;
			else if (Type == Type::Bottom) return 10822;
			else return 10824;
		}
		BlockState EndStoneBrickSlab();
		enum Type Type(BlockState Block);
	}
	namespace EndStoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState EndStoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10070;
					else if (Shape == Shape::InnerLeft) return 10072;
					else if (Shape == Shape::InnerRight) return 10074;
					else if (Shape == Shape::OuterLeft) return 10076;
					else return 10078;
				else
					if (Shape == Shape::Straight) return 10080;
					else if (Shape == Shape::InnerLeft) return 10082;
					else if (Shape == Shape::InnerRight) return 10084;
					else if (Shape == Shape::OuterLeft) return 10086;
					else return 10088;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10090;
					else if (Shape == Shape::InnerLeft) return 10092;
					else if (Shape == Shape::InnerRight) return 10094;
					else if (Shape == Shape::OuterLeft) return 10096;
					else return 10098;
				else
					if (Shape == Shape::Straight) return 10100;
					else if (Shape == Shape::InnerLeft) return 10102;
					else if (Shape == Shape::InnerRight) return 10104;
					else if (Shape == Shape::OuterLeft) return 10106;
					else return 10108;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10110;
					else if (Shape == Shape::InnerLeft) return 10112;
					else if (Shape == Shape::InnerRight) return 10114;
					else if (Shape == Shape::OuterLeft) return 10116;
					else return 10118;
				else
					if (Shape == Shape::Straight) return 10120;
					else if (Shape == Shape::InnerLeft) return 10122;
					else if (Shape == Shape::InnerRight) return 10124;
					else if (Shape == Shape::OuterLeft) return 10126;
					else return 10128;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10130;
					else if (Shape == Shape::InnerLeft) return 10132;
					else if (Shape == Shape::InnerRight) return 10134;
					else if (Shape == Shape::OuterLeft) return 10136;
					else return 10138;
				else
					if (Shape == Shape::Straight) return 10140;
					else if (Shape == Shape::InnerLeft) return 10142;
					else if (Shape == Shape::InnerRight) return 10144;
					else if (Shape == Shape::OuterLeft) return 10146;
					else return 10148;
		}
		BlockState EndStoneBrickStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState EndStoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14110;
							else if (West == West::Low) return 14111;
							else return 14112;
						else
							if (West == West::None) return 14116;
							else if (West == West::Low) return 14117;
							else return 14118;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14122;
							else if (West == West::Low) return 14123;
							else return 14124;
						else
							if (West == West::None) return 14128;
							else if (West == West::Low) return 14129;
							else return 14130;
					else
						if (Up)
							if (West == West::None) return 14134;
							else if (West == West::Low) return 14135;
							else return 14136;
						else
							if (West == West::None) return 14140;
							else if (West == West::Low) return 14141;
							else return 14142;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14146;
							else if (West == West::Low) return 14147;
							else return 14148;
						else
							if (West == West::None) return 14152;
							else if (West == West::Low) return 14153;
							else return 14154;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14158;
							else if (West == West::Low) return 14159;
							else return 14160;
						else
							if (West == West::None) return 14164;
							else if (West == West::Low) return 14165;
							else return 14166;
					else
						if (Up)
							if (West == West::None) return 14170;
							else if (West == West::Low) return 14171;
							else return 14172;
						else
							if (West == West::None) return 14176;
							else if (West == West::Low) return 14177;
							else return 14178;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14182;
							else if (West == West::Low) return 14183;
							else return 14184;
						else
							if (West == West::None) return 14188;
							else if (West == West::Low) return 14189;
							else return 14190;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14194;
							else if (West == West::Low) return 14195;
							else return 14196;
						else
							if (West == West::None) return 14200;
							else if (West == West::Low) return 14201;
							else return 14202;
					else
						if (Up)
							if (West == West::None) return 14206;
							else if (West == West::Low) return 14207;
							else return 14208;
						else
							if (West == West::None) return 14212;
							else if (West == West::Low) return 14213;
							else return 14214;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14218;
							else if (West == West::Low) return 14219;
							else return 14220;
						else
							if (West == West::None) return 14224;
							else if (West == West::Low) return 14225;
							else return 14226;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14230;
							else if (West == West::Low) return 14231;
							else return 14232;
						else
							if (West == West::None) return 14236;
							else if (West == West::Low) return 14237;
							else return 14238;
					else
						if (Up)
							if (West == West::None) return 14242;
							else if (West == West::Low) return 14243;
							else return 14244;
						else
							if (West == West::None) return 14248;
							else if (West == West::Low) return 14249;
							else return 14250;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14254;
							else if (West == West::Low) return 14255;
							else return 14256;
						else
							if (West == West::None) return 14260;
							else if (West == West::Low) return 14261;
							else return 14262;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14266;
							else if (West == West::Low) return 14267;
							else return 14268;
						else
							if (West == West::None) return 14272;
							else if (West == West::Low) return 14273;
							else return 14274;
					else
						if (Up)
							if (West == West::None) return 14278;
							else if (West == West::Low) return 14279;
							else return 14280;
						else
							if (West == West::None) return 14284;
							else if (West == West::Low) return 14285;
							else return 14286;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14290;
							else if (West == West::Low) return 14291;
							else return 14292;
						else
							if (West == West::None) return 14296;
							else if (West == West::Low) return 14297;
							else return 14298;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14302;
							else if (West == West::Low) return 14303;
							else return 14304;
						else
							if (West == West::None) return 14308;
							else if (West == West::Low) return 14309;
							else return 14310;
					else
						if (Up)
							if (West == West::None) return 14314;
							else if (West == West::Low) return 14315;
							else return 14316;
						else
							if (West == West::None) return 14320;
							else if (West == West::Low) return 14321;
							else return 14322;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14326;
							else if (West == West::Low) return 14327;
							else return 14328;
						else
							if (West == West::None) return 14332;
							else if (West == West::Low) return 14333;
							else return 14334;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14338;
							else if (West == West::Low) return 14339;
							else return 14340;
						else
							if (West == West::None) return 14344;
							else if (West == West::Low) return 14345;
							else return 14346;
					else
						if (Up)
							if (West == West::None) return 14350;
							else if (West == West::Low) return 14351;
							else return 14352;
						else
							if (West == West::None) return 14356;
							else if (West == West::Low) return 14357;
							else return 14358;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14362;
							else if (West == West::Low) return 14363;
							else return 14364;
						else
							if (West == West::None) return 14368;
							else if (West == West::Low) return 14369;
							else return 14370;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14374;
							else if (West == West::Low) return 14375;
							else return 14376;
						else
							if (West == West::None) return 14380;
							else if (West == West::Low) return 14381;
							else return 14382;
					else
						if (Up)
							if (West == West::None) return 14386;
							else if (West == West::Low) return 14387;
							else return 14388;
						else
							if (West == West::None) return 14392;
							else if (West == West::Low) return 14393;
							else return 14394;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14398;
							else if (West == West::Low) return 14399;
							else return 14400;
						else
							if (West == West::None) return 14404;
							else if (West == West::Low) return 14405;
							else return 14406;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14410;
							else if (West == West::Low) return 14411;
							else return 14412;
						else
							if (West == West::None) return 14416;
							else if (West == West::Low) return 14417;
							else return 14418;
					else
						if (Up)
							if (West == West::None) return 14422;
							else if (West == West::Low) return 14423;
							else return 14424;
						else
							if (West == West::None) return 14428;
							else if (West == West::Low) return 14429;
							else return 14430;
		}
		BlockState EndStoneBrickWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace EndStoneBricks
	{
		constexpr BlockState EndStoneBricks()
		{
			return 9218;
		}
	}
	namespace EnderChest
	{
		constexpr BlockState EnderChest(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5252;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5254;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5256;
			else return 5258;
		}
		BlockState EnderChest();
		eBlockFace Facing(BlockState Block);
	}
	namespace Farmland
	{
		constexpr BlockState Farmland(const unsigned char Moisture)
		{
			if (Moisture == 0) return 3365;
			else if (Moisture == 1) return 3366;
			else if (Moisture == 2) return 3367;
			else if (Moisture == 3) return 3368;
			else if (Moisture == 4) return 3369;
			else if (Moisture == 5) return 3370;
			else if (Moisture == 6) return 3371;
			else return 3372;
		}
		BlockState Farmland();
		unsigned char Moisture(BlockState Block);
	}
	namespace Fern
	{
		constexpr BlockState Fern()
		{
			return 1343;
		}
	}
	namespace Fire
	{
		constexpr BlockState Fire(const unsigned char Age, const bool East, const bool North, const bool South, const bool Up, const bool West)
		{
			if (Age == 0)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1440;
								else return 1441;
							else
								if (West) return 1442;
								else return 1443;
						else
							if (Up)
								if (West) return 1444;
								else return 1445;
							else
								if (West) return 1446;
								else return 1447;
					else
						if (South)
							if (Up)
								if (West) return 1448;
								else return 1449;
							else
								if (West) return 1450;
								else return 1451;
						else
							if (Up)
								if (West) return 1452;
								else return 1453;
							else
								if (West) return 1454;
								else return 1455;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1456;
								else return 1457;
							else
								if (West) return 1458;
								else return 1459;
						else
							if (Up)
								if (West) return 1460;
								else return 1461;
							else
								if (West) return 1462;
								else return 1463;
					else
						if (South)
							if (Up)
								if (West) return 1464;
								else return 1465;
							else
								if (West) return 1466;
								else return 1467;
						else
							if (Up)
								if (West) return 1468;
								else return 1469;
							else
								if (West) return 1470;
								else return 1471;
			else if (Age == 1)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1472;
								else return 1473;
							else
								if (West) return 1474;
								else return 1475;
						else
							if (Up)
								if (West) return 1476;
								else return 1477;
							else
								if (West) return 1478;
								else return 1479;
					else
						if (South)
							if (Up)
								if (West) return 1480;
								else return 1481;
							else
								if (West) return 1482;
								else return 1483;
						else
							if (Up)
								if (West) return 1484;
								else return 1485;
							else
								if (West) return 1486;
								else return 1487;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1488;
								else return 1489;
							else
								if (West) return 1490;
								else return 1491;
						else
							if (Up)
								if (West) return 1492;
								else return 1493;
							else
								if (West) return 1494;
								else return 1495;
					else
						if (South)
							if (Up)
								if (West) return 1496;
								else return 1497;
							else
								if (West) return 1498;
								else return 1499;
						else
							if (Up)
								if (West) return 1500;
								else return 1501;
							else
								if (West) return 1502;
								else return 1503;
			else if (Age == 2)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1504;
								else return 1505;
							else
								if (West) return 1506;
								else return 1507;
						else
							if (Up)
								if (West) return 1508;
								else return 1509;
							else
								if (West) return 1510;
								else return 1511;
					else
						if (South)
							if (Up)
								if (West) return 1512;
								else return 1513;
							else
								if (West) return 1514;
								else return 1515;
						else
							if (Up)
								if (West) return 1516;
								else return 1517;
							else
								if (West) return 1518;
								else return 1519;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1520;
								else return 1521;
							else
								if (West) return 1522;
								else return 1523;
						else
							if (Up)
								if (West) return 1524;
								else return 1525;
							else
								if (West) return 1526;
								else return 1527;
					else
						if (South)
							if (Up)
								if (West) return 1528;
								else return 1529;
							else
								if (West) return 1530;
								else return 1531;
						else
							if (Up)
								if (West) return 1532;
								else return 1533;
							else
								if (West) return 1534;
								else return 1535;
			else if (Age == 3)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1536;
								else return 1537;
							else
								if (West) return 1538;
								else return 1539;
						else
							if (Up)
								if (West) return 1540;
								else return 1541;
							else
								if (West) return 1542;
								else return 1543;
					else
						if (South)
							if (Up)
								if (West) return 1544;
								else return 1545;
							else
								if (West) return 1546;
								else return 1547;
						else
							if (Up)
								if (West) return 1548;
								else return 1549;
							else
								if (West) return 1550;
								else return 1551;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1552;
								else return 1553;
							else
								if (West) return 1554;
								else return 1555;
						else
							if (Up)
								if (West) return 1556;
								else return 1557;
							else
								if (West) return 1558;
								else return 1559;
					else
						if (South)
							if (Up)
								if (West) return 1560;
								else return 1561;
							else
								if (West) return 1562;
								else return 1563;
						else
							if (Up)
								if (West) return 1564;
								else return 1565;
							else
								if (West) return 1566;
								else return 1567;
			else if (Age == 4)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1568;
								else return 1569;
							else
								if (West) return 1570;
								else return 1571;
						else
							if (Up)
								if (West) return 1572;
								else return 1573;
							else
								if (West) return 1574;
								else return 1575;
					else
						if (South)
							if (Up)
								if (West) return 1576;
								else return 1577;
							else
								if (West) return 1578;
								else return 1579;
						else
							if (Up)
								if (West) return 1580;
								else return 1581;
							else
								if (West) return 1582;
								else return 1583;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1584;
								else return 1585;
							else
								if (West) return 1586;
								else return 1587;
						else
							if (Up)
								if (West) return 1588;
								else return 1589;
							else
								if (West) return 1590;
								else return 1591;
					else
						if (South)
							if (Up)
								if (West) return 1592;
								else return 1593;
							else
								if (West) return 1594;
								else return 1595;
						else
							if (Up)
								if (West) return 1596;
								else return 1597;
							else
								if (West) return 1598;
								else return 1599;
			else if (Age == 5)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1600;
								else return 1601;
							else
								if (West) return 1602;
								else return 1603;
						else
							if (Up)
								if (West) return 1604;
								else return 1605;
							else
								if (West) return 1606;
								else return 1607;
					else
						if (South)
							if (Up)
								if (West) return 1608;
								else return 1609;
							else
								if (West) return 1610;
								else return 1611;
						else
							if (Up)
								if (West) return 1612;
								else return 1613;
							else
								if (West) return 1614;
								else return 1615;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1616;
								else return 1617;
							else
								if (West) return 1618;
								else return 1619;
						else
							if (Up)
								if (West) return 1620;
								else return 1621;
							else
								if (West) return 1622;
								else return 1623;
					else
						if (South)
							if (Up)
								if (West) return 1624;
								else return 1625;
							else
								if (West) return 1626;
								else return 1627;
						else
							if (Up)
								if (West) return 1628;
								else return 1629;
							else
								if (West) return 1630;
								else return 1631;
			else if (Age == 6)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1632;
								else return 1633;
							else
								if (West) return 1634;
								else return 1635;
						else
							if (Up)
								if (West) return 1636;
								else return 1637;
							else
								if (West) return 1638;
								else return 1639;
					else
						if (South)
							if (Up)
								if (West) return 1640;
								else return 1641;
							else
								if (West) return 1642;
								else return 1643;
						else
							if (Up)
								if (West) return 1644;
								else return 1645;
							else
								if (West) return 1646;
								else return 1647;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1648;
								else return 1649;
							else
								if (West) return 1650;
								else return 1651;
						else
							if (Up)
								if (West) return 1652;
								else return 1653;
							else
								if (West) return 1654;
								else return 1655;
					else
						if (South)
							if (Up)
								if (West) return 1656;
								else return 1657;
							else
								if (West) return 1658;
								else return 1659;
						else
							if (Up)
								if (West) return 1660;
								else return 1661;
							else
								if (West) return 1662;
								else return 1663;
			else if (Age == 7)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1664;
								else return 1665;
							else
								if (West) return 1666;
								else return 1667;
						else
							if (Up)
								if (West) return 1668;
								else return 1669;
							else
								if (West) return 1670;
								else return 1671;
					else
						if (South)
							if (Up)
								if (West) return 1672;
								else return 1673;
							else
								if (West) return 1674;
								else return 1675;
						else
							if (Up)
								if (West) return 1676;
								else return 1677;
							else
								if (West) return 1678;
								else return 1679;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1680;
								else return 1681;
							else
								if (West) return 1682;
								else return 1683;
						else
							if (Up)
								if (West) return 1684;
								else return 1685;
							else
								if (West) return 1686;
								else return 1687;
					else
						if (South)
							if (Up)
								if (West) return 1688;
								else return 1689;
							else
								if (West) return 1690;
								else return 1691;
						else
							if (Up)
								if (West) return 1692;
								else return 1693;
							else
								if (West) return 1694;
								else return 1695;
			else if (Age == 8)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1696;
								else return 1697;
							else
								if (West) return 1698;
								else return 1699;
						else
							if (Up)
								if (West) return 1700;
								else return 1701;
							else
								if (West) return 1702;
								else return 1703;
					else
						if (South)
							if (Up)
								if (West) return 1704;
								else return 1705;
							else
								if (West) return 1706;
								else return 1707;
						else
							if (Up)
								if (West) return 1708;
								else return 1709;
							else
								if (West) return 1710;
								else return 1711;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1712;
								else return 1713;
							else
								if (West) return 1714;
								else return 1715;
						else
							if (Up)
								if (West) return 1716;
								else return 1717;
							else
								if (West) return 1718;
								else return 1719;
					else
						if (South)
							if (Up)
								if (West) return 1720;
								else return 1721;
							else
								if (West) return 1722;
								else return 1723;
						else
							if (Up)
								if (West) return 1724;
								else return 1725;
							else
								if (West) return 1726;
								else return 1727;
			else if (Age == 9)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1728;
								else return 1729;
							else
								if (West) return 1730;
								else return 1731;
						else
							if (Up)
								if (West) return 1732;
								else return 1733;
							else
								if (West) return 1734;
								else return 1735;
					else
						if (South)
							if (Up)
								if (West) return 1736;
								else return 1737;
							else
								if (West) return 1738;
								else return 1739;
						else
							if (Up)
								if (West) return 1740;
								else return 1741;
							else
								if (West) return 1742;
								else return 1743;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1744;
								else return 1745;
							else
								if (West) return 1746;
								else return 1747;
						else
							if (Up)
								if (West) return 1748;
								else return 1749;
							else
								if (West) return 1750;
								else return 1751;
					else
						if (South)
							if (Up)
								if (West) return 1752;
								else return 1753;
							else
								if (West) return 1754;
								else return 1755;
						else
							if (Up)
								if (West) return 1756;
								else return 1757;
							else
								if (West) return 1758;
								else return 1759;
			else if (Age == 10)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1760;
								else return 1761;
							else
								if (West) return 1762;
								else return 1763;
						else
							if (Up)
								if (West) return 1764;
								else return 1765;
							else
								if (West) return 1766;
								else return 1767;
					else
						if (South)
							if (Up)
								if (West) return 1768;
								else return 1769;
							else
								if (West) return 1770;
								else return 1771;
						else
							if (Up)
								if (West) return 1772;
								else return 1773;
							else
								if (West) return 1774;
								else return 1775;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1776;
								else return 1777;
							else
								if (West) return 1778;
								else return 1779;
						else
							if (Up)
								if (West) return 1780;
								else return 1781;
							else
								if (West) return 1782;
								else return 1783;
					else
						if (South)
							if (Up)
								if (West) return 1784;
								else return 1785;
							else
								if (West) return 1786;
								else return 1787;
						else
							if (Up)
								if (West) return 1788;
								else return 1789;
							else
								if (West) return 1790;
								else return 1791;
			else if (Age == 11)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1792;
								else return 1793;
							else
								if (West) return 1794;
								else return 1795;
						else
							if (Up)
								if (West) return 1796;
								else return 1797;
							else
								if (West) return 1798;
								else return 1799;
					else
						if (South)
							if (Up)
								if (West) return 1800;
								else return 1801;
							else
								if (West) return 1802;
								else return 1803;
						else
							if (Up)
								if (West) return 1804;
								else return 1805;
							else
								if (West) return 1806;
								else return 1807;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1808;
								else return 1809;
							else
								if (West) return 1810;
								else return 1811;
						else
							if (Up)
								if (West) return 1812;
								else return 1813;
							else
								if (West) return 1814;
								else return 1815;
					else
						if (South)
							if (Up)
								if (West) return 1816;
								else return 1817;
							else
								if (West) return 1818;
								else return 1819;
						else
							if (Up)
								if (West) return 1820;
								else return 1821;
							else
								if (West) return 1822;
								else return 1823;
			else if (Age == 12)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1824;
								else return 1825;
							else
								if (West) return 1826;
								else return 1827;
						else
							if (Up)
								if (West) return 1828;
								else return 1829;
							else
								if (West) return 1830;
								else return 1831;
					else
						if (South)
							if (Up)
								if (West) return 1832;
								else return 1833;
							else
								if (West) return 1834;
								else return 1835;
						else
							if (Up)
								if (West) return 1836;
								else return 1837;
							else
								if (West) return 1838;
								else return 1839;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1840;
								else return 1841;
							else
								if (West) return 1842;
								else return 1843;
						else
							if (Up)
								if (West) return 1844;
								else return 1845;
							else
								if (West) return 1846;
								else return 1847;
					else
						if (South)
							if (Up)
								if (West) return 1848;
								else return 1849;
							else
								if (West) return 1850;
								else return 1851;
						else
							if (Up)
								if (West) return 1852;
								else return 1853;
							else
								if (West) return 1854;
								else return 1855;
			else if (Age == 13)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1856;
								else return 1857;
							else
								if (West) return 1858;
								else return 1859;
						else
							if (Up)
								if (West) return 1860;
								else return 1861;
							else
								if (West) return 1862;
								else return 1863;
					else
						if (South)
							if (Up)
								if (West) return 1864;
								else return 1865;
							else
								if (West) return 1866;
								else return 1867;
						else
							if (Up)
								if (West) return 1868;
								else return 1869;
							else
								if (West) return 1870;
								else return 1871;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1872;
								else return 1873;
							else
								if (West) return 1874;
								else return 1875;
						else
							if (Up)
								if (West) return 1876;
								else return 1877;
							else
								if (West) return 1878;
								else return 1879;
					else
						if (South)
							if (Up)
								if (West) return 1880;
								else return 1881;
							else
								if (West) return 1882;
								else return 1883;
						else
							if (Up)
								if (West) return 1884;
								else return 1885;
							else
								if (West) return 1886;
								else return 1887;
			else if (Age == 14)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1888;
								else return 1889;
							else
								if (West) return 1890;
								else return 1891;
						else
							if (Up)
								if (West) return 1892;
								else return 1893;
							else
								if (West) return 1894;
								else return 1895;
					else
						if (South)
							if (Up)
								if (West) return 1896;
								else return 1897;
							else
								if (West) return 1898;
								else return 1899;
						else
							if (Up)
								if (West) return 1900;
								else return 1901;
							else
								if (West) return 1902;
								else return 1903;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1904;
								else return 1905;
							else
								if (West) return 1906;
								else return 1907;
						else
							if (Up)
								if (West) return 1908;
								else return 1909;
							else
								if (West) return 1910;
								else return 1911;
					else
						if (South)
							if (Up)
								if (West) return 1912;
								else return 1913;
							else
								if (West) return 1914;
								else return 1915;
						else
							if (Up)
								if (West) return 1916;
								else return 1917;
							else
								if (West) return 1918;
								else return 1919;
			else
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 1920;
								else return 1921;
							else
								if (West) return 1922;
								else return 1923;
						else
							if (Up)
								if (West) return 1924;
								else return 1925;
							else
								if (West) return 1926;
								else return 1927;
					else
						if (South)
							if (Up)
								if (West) return 1928;
								else return 1929;
							else
								if (West) return 1930;
								else return 1931;
						else
							if (Up)
								if (West) return 1932;
								else return 1933;
							else
								if (West) return 1934;
								else return 1935;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 1936;
								else return 1937;
							else
								if (West) return 1938;
								else return 1939;
						else
							if (Up)
								if (West) return 1940;
								else return 1941;
							else
								if (West) return 1942;
								else return 1943;
					else
						if (South)
							if (Up)
								if (West) return 1944;
								else return 1945;
							else
								if (West) return 1946;
								else return 1947;
						else
							if (Up)
								if (West) return 1948;
								else return 1949;
							else
								if (West) return 1950;
								else return 1951;
		}
		BlockState Fire();
		unsigned char Age(BlockState Block);
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool Up(BlockState Block);
		bool West(BlockState Block);
	}
	namespace FireCoral
	{
		constexpr BlockState FireCoral()
		{
			return 9537;
		}
	}
	namespace FireCoralBlock
	{
		constexpr BlockState FireCoralBlock()
		{
			return 9518;
		}
	}
	namespace FireCoralFan
	{
		constexpr BlockState FireCoralFan()
		{
			return 9557;
		}
	}
	namespace FireCoralWallFan
	{
		constexpr BlockState FireCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9625;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9627;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9629;
			else return 9631;
		}
		BlockState FireCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace FletchingTable
	{
		constexpr BlockState FletchingTable()
		{
			return 14820;
		}
	}
	namespace FlowerPot
	{
		constexpr BlockState FlowerPot()
		{
			return 6305;
		}
	}
	namespace FrostedIce
	{
		constexpr BlockState FrostedIce(const unsigned char Age)
		{
			if (Age == 0) return 9249;
			else if (Age == 1) return 9250;
			else if (Age == 2) return 9251;
			else return 9252;
		}
		BlockState FrostedIce();
		unsigned char Age(BlockState Block);
	}
	namespace Furnace
	{
		constexpr BlockState Furnace(const eBlockFace Facing, const bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Lit) return 3373;
				else return 3374;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Lit) return 3375;
				else return 3376;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Lit) return 3377;
				else return 3378;
			else
				if (Lit) return 3379;
				else return 3380;
		}
		BlockState Furnace();
		eBlockFace Facing(BlockState Block);
		bool Lit(BlockState Block);
	}
	namespace GildedBlackstone
	{
		constexpr BlockState GildedBlackstone()
		{
			return 16664;
		}
	}
	namespace Glass
	{
		constexpr BlockState Glass()
		{
			return 231;
		}
	}
	namespace GlassPane
	{
		constexpr BlockState GlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 4733;
						else return 4734;
					else
						if (West) return 4737;
						else return 4738;
				else
					if (South)
						if (West) return 4741;
						else return 4742;
					else
						if (West) return 4745;
						else return 4746;
			else
				if (North)
					if (South)
						if (West) return 4749;
						else return 4750;
					else
						if (West) return 4753;
						else return 4754;
				else
					if (South)
						if (West) return 4757;
						else return 4758;
					else
						if (West) return 4761;
						else return 4762;
		}
		BlockState GlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace Glowstone
	{
		constexpr BlockState Glowstone()
		{
			return 4013;
		}
	}
	namespace GoldBlock
	{
		constexpr BlockState GoldBlock()
		{
			return 1427;
		}
	}
	namespace GoldOre
	{
		constexpr BlockState GoldOre()
		{
			return 69;
		}
	}
	namespace Granite
	{
		constexpr BlockState Granite()
		{
			return 2;
		}
	}
	namespace GraniteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState GraniteSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10838;
			else if (Type == Type::Bottom) return 10840;
			else return 10842;
		}
		BlockState GraniteSlab();
		enum Type Type(BlockState Block);
	}
	namespace GraniteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState GraniteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10390;
					else if (Shape == Shape::InnerLeft) return 10392;
					else if (Shape == Shape::InnerRight) return 10394;
					else if (Shape == Shape::OuterLeft) return 10396;
					else return 10398;
				else
					if (Shape == Shape::Straight) return 10400;
					else if (Shape == Shape::InnerLeft) return 10402;
					else if (Shape == Shape::InnerRight) return 10404;
					else if (Shape == Shape::OuterLeft) return 10406;
					else return 10408;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10410;
					else if (Shape == Shape::InnerLeft) return 10412;
					else if (Shape == Shape::InnerRight) return 10414;
					else if (Shape == Shape::OuterLeft) return 10416;
					else return 10418;
				else
					if (Shape == Shape::Straight) return 10420;
					else if (Shape == Shape::InnerLeft) return 10422;
					else if (Shape == Shape::InnerRight) return 10424;
					else if (Shape == Shape::OuterLeft) return 10426;
					else return 10428;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10430;
					else if (Shape == Shape::InnerLeft) return 10432;
					else if (Shape == Shape::InnerRight) return 10434;
					else if (Shape == Shape::OuterLeft) return 10436;
					else return 10438;
				else
					if (Shape == Shape::Straight) return 10440;
					else if (Shape == Shape::InnerLeft) return 10442;
					else if (Shape == Shape::InnerRight) return 10444;
					else if (Shape == Shape::OuterLeft) return 10446;
					else return 10448;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10450;
					else if (Shape == Shape::InnerLeft) return 10452;
					else if (Shape == Shape::InnerRight) return 10454;
					else if (Shape == Shape::OuterLeft) return 10456;
					else return 10458;
				else
					if (Shape == Shape::Straight) return 10460;
					else if (Shape == Shape::InnerLeft) return 10462;
					else if (Shape == Shape::InnerRight) return 10464;
					else if (Shape == Shape::OuterLeft) return 10466;
					else return 10468;
		}
		BlockState GraniteStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState GraniteWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12166;
							else if (West == West::Low) return 12167;
							else return 12168;
						else
							if (West == West::None) return 12172;
							else if (West == West::Low) return 12173;
							else return 12174;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12178;
							else if (West == West::Low) return 12179;
							else return 12180;
						else
							if (West == West::None) return 12184;
							else if (West == West::Low) return 12185;
							else return 12186;
					else
						if (Up)
							if (West == West::None) return 12190;
							else if (West == West::Low) return 12191;
							else return 12192;
						else
							if (West == West::None) return 12196;
							else if (West == West::Low) return 12197;
							else return 12198;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12202;
							else if (West == West::Low) return 12203;
							else return 12204;
						else
							if (West == West::None) return 12208;
							else if (West == West::Low) return 12209;
							else return 12210;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12214;
							else if (West == West::Low) return 12215;
							else return 12216;
						else
							if (West == West::None) return 12220;
							else if (West == West::Low) return 12221;
							else return 12222;
					else
						if (Up)
							if (West == West::None) return 12226;
							else if (West == West::Low) return 12227;
							else return 12228;
						else
							if (West == West::None) return 12232;
							else if (West == West::Low) return 12233;
							else return 12234;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12238;
							else if (West == West::Low) return 12239;
							else return 12240;
						else
							if (West == West::None) return 12244;
							else if (West == West::Low) return 12245;
							else return 12246;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12250;
							else if (West == West::Low) return 12251;
							else return 12252;
						else
							if (West == West::None) return 12256;
							else if (West == West::Low) return 12257;
							else return 12258;
					else
						if (Up)
							if (West == West::None) return 12262;
							else if (West == West::Low) return 12263;
							else return 12264;
						else
							if (West == West::None) return 12268;
							else if (West == West::Low) return 12269;
							else return 12270;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12274;
							else if (West == West::Low) return 12275;
							else return 12276;
						else
							if (West == West::None) return 12280;
							else if (West == West::Low) return 12281;
							else return 12282;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12286;
							else if (West == West::Low) return 12287;
							else return 12288;
						else
							if (West == West::None) return 12292;
							else if (West == West::Low) return 12293;
							else return 12294;
					else
						if (Up)
							if (West == West::None) return 12298;
							else if (West == West::Low) return 12299;
							else return 12300;
						else
							if (West == West::None) return 12304;
							else if (West == West::Low) return 12305;
							else return 12306;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12310;
							else if (West == West::Low) return 12311;
							else return 12312;
						else
							if (West == West::None) return 12316;
							else if (West == West::Low) return 12317;
							else return 12318;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12322;
							else if (West == West::Low) return 12323;
							else return 12324;
						else
							if (West == West::None) return 12328;
							else if (West == West::Low) return 12329;
							else return 12330;
					else
						if (Up)
							if (West == West::None) return 12334;
							else if (West == West::Low) return 12335;
							else return 12336;
						else
							if (West == West::None) return 12340;
							else if (West == West::Low) return 12341;
							else return 12342;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12346;
							else if (West == West::Low) return 12347;
							else return 12348;
						else
							if (West == West::None) return 12352;
							else if (West == West::Low) return 12353;
							else return 12354;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12358;
							else if (West == West::Low) return 12359;
							else return 12360;
						else
							if (West == West::None) return 12364;
							else if (West == West::Low) return 12365;
							else return 12366;
					else
						if (Up)
							if (West == West::None) return 12370;
							else if (West == West::Low) return 12371;
							else return 12372;
						else
							if (West == West::None) return 12376;
							else if (West == West::Low) return 12377;
							else return 12378;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12382;
							else if (West == West::Low) return 12383;
							else return 12384;
						else
							if (West == West::None) return 12388;
							else if (West == West::Low) return 12389;
							else return 12390;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12394;
							else if (West == West::Low) return 12395;
							else return 12396;
						else
							if (West == West::None) return 12400;
							else if (West == West::Low) return 12401;
							else return 12402;
					else
						if (Up)
							if (West == West::None) return 12406;
							else if (West == West::Low) return 12407;
							else return 12408;
						else
							if (West == West::None) return 12412;
							else if (West == West::Low) return 12413;
							else return 12414;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12418;
							else if (West == West::Low) return 12419;
							else return 12420;
						else
							if (West == West::None) return 12424;
							else if (West == West::Low) return 12425;
							else return 12426;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12430;
							else if (West == West::Low) return 12431;
							else return 12432;
						else
							if (West == West::None) return 12436;
							else if (West == West::Low) return 12437;
							else return 12438;
					else
						if (Up)
							if (West == West::None) return 12442;
							else if (West == West::Low) return 12443;
							else return 12444;
						else
							if (West == West::None) return 12448;
							else if (West == West::Low) return 12449;
							else return 12450;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12454;
							else if (West == West::Low) return 12455;
							else return 12456;
						else
							if (West == West::None) return 12460;
							else if (West == West::Low) return 12461;
							else return 12462;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12466;
							else if (West == West::Low) return 12467;
							else return 12468;
						else
							if (West == West::None) return 12472;
							else if (West == West::Low) return 12473;
							else return 12474;
					else
						if (Up)
							if (West == West::None) return 12478;
							else if (West == West::Low) return 12479;
							else return 12480;
						else
							if (West == West::None) return 12484;
							else if (West == West::Low) return 12485;
							else return 12486;
		}
		BlockState GraniteWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace Grass
	{
		constexpr BlockState Grass()
		{
			return 1342;
		}
	}
	namespace GrassBlock
	{
		constexpr BlockState GrassBlock(const bool Snowy)
		{
			if (Snowy) return 8;
			else return 9;
		}
		BlockState GrassBlock();
		bool Snowy(BlockState Block);
	}
	namespace GrassPath
	{
		constexpr BlockState GrassPath()
		{
			return 9223;
		}
	}
	namespace Gravel
	{
		constexpr BlockState Gravel()
		{
			return 68;
		}
	}
	namespace GrayBanner
	{
		constexpr BlockState GrayBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 8009;
			else if (Rotation == 1) return 8010;
			else if (Rotation == 2) return 8011;
			else if (Rotation == 3) return 8012;
			else if (Rotation == 4) return 8013;
			else if (Rotation == 5) return 8014;
			else if (Rotation == 6) return 8015;
			else if (Rotation == 7) return 8016;
			else if (Rotation == 8) return 8017;
			else if (Rotation == 9) return 8018;
			else if (Rotation == 10) return 8019;
			else if (Rotation == 11) return 8020;
			else if (Rotation == 12) return 8021;
			else if (Rotation == 13) return 8022;
			else if (Rotation == 14) return 8023;
			else return 8024;
		}
		BlockState GrayBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace GrayBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState GrayBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1161;
					else return 1162;
				else
					if (Part == Part::Head) return 1163;
					else return 1164;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1165;
					else return 1166;
				else
					if (Part == Part::Head) return 1167;
					else return 1168;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1169;
					else return 1170;
				else
					if (Part == Part::Head) return 1171;
					else return 1172;
			else
				if (Occupied)
					if (Part == Part::Head) return 1173;
					else return 1174;
				else
					if (Part == Part::Head) return 1175;
					else return 1176;
		}
		BlockState GrayBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace GrayCarpet
	{
		constexpr BlockState GrayCarpet()
		{
			return 7873;
		}
	}
	namespace GrayConcrete
	{
		constexpr BlockState GrayConcrete()
		{
			return 9445;
		}
	}
	namespace GrayConcretePowder
	{
		constexpr BlockState GrayConcretePowder()
		{
			return 9461;
		}
	}
	namespace GrayGlazedTerracotta
	{
		constexpr BlockState GrayGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9402;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9403;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9404;
			else return 9405;
		}
		BlockState GrayGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace GrayShulkerBox
	{
		constexpr BlockState GrayShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9320;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9321;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9322;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9323;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9324;
			else return 9325;
		}
		BlockState GrayShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace GrayStainedGlass
	{
		constexpr BlockState GrayStainedGlass()
		{
			return 4102;
		}
	}
	namespace GrayStainedGlassPane
	{
		constexpr BlockState GrayStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7089;
						else return 7090;
					else
						if (West) return 7093;
						else return 7094;
				else
					if (South)
						if (West) return 7097;
						else return 7098;
					else
						if (West) return 7101;
						else return 7102;
			else
				if (North)
					if (South)
						if (West) return 7105;
						else return 7106;
					else
						if (West) return 7109;
						else return 7110;
				else
					if (South)
						if (West) return 7113;
						else return 7114;
					else
						if (West) return 7117;
						else return 7118;
		}
		BlockState GrayStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace GrayTerracotta
	{
		constexpr BlockState GrayTerracotta()
		{
			return 6854;
		}
	}
	namespace GrayWallBanner
	{
		constexpr BlockState GrayWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8181;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8182;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8183;
			else return 8184;
		}
		BlockState GrayWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace GrayWool
	{
		constexpr BlockState GrayWool()
		{
			return 1391;
		}
	}
	namespace GreenBanner
	{
		constexpr BlockState GreenBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 8105;
			else if (Rotation == 1) return 8106;
			else if (Rotation == 2) return 8107;
			else if (Rotation == 3) return 8108;
			else if (Rotation == 4) return 8109;
			else if (Rotation == 5) return 8110;
			else if (Rotation == 6) return 8111;
			else if (Rotation == 7) return 8112;
			else if (Rotation == 8) return 8113;
			else if (Rotation == 9) return 8114;
			else if (Rotation == 10) return 8115;
			else if (Rotation == 11) return 8116;
			else if (Rotation == 12) return 8117;
			else if (Rotation == 13) return 8118;
			else if (Rotation == 14) return 8119;
			else return 8120;
		}
		BlockState GreenBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace GreenBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState GreenBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1257;
					else return 1258;
				else
					if (Part == Part::Head) return 1259;
					else return 1260;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1261;
					else return 1262;
				else
					if (Part == Part::Head) return 1263;
					else return 1264;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1265;
					else return 1266;
				else
					if (Part == Part::Head) return 1267;
					else return 1268;
			else
				if (Occupied)
					if (Part == Part::Head) return 1269;
					else return 1270;
				else
					if (Part == Part::Head) return 1271;
					else return 1272;
		}
		BlockState GreenBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace GreenCarpet
	{
		constexpr BlockState GreenCarpet()
		{
			return 7879;
		}
	}
	namespace GreenConcrete
	{
		constexpr BlockState GreenConcrete()
		{
			return 9451;
		}
	}
	namespace GreenConcretePowder
	{
		constexpr BlockState GreenConcretePowder()
		{
			return 9467;
		}
	}
	namespace GreenGlazedTerracotta
	{
		constexpr BlockState GreenGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9426;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9427;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9428;
			else return 9429;
		}
		BlockState GreenGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace GreenShulkerBox
	{
		constexpr BlockState GreenShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9356;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9357;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9358;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9359;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9360;
			else return 9361;
		}
		BlockState GreenShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace GreenStainedGlass
	{
		constexpr BlockState GreenStainedGlass()
		{
			return 4108;
		}
	}
	namespace GreenStainedGlassPane
	{
		constexpr BlockState GreenStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7281;
						else return 7282;
					else
						if (West) return 7285;
						else return 7286;
				else
					if (South)
						if (West) return 7289;
						else return 7290;
					else
						if (West) return 7293;
						else return 7294;
			else
				if (North)
					if (South)
						if (West) return 7297;
						else return 7298;
					else
						if (West) return 7301;
						else return 7302;
				else
					if (South)
						if (West) return 7305;
						else return 7306;
					else
						if (West) return 7309;
						else return 7310;
		}
		BlockState GreenStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace GreenTerracotta
	{
		constexpr BlockState GreenTerracotta()
		{
			return 6860;
		}
	}
	namespace GreenWallBanner
	{
		constexpr BlockState GreenWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8205;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8206;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8207;
			else return 8208;
		}
		BlockState GreenWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace GreenWool
	{
		constexpr BlockState GreenWool()
		{
			return 1397;
		}
	}
	namespace Grindstone
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState Grindstone(const enum Face Face, const eBlockFace Facing)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14821;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14822;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14823;
				else return 14824;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14825;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14826;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14827;
				else return 14828;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14829;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14830;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14831;
				else return 14832;
		}
		BlockState Grindstone();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
	}
	namespace HayBale
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState HayBale(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 7863;
			else if (Axis == Axis::Y) return 7864;
			else return 7865;
		}
		BlockState HayBale();
		enum Axis Axis(BlockState Block);
	}
	namespace HeavyWeightedPressurePlate
	{
		constexpr BlockState HeavyWeightedPressurePlate(const unsigned char Power)
		{
			if (Power == 0) return 6662;
			else if (Power == 1) return 6663;
			else if (Power == 2) return 6664;
			else if (Power == 3) return 6665;
			else if (Power == 4) return 6666;
			else if (Power == 5) return 6667;
			else if (Power == 6) return 6668;
			else if (Power == 7) return 6669;
			else if (Power == 8) return 6670;
			else if (Power == 9) return 6671;
			else if (Power == 10) return 6672;
			else if (Power == 11) return 6673;
			else if (Power == 12) return 6674;
			else if (Power == 13) return 6675;
			else if (Power == 14) return 6676;
			else return 6677;
		}
		BlockState HeavyWeightedPressurePlate();
		unsigned char Power(BlockState Block);
	}
	namespace HoneyBlock
	{
		constexpr BlockState HoneyBlock()
		{
			return 15824;
		}
	}
	namespace HoneycombBlock
	{
		constexpr BlockState HoneycombBlock()
		{
			return 15825;
		}
	}
	namespace Hopper
	{
		constexpr BlockState Hopper(const bool Enabled, const eBlockFace Facing)
		{
			if (Enabled)
				if (Facing == eBlockFace::BLOCK_FACE_YM) return 6728;
				else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6729;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6730;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6731;
				else return 6732;
			else
				if (Facing == eBlockFace::BLOCK_FACE_YM) return 6733;
				else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6734;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6735;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6736;
				else return 6737;
		}
		BlockState Hopper();
		bool Enabled(BlockState Block);
		eBlockFace Facing(BlockState Block);
	}
	namespace HornCoral
	{
		constexpr BlockState HornCoral()
		{
			return 9539;
		}
	}
	namespace HornCoralBlock
	{
		constexpr BlockState HornCoralBlock()
		{
			return 9519;
		}
	}
	namespace HornCoralFan
	{
		constexpr BlockState HornCoralFan()
		{
			return 9559;
		}
	}
	namespace HornCoralWallFan
	{
		constexpr BlockState HornCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9633;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9635;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9637;
			else return 9639;
		}
		BlockState HornCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace Ice
	{
		constexpr BlockState Ice()
		{
			return 3929;
		}
	}
	namespace InfestedChiseledStoneBricks
	{
		constexpr BlockState InfestedChiseledStoneBricks()
		{
			return 4504;
		}
	}
	namespace InfestedCobblestone
	{
		constexpr BlockState InfestedCobblestone()
		{
			return 4500;
		}
	}
	namespace InfestedCrackedStoneBricks
	{
		constexpr BlockState InfestedCrackedStoneBricks()
		{
			return 4503;
		}
	}
	namespace InfestedMossyStoneBricks
	{
		constexpr BlockState InfestedMossyStoneBricks()
		{
			return 4502;
		}
	}
	namespace InfestedStone
	{
		constexpr BlockState InfestedStone()
		{
			return 4499;
		}
	}
	namespace InfestedStoneBricks
	{
		constexpr BlockState InfestedStoneBricks()
		{
			return 4501;
		}
	}
	namespace IronBars
	{
		constexpr BlockState IronBars(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 4699;
						else return 4700;
					else
						if (West) return 4703;
						else return 4704;
				else
					if (South)
						if (West) return 4707;
						else return 4708;
					else
						if (West) return 4711;
						else return 4712;
			else
				if (North)
					if (South)
						if (West) return 4715;
						else return 4716;
					else
						if (West) return 4719;
						else return 4720;
				else
					if (South)
						if (West) return 4723;
						else return 4724;
					else
						if (West) return 4727;
						else return 4728;
		}
		BlockState IronBars();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace IronBlock
	{
		constexpr BlockState IronBlock()
		{
			return 1428;
		}
	}
	namespace IronDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr BlockState IronDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3809;
							else return 3810;
						else
							if (Powered) return 3811;
							else return 3812;
					else
						if (Open)
							if (Powered) return 3813;
							else return 3814;
						else
							if (Powered) return 3815;
							else return 3816;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3817;
							else return 3818;
						else
							if (Powered) return 3819;
							else return 3820;
					else
						if (Open)
							if (Powered) return 3821;
							else return 3822;
						else
							if (Powered) return 3823;
							else return 3824;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3825;
							else return 3826;
						else
							if (Powered) return 3827;
							else return 3828;
					else
						if (Open)
							if (Powered) return 3829;
							else return 3830;
						else
							if (Powered) return 3831;
							else return 3832;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3833;
							else return 3834;
						else
							if (Powered) return 3835;
							else return 3836;
					else
						if (Open)
							if (Powered) return 3837;
							else return 3838;
						else
							if (Powered) return 3839;
							else return 3840;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3841;
							else return 3842;
						else
							if (Powered) return 3843;
							else return 3844;
					else
						if (Open)
							if (Powered) return 3845;
							else return 3846;
						else
							if (Powered) return 3847;
							else return 3848;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3849;
							else return 3850;
						else
							if (Powered) return 3851;
							else return 3852;
					else
						if (Open)
							if (Powered) return 3853;
							else return 3854;
						else
							if (Powered) return 3855;
							else return 3856;
			else
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3857;
							else return 3858;
						else
							if (Powered) return 3859;
							else return 3860;
					else
						if (Open)
							if (Powered) return 3861;
							else return 3862;
						else
							if (Powered) return 3863;
							else return 3864;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3865;
							else return 3866;
						else
							if (Powered) return 3867;
							else return 3868;
					else
						if (Open)
							if (Powered) return 3869;
							else return 3870;
						else
							if (Powered) return 3871;
							else return 3872;
		}
		BlockState IronDoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Hinge Hinge(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace IronOre
	{
		constexpr BlockState IronOre()
		{
			return 70;
		}
	}
	namespace IronTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr BlockState IronTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 7538;
						else return 7540;
					else
						if (Powered) return 7542;
						else return 7544;
				else
					if (Open)
						if (Powered) return 7546;
						else return 7548;
					else
						if (Powered) return 7550;
						else return 7552;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 7554;
						else return 7556;
					else
						if (Powered) return 7558;
						else return 7560;
				else
					if (Open)
						if (Powered) return 7562;
						else return 7564;
					else
						if (Powered) return 7566;
						else return 7568;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 7570;
						else return 7572;
					else
						if (Powered) return 7574;
						else return 7576;
				else
					if (Open)
						if (Powered) return 7578;
						else return 7580;
					else
						if (Powered) return 7582;
						else return 7584;
			else
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 7586;
						else return 7588;
					else
						if (Powered) return 7590;
						else return 7592;
				else
					if (Open)
						if (Powered) return 7594;
						else return 7596;
					else
						if (Powered) return 7598;
						else return 7600;
		}
		BlockState IronTrapdoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace JackOLantern
	{
		constexpr BlockState JackOLantern(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4020;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4021;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4022;
			else return 4023;
		}
		BlockState JackOLantern();
		eBlockFace Facing(BlockState Block);
	}
	namespace Jigsaw
	{
		enum class Orientation
		{
			DownEast,
			DownNorth,
			DownSouth,
			DownWest,
			UpEast,
			UpNorth,
			UpSouth,
			UpWest,
			WestUp,
			EastUp,
			NorthUp,
			SouthUp
		};
		constexpr BlockState Jigsaw(const enum Orientation Orientation)
		{
			if (Orientation == Orientation::DownEast) return 15739;
			else if (Orientation == Orientation::DownNorth) return 15740;
			else if (Orientation == Orientation::DownSouth) return 15741;
			else if (Orientation == Orientation::DownWest) return 15742;
			else if (Orientation == Orientation::UpEast) return 15743;
			else if (Orientation == Orientation::UpNorth) return 15744;
			else if (Orientation == Orientation::UpSouth) return 15745;
			else if (Orientation == Orientation::UpWest) return 15746;
			else if (Orientation == Orientation::WestUp) return 15747;
			else if (Orientation == Orientation::EastUp) return 15748;
			else if (Orientation == Orientation::NorthUp) return 15749;
			else return 15750;
		}
		BlockState Jigsaw();
		enum Orientation Orientation(BlockState Block);
	}
	namespace Jukebox
	{
		constexpr BlockState Jukebox(const bool HasRecord)
		{
			if (HasRecord) return 3964;
			else return 3965;
		}
		BlockState Jukebox();
		bool HasRecord(BlockState Block);
	}
	namespace JungleButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState JungleButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6418;
					else return 6419;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6420;
					else return 6421;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6422;
					else return 6423;
				else
					if (Powered) return 6424;
					else return 6425;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6426;
					else return 6427;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6428;
					else return 6429;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6430;
					else return 6431;
				else
					if (Powered) return 6432;
					else return 6433;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6434;
					else return 6435;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6436;
					else return 6437;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6438;
					else return 6439;
				else
					if (Powered) return 6440;
					else return 6441;
		}
		BlockState JungleButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace JungleDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr BlockState JungleDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8866;
							else return 8867;
						else
							if (Powered) return 8868;
							else return 8869;
					else
						if (Open)
							if (Powered) return 8870;
							else return 8871;
						else
							if (Powered) return 8872;
							else return 8873;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8874;
							else return 8875;
						else
							if (Powered) return 8876;
							else return 8877;
					else
						if (Open)
							if (Powered) return 8878;
							else return 8879;
						else
							if (Powered) return 8880;
							else return 8881;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8882;
							else return 8883;
						else
							if (Powered) return 8884;
							else return 8885;
					else
						if (Open)
							if (Powered) return 8886;
							else return 8887;
						else
							if (Powered) return 8888;
							else return 8889;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8890;
							else return 8891;
						else
							if (Powered) return 8892;
							else return 8893;
					else
						if (Open)
							if (Powered) return 8894;
							else return 8895;
						else
							if (Powered) return 8896;
							else return 8897;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8898;
							else return 8899;
						else
							if (Powered) return 8900;
							else return 8901;
					else
						if (Open)
							if (Powered) return 8902;
							else return 8903;
						else
							if (Powered) return 8904;
							else return 8905;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8906;
							else return 8907;
						else
							if (Powered) return 8908;
							else return 8909;
					else
						if (Open)
							if (Powered) return 8910;
							else return 8911;
						else
							if (Powered) return 8912;
							else return 8913;
			else
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8914;
							else return 8915;
						else
							if (Powered) return 8916;
							else return 8917;
					else
						if (Open)
							if (Powered) return 8918;
							else return 8919;
						else
							if (Powered) return 8920;
							else return 8921;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8922;
							else return 8923;
						else
							if (Powered) return 8924;
							else return 8925;
					else
						if (Open)
							if (Powered) return 8926;
							else return 8927;
						else
							if (Powered) return 8928;
							else return 8929;
		}
		BlockState JungleDoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Hinge Hinge(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace JungleFence
	{
		constexpr BlockState JungleFence(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 8644;
						else return 8645;
					else
						if (West) return 8648;
						else return 8649;
				else
					if (South)
						if (West) return 8652;
						else return 8653;
					else
						if (West) return 8656;
						else return 8657;
			else
				if (North)
					if (South)
						if (West) return 8660;
						else return 8661;
					else
						if (West) return 8664;
						else return 8665;
				else
					if (South)
						if (West) return 8668;
						else return 8669;
					else
						if (West) return 8672;
						else return 8673;
		}
		BlockState JungleFence();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace JungleFenceGate
	{
		constexpr BlockState JungleFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (InWall)
					if (Open)
						if (Powered) return 8482;
						else return 8483;
					else
						if (Powered) return 8484;
						else return 8485;
				else
					if (Open)
						if (Powered) return 8486;
						else return 8487;
					else
						if (Powered) return 8488;
						else return 8489;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (InWall)
					if (Open)
						if (Powered) return 8490;
						else return 8491;
					else
						if (Powered) return 8492;
						else return 8493;
				else
					if (Open)
						if (Powered) return 8494;
						else return 8495;
					else
						if (Powered) return 8496;
						else return 8497;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (InWall)
					if (Open)
						if (Powered) return 8498;
						else return 8499;
					else
						if (Powered) return 8500;
						else return 8501;
				else
					if (Open)
						if (Powered) return 8502;
						else return 8503;
					else
						if (Powered) return 8504;
						else return 8505;
			else
				if (InWall)
					if (Open)
						if (Powered) return 8506;
						else return 8507;
					else
						if (Powered) return 8508;
						else return 8509;
				else
					if (Open)
						if (Powered) return 8510;
						else return 8511;
					else
						if (Powered) return 8512;
						else return 8513;
		}
		BlockState JungleFenceGate();
		eBlockFace Facing(BlockState Block);
		bool InWall(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace JungleLeaves
	{
		constexpr BlockState JungleLeaves(const unsigned char Distance, const bool Persistent)
		{
			if (Distance == 1)
				if (Persistent) return 187;
				else return 188;
			else if (Distance == 2)
				if (Persistent) return 189;
				else return 190;
			else if (Distance == 3)
				if (Persistent) return 191;
				else return 192;
			else if (Distance == 4)
				if (Persistent) return 193;
				else return 194;
			else if (Distance == 5)
				if (Persistent) return 195;
				else return 196;
			else if (Distance == 6)
				if (Persistent) return 197;
				else return 198;
			else
				if (Persistent) return 199;
				else return 200;
		}
		BlockState JungleLeaves();
		unsigned char Distance(BlockState Block);
		bool Persistent(BlockState Block);
	}
	namespace JungleLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState JungleLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 82;
			else if (Axis == Axis::Y) return 83;
			else return 84;
		}
		BlockState JungleLog();
		enum Axis Axis(BlockState Block);
	}
	namespace JunglePlanks
	{
		constexpr BlockState JunglePlanks()
		{
			return 18;
		}
	}
	namespace JunglePressurePlate
	{
		constexpr BlockState JunglePressurePlate(const bool Powered)
		{
			if (Powered) return 3879;
			else return 3880;
		}
		BlockState JunglePressurePlate();
		bool Powered(BlockState Block);
	}
	namespace JungleSapling
	{
		constexpr BlockState JungleSapling(const unsigned char Stage)
		{
			if (Stage == 0) return 27;
			else return 28;
		}
		BlockState JungleSapling();
		unsigned char Stage(BlockState Block);
	}
	namespace JungleSign
	{
		constexpr BlockState JungleSign(const unsigned char Rotation)
		{
			if (Rotation == 0) return 3510;
			else if (Rotation == 1) return 3512;
			else if (Rotation == 2) return 3514;
			else if (Rotation == 3) return 3516;
			else if (Rotation == 4) return 3518;
			else if (Rotation == 5) return 3520;
			else if (Rotation == 6) return 3522;
			else if (Rotation == 7) return 3524;
			else if (Rotation == 8) return 3526;
			else if (Rotation == 9) return 3528;
			else if (Rotation == 10) return 3530;
			else if (Rotation == 11) return 3532;
			else if (Rotation == 12) return 3534;
			else if (Rotation == 13) return 3536;
			else if (Rotation == 14) return 3538;
			else return 3540;
		}
		BlockState JungleSign();
		unsigned char Rotation(BlockState Block);
	}
	namespace JungleSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState JungleSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8319;
			else if (Type == Type::Bottom) return 8321;
			else return 8323;
		}
		BlockState JungleSlab();
		enum Type Type(BlockState Block);
	}
	namespace JungleStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState JungleStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5565;
					else if (Shape == Shape::InnerLeft) return 5567;
					else if (Shape == Shape::InnerRight) return 5569;
					else if (Shape == Shape::OuterLeft) return 5571;
					else return 5573;
				else
					if (Shape == Shape::Straight) return 5575;
					else if (Shape == Shape::InnerLeft) return 5577;
					else if (Shape == Shape::InnerRight) return 5579;
					else if (Shape == Shape::OuterLeft) return 5581;
					else return 5583;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5585;
					else if (Shape == Shape::InnerLeft) return 5587;
					else if (Shape == Shape::InnerRight) return 5589;
					else if (Shape == Shape::OuterLeft) return 5591;
					else return 5593;
				else
					if (Shape == Shape::Straight) return 5595;
					else if (Shape == Shape::InnerLeft) return 5597;
					else if (Shape == Shape::InnerRight) return 5599;
					else if (Shape == Shape::OuterLeft) return 5601;
					else return 5603;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5605;
					else if (Shape == Shape::InnerLeft) return 5607;
					else if (Shape == Shape::InnerRight) return 5609;
					else if (Shape == Shape::OuterLeft) return 5611;
					else return 5613;
				else
					if (Shape == Shape::Straight) return 5615;
					else if (Shape == Shape::InnerLeft) return 5617;
					else if (Shape == Shape::InnerRight) return 5619;
					else if (Shape == Shape::OuterLeft) return 5621;
					else return 5623;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5625;
					else if (Shape == Shape::InnerLeft) return 5627;
					else if (Shape == Shape::InnerRight) return 5629;
					else if (Shape == Shape::OuterLeft) return 5631;
					else return 5633;
				else
					if (Shape == Shape::Straight) return 5635;
					else if (Shape == Shape::InnerLeft) return 5637;
					else if (Shape == Shape::InnerRight) return 5639;
					else if (Shape == Shape::OuterLeft) return 5641;
					else return 5643;
		}
		BlockState JungleStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace JungleTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr BlockState JungleTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4304;
						else return 4306;
					else
						if (Powered) return 4308;
						else return 4310;
				else
					if (Open)
						if (Powered) return 4312;
						else return 4314;
					else
						if (Powered) return 4316;
						else return 4318;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4320;
						else return 4322;
					else
						if (Powered) return 4324;
						else return 4326;
				else
					if (Open)
						if (Powered) return 4328;
						else return 4330;
					else
						if (Powered) return 4332;
						else return 4334;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4336;
						else return 4338;
					else
						if (Powered) return 4340;
						else return 4342;
				else
					if (Open)
						if (Powered) return 4344;
						else return 4346;
					else
						if (Powered) return 4348;
						else return 4350;
			else
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4352;
						else return 4354;
					else
						if (Powered) return 4356;
						else return 4358;
				else
					if (Open)
						if (Powered) return 4360;
						else return 4362;
					else
						if (Powered) return 4364;
						else return 4366;
		}
		BlockState JungleTrapdoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace JungleWallSign
	{
		constexpr BlockState JungleWallSign(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3768;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3770;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3772;
			else return 3774;
		}
		BlockState JungleWallSign();
		eBlockFace Facing(BlockState Block);
	}
	namespace JungleWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState JungleWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 118;
			else if (Axis == Axis::Y) return 119;
			else return 120;
		}
		BlockState JungleWood();
		enum Axis Axis(BlockState Block);
	}
	namespace Kelp
	{
		constexpr BlockState Kelp(const unsigned char Age)
		{
			if (Age == 0) return 9470;
			else if (Age == 1) return 9471;
			else if (Age == 2) return 9472;
			else if (Age == 3) return 9473;
			else if (Age == 4) return 9474;
			else if (Age == 5) return 9475;
			else if (Age == 6) return 9476;
			else if (Age == 7) return 9477;
			else if (Age == 8) return 9478;
			else if (Age == 9) return 9479;
			else if (Age == 10) return 9480;
			else if (Age == 11) return 9481;
			else if (Age == 12) return 9482;
			else if (Age == 13) return 9483;
			else if (Age == 14) return 9484;
			else if (Age == 15) return 9485;
			else if (Age == 16) return 9486;
			else if (Age == 17) return 9487;
			else if (Age == 18) return 9488;
			else if (Age == 19) return 9489;
			else if (Age == 20) return 9490;
			else if (Age == 21) return 9491;
			else if (Age == 22) return 9492;
			else if (Age == 23) return 9493;
			else if (Age == 24) return 9494;
			else return 9495;
		}
		BlockState Kelp();
		unsigned char Age(BlockState Block);
	}
	namespace KelpPlant
	{
		constexpr BlockState KelpPlant()
		{
			return 9496;
		}
	}
	namespace Ladder
	{
		constexpr BlockState Ladder(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3638;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3640;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3642;
			else return 3644;
		}
		BlockState Ladder();
		eBlockFace Facing(BlockState Block);
	}
	namespace Lantern
	{
		constexpr BlockState Lantern(const bool Hanging)
		{
			if (Hanging) return 14886;
			else return 14887;
		}
		BlockState Lantern();
		bool Hanging(BlockState Block);
	}
	namespace LapisBlock
	{
		constexpr BlockState LapisBlock()
		{
			return 233;
		}
	}
	namespace LapisOre
	{
		constexpr BlockState LapisOre()
		{
			return 232;
		}
	}
	namespace LargeFern
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr BlockState LargeFern(const enum Half Half)
		{
			if (Half == Half::Upper) return 7895;
			else return 7896;
		}
		BlockState LargeFern();
		enum Half Half(BlockState Block);
	}
	namespace Lava
	{
		constexpr BlockState Lava(const unsigned char Level)
		{
			if (Level == 0) return 50;
			else if (Level == 1) return 51;
			else if (Level == 2) return 52;
			else if (Level == 3) return 53;
			else if (Level == 4) return 54;
			else if (Level == 5) return 55;
			else if (Level == 6) return 56;
			else if (Level == 7) return 57;
			else if (Level == 8) return 58;
			else if (Level == 9) return 59;
			else if (Level == 10) return 60;
			else if (Level == 11) return 61;
			else if (Level == 12) return 62;
			else if (Level == 13) return 63;
			else if (Level == 14) return 64;
			else return 65;
		}
		BlockState Lava();
		unsigned char Level(BlockState Block);
	}
	namespace Lectern
	{
		constexpr BlockState Lectern(const eBlockFace Facing, const bool HasBook, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (HasBook)
					if (Powered) return 14833;
					else return 14834;
				else
					if (Powered) return 14835;
					else return 14836;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (HasBook)
					if (Powered) return 14837;
					else return 14838;
				else
					if (Powered) return 14839;
					else return 14840;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (HasBook)
					if (Powered) return 14841;
					else return 14842;
				else
					if (Powered) return 14843;
					else return 14844;
			else
				if (HasBook)
					if (Powered) return 14845;
					else return 14846;
				else
					if (Powered) return 14847;
					else return 14848;
		}
		BlockState Lectern();
		eBlockFace Facing(BlockState Block);
		bool HasBook(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace Lever
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState Lever(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 3783;
					else return 3784;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 3785;
					else return 3786;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 3787;
					else return 3788;
				else
					if (Powered) return 3789;
					else return 3790;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 3791;
					else return 3792;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 3793;
					else return 3794;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 3795;
					else return 3796;
				else
					if (Powered) return 3797;
					else return 3798;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 3799;
					else return 3800;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 3801;
					else return 3802;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 3803;
					else return 3804;
				else
					if (Powered) return 3805;
					else return 3806;
		}
		BlockState Lever();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace LightBlueBanner
	{
		constexpr BlockState LightBlueBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 7945;
			else if (Rotation == 1) return 7946;
			else if (Rotation == 2) return 7947;
			else if (Rotation == 3) return 7948;
			else if (Rotation == 4) return 7949;
			else if (Rotation == 5) return 7950;
			else if (Rotation == 6) return 7951;
			else if (Rotation == 7) return 7952;
			else if (Rotation == 8) return 7953;
			else if (Rotation == 9) return 7954;
			else if (Rotation == 10) return 7955;
			else if (Rotation == 11) return 7956;
			else if (Rotation == 12) return 7957;
			else if (Rotation == 13) return 7958;
			else if (Rotation == 14) return 7959;
			else return 7960;
		}
		BlockState LightBlueBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace LightBlueBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState LightBlueBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1097;
					else return 1098;
				else
					if (Part == Part::Head) return 1099;
					else return 1100;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1101;
					else return 1102;
				else
					if (Part == Part::Head) return 1103;
					else return 1104;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1105;
					else return 1106;
				else
					if (Part == Part::Head) return 1107;
					else return 1108;
			else
				if (Occupied)
					if (Part == Part::Head) return 1109;
					else return 1110;
				else
					if (Part == Part::Head) return 1111;
					else return 1112;
		}
		BlockState LightBlueBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace LightBlueCarpet
	{
		constexpr BlockState LightBlueCarpet()
		{
			return 7869;
		}
	}
	namespace LightBlueConcrete
	{
		constexpr BlockState LightBlueConcrete()
		{
			return 9441;
		}
	}
	namespace LightBlueConcretePowder
	{
		constexpr BlockState LightBlueConcretePowder()
		{
			return 9457;
		}
	}
	namespace LightBlueGlazedTerracotta
	{
		constexpr BlockState LightBlueGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9386;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9387;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9388;
			else return 9389;
		}
		BlockState LightBlueGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace LightBlueShulkerBox
	{
		constexpr BlockState LightBlueShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9296;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9297;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9298;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9299;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9300;
			else return 9301;
		}
		BlockState LightBlueShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace LightBlueStainedGlass
	{
		constexpr BlockState LightBlueStainedGlass()
		{
			return 4098;
		}
	}
	namespace LightBlueStainedGlassPane
	{
		constexpr BlockState LightBlueStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 6961;
						else return 6962;
					else
						if (West) return 6965;
						else return 6966;
				else
					if (South)
						if (West) return 6969;
						else return 6970;
					else
						if (West) return 6973;
						else return 6974;
			else
				if (North)
					if (South)
						if (West) return 6977;
						else return 6978;
					else
						if (West) return 6981;
						else return 6982;
				else
					if (South)
						if (West) return 6985;
						else return 6986;
					else
						if (West) return 6989;
						else return 6990;
		}
		BlockState LightBlueStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace LightBlueTerracotta
	{
		constexpr BlockState LightBlueTerracotta()
		{
			return 6850;
		}
	}
	namespace LightBlueWallBanner
	{
		constexpr BlockState LightBlueWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8165;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8166;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8167;
			else return 8168;
		}
		BlockState LightBlueWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace LightBlueWool
	{
		constexpr BlockState LightBlueWool()
		{
			return 1387;
		}
	}
	namespace LightGrayBanner
	{
		constexpr BlockState LightGrayBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 8025;
			else if (Rotation == 1) return 8026;
			else if (Rotation == 2) return 8027;
			else if (Rotation == 3) return 8028;
			else if (Rotation == 4) return 8029;
			else if (Rotation == 5) return 8030;
			else if (Rotation == 6) return 8031;
			else if (Rotation == 7) return 8032;
			else if (Rotation == 8) return 8033;
			else if (Rotation == 9) return 8034;
			else if (Rotation == 10) return 8035;
			else if (Rotation == 11) return 8036;
			else if (Rotation == 12) return 8037;
			else if (Rotation == 13) return 8038;
			else if (Rotation == 14) return 8039;
			else return 8040;
		}
		BlockState LightGrayBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace LightGrayBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState LightGrayBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1177;
					else return 1178;
				else
					if (Part == Part::Head) return 1179;
					else return 1180;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1181;
					else return 1182;
				else
					if (Part == Part::Head) return 1183;
					else return 1184;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1185;
					else return 1186;
				else
					if (Part == Part::Head) return 1187;
					else return 1188;
			else
				if (Occupied)
					if (Part == Part::Head) return 1189;
					else return 1190;
				else
					if (Part == Part::Head) return 1191;
					else return 1192;
		}
		BlockState LightGrayBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace LightGrayCarpet
	{
		constexpr BlockState LightGrayCarpet()
		{
			return 7874;
		}
	}
	namespace LightGrayConcrete
	{
		constexpr BlockState LightGrayConcrete()
		{
			return 9446;
		}
	}
	namespace LightGrayConcretePowder
	{
		constexpr BlockState LightGrayConcretePowder()
		{
			return 9462;
		}
	}
	namespace LightGrayGlazedTerracotta
	{
		constexpr BlockState LightGrayGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9406;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9407;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9408;
			else return 9409;
		}
		BlockState LightGrayGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace LightGrayShulkerBox
	{
		constexpr BlockState LightGrayShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9326;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9327;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9328;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9329;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9330;
			else return 9331;
		}
		BlockState LightGrayShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace LightGrayStainedGlass
	{
		constexpr BlockState LightGrayStainedGlass()
		{
			return 4103;
		}
	}
	namespace LightGrayStainedGlassPane
	{
		constexpr BlockState LightGrayStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7121;
						else return 7122;
					else
						if (West) return 7125;
						else return 7126;
				else
					if (South)
						if (West) return 7129;
						else return 7130;
					else
						if (West) return 7133;
						else return 7134;
			else
				if (North)
					if (South)
						if (West) return 7137;
						else return 7138;
					else
						if (West) return 7141;
						else return 7142;
				else
					if (South)
						if (West) return 7145;
						else return 7146;
					else
						if (West) return 7149;
						else return 7150;
		}
		BlockState LightGrayStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace LightGrayTerracotta
	{
		constexpr BlockState LightGrayTerracotta()
		{
			return 6855;
		}
	}
	namespace LightGrayWallBanner
	{
		constexpr BlockState LightGrayWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8185;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8186;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8187;
			else return 8188;
		}
		BlockState LightGrayWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace LightGrayWool
	{
		constexpr BlockState LightGrayWool()
		{
			return 1392;
		}
	}
	namespace LightWeightedPressurePlate
	{
		constexpr BlockState LightWeightedPressurePlate(const unsigned char Power)
		{
			if (Power == 0) return 6646;
			else if (Power == 1) return 6647;
			else if (Power == 2) return 6648;
			else if (Power == 3) return 6649;
			else if (Power == 4) return 6650;
			else if (Power == 5) return 6651;
			else if (Power == 6) return 6652;
			else if (Power == 7) return 6653;
			else if (Power == 8) return 6654;
			else if (Power == 9) return 6655;
			else if (Power == 10) return 6656;
			else if (Power == 11) return 6657;
			else if (Power == 12) return 6658;
			else if (Power == 13) return 6659;
			else if (Power == 14) return 6660;
			else return 6661;
		}
		BlockState LightWeightedPressurePlate();
		unsigned char Power(BlockState Block);
	}
	namespace Lilac
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr BlockState Lilac(const enum Half Half)
		{
			if (Half == Half::Upper) return 7887;
			else return 7888;
		}
		BlockState Lilac();
		enum Half Half(BlockState Block);
	}
	namespace LilyOfTheValley
	{
		constexpr BlockState LilyOfTheValley()
		{
			return 1424;
		}
	}
	namespace LilyPad
	{
		constexpr BlockState LilyPad()
		{
			return 5014;
		}
	}
	namespace LimeBanner
	{
		constexpr BlockState LimeBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 7977;
			else if (Rotation == 1) return 7978;
			else if (Rotation == 2) return 7979;
			else if (Rotation == 3) return 7980;
			else if (Rotation == 4) return 7981;
			else if (Rotation == 5) return 7982;
			else if (Rotation == 6) return 7983;
			else if (Rotation == 7) return 7984;
			else if (Rotation == 8) return 7985;
			else if (Rotation == 9) return 7986;
			else if (Rotation == 10) return 7987;
			else if (Rotation == 11) return 7988;
			else if (Rotation == 12) return 7989;
			else if (Rotation == 13) return 7990;
			else if (Rotation == 14) return 7991;
			else return 7992;
		}
		BlockState LimeBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace LimeBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState LimeBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1129;
					else return 1130;
				else
					if (Part == Part::Head) return 1131;
					else return 1132;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1133;
					else return 1134;
				else
					if (Part == Part::Head) return 1135;
					else return 1136;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1137;
					else return 1138;
				else
					if (Part == Part::Head) return 1139;
					else return 1140;
			else
				if (Occupied)
					if (Part == Part::Head) return 1141;
					else return 1142;
				else
					if (Part == Part::Head) return 1143;
					else return 1144;
		}
		BlockState LimeBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace LimeCarpet
	{
		constexpr BlockState LimeCarpet()
		{
			return 7871;
		}
	}
	namespace LimeConcrete
	{
		constexpr BlockState LimeConcrete()
		{
			return 9443;
		}
	}
	namespace LimeConcretePowder
	{
		constexpr BlockState LimeConcretePowder()
		{
			return 9459;
		}
	}
	namespace LimeGlazedTerracotta
	{
		constexpr BlockState LimeGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9394;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9395;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9396;
			else return 9397;
		}
		BlockState LimeGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace LimeShulkerBox
	{
		constexpr BlockState LimeShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9308;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9309;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9310;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9311;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9312;
			else return 9313;
		}
		BlockState LimeShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace LimeStainedGlass
	{
		constexpr BlockState LimeStainedGlass()
		{
			return 4100;
		}
	}
	namespace LimeStainedGlassPane
	{
		constexpr BlockState LimeStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7025;
						else return 7026;
					else
						if (West) return 7029;
						else return 7030;
				else
					if (South)
						if (West) return 7033;
						else return 7034;
					else
						if (West) return 7037;
						else return 7038;
			else
				if (North)
					if (South)
						if (West) return 7041;
						else return 7042;
					else
						if (West) return 7045;
						else return 7046;
				else
					if (South)
						if (West) return 7049;
						else return 7050;
					else
						if (West) return 7053;
						else return 7054;
		}
		BlockState LimeStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace LimeTerracotta
	{
		constexpr BlockState LimeTerracotta()
		{
			return 6852;
		}
	}
	namespace LimeWallBanner
	{
		constexpr BlockState LimeWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8173;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8174;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8175;
			else return 8176;
		}
		BlockState LimeWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace LimeWool
	{
		constexpr BlockState LimeWool()
		{
			return 1389;
		}
	}
	namespace Lodestone
	{
		constexpr BlockState Lodestone()
		{
			return 15838;
		}
	}
	namespace Loom
	{
		constexpr BlockState Loom(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14787;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14788;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14789;
			else return 14790;
		}
		BlockState Loom();
		eBlockFace Facing(BlockState Block);
	}
	namespace MagentaBanner
	{
		constexpr BlockState MagentaBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 7929;
			else if (Rotation == 1) return 7930;
			else if (Rotation == 2) return 7931;
			else if (Rotation == 3) return 7932;
			else if (Rotation == 4) return 7933;
			else if (Rotation == 5) return 7934;
			else if (Rotation == 6) return 7935;
			else if (Rotation == 7) return 7936;
			else if (Rotation == 8) return 7937;
			else if (Rotation == 9) return 7938;
			else if (Rotation == 10) return 7939;
			else if (Rotation == 11) return 7940;
			else if (Rotation == 12) return 7941;
			else if (Rotation == 13) return 7942;
			else if (Rotation == 14) return 7943;
			else return 7944;
		}
		BlockState MagentaBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace MagentaBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState MagentaBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1081;
					else return 1082;
				else
					if (Part == Part::Head) return 1083;
					else return 1084;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1085;
					else return 1086;
				else
					if (Part == Part::Head) return 1087;
					else return 1088;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1089;
					else return 1090;
				else
					if (Part == Part::Head) return 1091;
					else return 1092;
			else
				if (Occupied)
					if (Part == Part::Head) return 1093;
					else return 1094;
				else
					if (Part == Part::Head) return 1095;
					else return 1096;
		}
		BlockState MagentaBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace MagentaCarpet
	{
		constexpr BlockState MagentaCarpet()
		{
			return 7868;
		}
	}
	namespace MagentaConcrete
	{
		constexpr BlockState MagentaConcrete()
		{
			return 9440;
		}
	}
	namespace MagentaConcretePowder
	{
		constexpr BlockState MagentaConcretePowder()
		{
			return 9456;
		}
	}
	namespace MagentaGlazedTerracotta
	{
		constexpr BlockState MagentaGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9382;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9383;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9384;
			else return 9385;
		}
		BlockState MagentaGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace MagentaShulkerBox
	{
		constexpr BlockState MagentaShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9290;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9291;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9292;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9293;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9294;
			else return 9295;
		}
		BlockState MagentaShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace MagentaStainedGlass
	{
		constexpr BlockState MagentaStainedGlass()
		{
			return 4097;
		}
	}
	namespace MagentaStainedGlassPane
	{
		constexpr BlockState MagentaStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 6929;
						else return 6930;
					else
						if (West) return 6933;
						else return 6934;
				else
					if (South)
						if (West) return 6937;
						else return 6938;
					else
						if (West) return 6941;
						else return 6942;
			else
				if (North)
					if (South)
						if (West) return 6945;
						else return 6946;
					else
						if (West) return 6949;
						else return 6950;
				else
					if (South)
						if (West) return 6953;
						else return 6954;
					else
						if (West) return 6957;
						else return 6958;
		}
		BlockState MagentaStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace MagentaTerracotta
	{
		constexpr BlockState MagentaTerracotta()
		{
			return 6849;
		}
	}
	namespace MagentaWallBanner
	{
		constexpr BlockState MagentaWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8161;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8162;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8163;
			else return 8164;
		}
		BlockState MagentaWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace MagentaWool
	{
		constexpr BlockState MagentaWool()
		{
			return 1386;
		}
	}
	namespace MagmaBlock
	{
		constexpr BlockState MagmaBlock()
		{
			return 9253;
		}
	}
	namespace Melon
	{
		constexpr BlockState Melon()
		{
			return 4763;
		}
	}
	namespace MelonStem
	{
		constexpr BlockState MelonStem(const unsigned char Age)
		{
			if (Age == 0) return 4780;
			else if (Age == 1) return 4781;
			else if (Age == 2) return 4782;
			else if (Age == 3) return 4783;
			else if (Age == 4) return 4784;
			else if (Age == 5) return 4785;
			else if (Age == 6) return 4786;
			else return 4787;
		}
		BlockState MelonStem();
		unsigned char Age(BlockState Block);
	}
	namespace MossyCobblestone
	{
		constexpr BlockState MossyCobblestone()
		{
			return 1433;
		}
	}
	namespace MossyCobblestoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState MossyCobblestoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10814;
			else if (Type == Type::Bottom) return 10816;
			else return 10818;
		}
		BlockState MossyCobblestoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace MossyCobblestoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState MossyCobblestoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9990;
					else if (Shape == Shape::InnerLeft) return 9992;
					else if (Shape == Shape::InnerRight) return 9994;
					else if (Shape == Shape::OuterLeft) return 9996;
					else return 9998;
				else
					if (Shape == Shape::Straight) return 10000;
					else if (Shape == Shape::InnerLeft) return 10002;
					else if (Shape == Shape::InnerRight) return 10004;
					else if (Shape == Shape::OuterLeft) return 10006;
					else return 10008;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10010;
					else if (Shape == Shape::InnerLeft) return 10012;
					else if (Shape == Shape::InnerRight) return 10014;
					else if (Shape == Shape::OuterLeft) return 10016;
					else return 10018;
				else
					if (Shape == Shape::Straight) return 10020;
					else if (Shape == Shape::InnerLeft) return 10022;
					else if (Shape == Shape::InnerRight) return 10024;
					else if (Shape == Shape::OuterLeft) return 10026;
					else return 10028;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10030;
					else if (Shape == Shape::InnerLeft) return 10032;
					else if (Shape == Shape::InnerRight) return 10034;
					else if (Shape == Shape::OuterLeft) return 10036;
					else return 10038;
				else
					if (Shape == Shape::Straight) return 10040;
					else if (Shape == Shape::InnerLeft) return 10042;
					else if (Shape == Shape::InnerRight) return 10044;
					else if (Shape == Shape::OuterLeft) return 10046;
					else return 10048;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10050;
					else if (Shape == Shape::InnerLeft) return 10052;
					else if (Shape == Shape::InnerRight) return 10054;
					else if (Shape == Shape::OuterLeft) return 10056;
					else return 10058;
				else
					if (Shape == Shape::Straight) return 10060;
					else if (Shape == Shape::InnerLeft) return 10062;
					else if (Shape == Shape::InnerRight) return 10064;
					else if (Shape == Shape::OuterLeft) return 10066;
					else return 10068;
		}
		BlockState MossyCobblestoneStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState MossyCobblestoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 5984;
							else if (West == West::Low) return 5985;
							else return 5986;
						else
							if (West == West::None) return 5990;
							else if (West == West::Low) return 5991;
							else return 5992;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 5996;
							else if (West == West::Low) return 5997;
							else return 5998;
						else
							if (West == West::None) return 6002;
							else if (West == West::Low) return 6003;
							else return 6004;
					else
						if (Up)
							if (West == West::None) return 6008;
							else if (West == West::Low) return 6009;
							else return 6010;
						else
							if (West == West::None) return 6014;
							else if (West == West::Low) return 6015;
							else return 6016;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 6020;
							else if (West == West::Low) return 6021;
							else return 6022;
						else
							if (West == West::None) return 6026;
							else if (West == West::Low) return 6027;
							else return 6028;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 6032;
							else if (West == West::Low) return 6033;
							else return 6034;
						else
							if (West == West::None) return 6038;
							else if (West == West::Low) return 6039;
							else return 6040;
					else
						if (Up)
							if (West == West::None) return 6044;
							else if (West == West::Low) return 6045;
							else return 6046;
						else
							if (West == West::None) return 6050;
							else if (West == West::Low) return 6051;
							else return 6052;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 6056;
							else if (West == West::Low) return 6057;
							else return 6058;
						else
							if (West == West::None) return 6062;
							else if (West == West::Low) return 6063;
							else return 6064;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 6068;
							else if (West == West::Low) return 6069;
							else return 6070;
						else
							if (West == West::None) return 6074;
							else if (West == West::Low) return 6075;
							else return 6076;
					else
						if (Up)
							if (West == West::None) return 6080;
							else if (West == West::Low) return 6081;
							else return 6082;
						else
							if (West == West::None) return 6086;
							else if (West == West::Low) return 6087;
							else return 6088;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 6092;
							else if (West == West::Low) return 6093;
							else return 6094;
						else
							if (West == West::None) return 6098;
							else if (West == West::Low) return 6099;
							else return 6100;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 6104;
							else if (West == West::Low) return 6105;
							else return 6106;
						else
							if (West == West::None) return 6110;
							else if (West == West::Low) return 6111;
							else return 6112;
					else
						if (Up)
							if (West == West::None) return 6116;
							else if (West == West::Low) return 6117;
							else return 6118;
						else
							if (West == West::None) return 6122;
							else if (West == West::Low) return 6123;
							else return 6124;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 6128;
							else if (West == West::Low) return 6129;
							else return 6130;
						else
							if (West == West::None) return 6134;
							else if (West == West::Low) return 6135;
							else return 6136;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 6140;
							else if (West == West::Low) return 6141;
							else return 6142;
						else
							if (West == West::None) return 6146;
							else if (West == West::Low) return 6147;
							else return 6148;
					else
						if (Up)
							if (West == West::None) return 6152;
							else if (West == West::Low) return 6153;
							else return 6154;
						else
							if (West == West::None) return 6158;
							else if (West == West::Low) return 6159;
							else return 6160;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 6164;
							else if (West == West::Low) return 6165;
							else return 6166;
						else
							if (West == West::None) return 6170;
							else if (West == West::Low) return 6171;
							else return 6172;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 6176;
							else if (West == West::Low) return 6177;
							else return 6178;
						else
							if (West == West::None) return 6182;
							else if (West == West::Low) return 6183;
							else return 6184;
					else
						if (Up)
							if (West == West::None) return 6188;
							else if (West == West::Low) return 6189;
							else return 6190;
						else
							if (West == West::None) return 6194;
							else if (West == West::Low) return 6195;
							else return 6196;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 6200;
							else if (West == West::Low) return 6201;
							else return 6202;
						else
							if (West == West::None) return 6206;
							else if (West == West::Low) return 6207;
							else return 6208;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 6212;
							else if (West == West::Low) return 6213;
							else return 6214;
						else
							if (West == West::None) return 6218;
							else if (West == West::Low) return 6219;
							else return 6220;
					else
						if (Up)
							if (West == West::None) return 6224;
							else if (West == West::Low) return 6225;
							else return 6226;
						else
							if (West == West::None) return 6230;
							else if (West == West::Low) return 6231;
							else return 6232;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 6236;
							else if (West == West::Low) return 6237;
							else return 6238;
						else
							if (West == West::None) return 6242;
							else if (West == West::Low) return 6243;
							else return 6244;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 6248;
							else if (West == West::Low) return 6249;
							else return 6250;
						else
							if (West == West::None) return 6254;
							else if (West == West::Low) return 6255;
							else return 6256;
					else
						if (Up)
							if (West == West::None) return 6260;
							else if (West == West::Low) return 6261;
							else return 6262;
						else
							if (West == West::None) return 6266;
							else if (West == West::Low) return 6267;
							else return 6268;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 6272;
							else if (West == West::Low) return 6273;
							else return 6274;
						else
							if (West == West::None) return 6278;
							else if (West == West::Low) return 6279;
							else return 6280;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 6284;
							else if (West == West::Low) return 6285;
							else return 6286;
						else
							if (West == West::None) return 6290;
							else if (West == West::Low) return 6291;
							else return 6292;
					else
						if (Up)
							if (West == West::None) return 6296;
							else if (West == West::Low) return 6297;
							else return 6298;
						else
							if (West == West::None) return 6302;
							else if (West == West::Low) return 6303;
							else return 6304;
		}
		BlockState MossyCobblestoneWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace MossyStoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState MossyStoneBrickSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10802;
			else if (Type == Type::Bottom) return 10804;
			else return 10806;
		}
		BlockState MossyStoneBrickSlab();
		enum Type Type(BlockState Block);
	}
	namespace MossyStoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState MossyStoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9830;
					else if (Shape == Shape::InnerLeft) return 9832;
					else if (Shape == Shape::InnerRight) return 9834;
					else if (Shape == Shape::OuterLeft) return 9836;
					else return 9838;
				else
					if (Shape == Shape::Straight) return 9840;
					else if (Shape == Shape::InnerLeft) return 9842;
					else if (Shape == Shape::InnerRight) return 9844;
					else if (Shape == Shape::OuterLeft) return 9846;
					else return 9848;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9850;
					else if (Shape == Shape::InnerLeft) return 9852;
					else if (Shape == Shape::InnerRight) return 9854;
					else if (Shape == Shape::OuterLeft) return 9856;
					else return 9858;
				else
					if (Shape == Shape::Straight) return 9860;
					else if (Shape == Shape::InnerLeft) return 9862;
					else if (Shape == Shape::InnerRight) return 9864;
					else if (Shape == Shape::OuterLeft) return 9866;
					else return 9868;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9870;
					else if (Shape == Shape::InnerLeft) return 9872;
					else if (Shape == Shape::InnerRight) return 9874;
					else if (Shape == Shape::OuterLeft) return 9876;
					else return 9878;
				else
					if (Shape == Shape::Straight) return 9880;
					else if (Shape == Shape::InnerLeft) return 9882;
					else if (Shape == Shape::InnerRight) return 9884;
					else if (Shape == Shape::OuterLeft) return 9886;
					else return 9888;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9890;
					else if (Shape == Shape::InnerLeft) return 9892;
					else if (Shape == Shape::InnerRight) return 9894;
					else if (Shape == Shape::OuterLeft) return 9896;
					else return 9898;
				else
					if (Shape == Shape::Straight) return 9900;
					else if (Shape == Shape::InnerLeft) return 9902;
					else if (Shape == Shape::InnerRight) return 9904;
					else if (Shape == Shape::OuterLeft) return 9906;
					else return 9908;
		}
		BlockState MossyStoneBrickStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState MossyStoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11842;
							else if (West == West::Low) return 11843;
							else return 11844;
						else
							if (West == West::None) return 11848;
							else if (West == West::Low) return 11849;
							else return 11850;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11854;
							else if (West == West::Low) return 11855;
							else return 11856;
						else
							if (West == West::None) return 11860;
							else if (West == West::Low) return 11861;
							else return 11862;
					else
						if (Up)
							if (West == West::None) return 11866;
							else if (West == West::Low) return 11867;
							else return 11868;
						else
							if (West == West::None) return 11872;
							else if (West == West::Low) return 11873;
							else return 11874;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11878;
							else if (West == West::Low) return 11879;
							else return 11880;
						else
							if (West == West::None) return 11884;
							else if (West == West::Low) return 11885;
							else return 11886;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11890;
							else if (West == West::Low) return 11891;
							else return 11892;
						else
							if (West == West::None) return 11896;
							else if (West == West::Low) return 11897;
							else return 11898;
					else
						if (Up)
							if (West == West::None) return 11902;
							else if (West == West::Low) return 11903;
							else return 11904;
						else
							if (West == West::None) return 11908;
							else if (West == West::Low) return 11909;
							else return 11910;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11914;
							else if (West == West::Low) return 11915;
							else return 11916;
						else
							if (West == West::None) return 11920;
							else if (West == West::Low) return 11921;
							else return 11922;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11926;
							else if (West == West::Low) return 11927;
							else return 11928;
						else
							if (West == West::None) return 11932;
							else if (West == West::Low) return 11933;
							else return 11934;
					else
						if (Up)
							if (West == West::None) return 11938;
							else if (West == West::Low) return 11939;
							else return 11940;
						else
							if (West == West::None) return 11944;
							else if (West == West::Low) return 11945;
							else return 11946;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11950;
							else if (West == West::Low) return 11951;
							else return 11952;
						else
							if (West == West::None) return 11956;
							else if (West == West::Low) return 11957;
							else return 11958;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11962;
							else if (West == West::Low) return 11963;
							else return 11964;
						else
							if (West == West::None) return 11968;
							else if (West == West::Low) return 11969;
							else return 11970;
					else
						if (Up)
							if (West == West::None) return 11974;
							else if (West == West::Low) return 11975;
							else return 11976;
						else
							if (West == West::None) return 11980;
							else if (West == West::Low) return 11981;
							else return 11982;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11986;
							else if (West == West::Low) return 11987;
							else return 11988;
						else
							if (West == West::None) return 11992;
							else if (West == West::Low) return 11993;
							else return 11994;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11998;
							else if (West == West::Low) return 11999;
							else return 12000;
						else
							if (West == West::None) return 12004;
							else if (West == West::Low) return 12005;
							else return 12006;
					else
						if (Up)
							if (West == West::None) return 12010;
							else if (West == West::Low) return 12011;
							else return 12012;
						else
							if (West == West::None) return 12016;
							else if (West == West::Low) return 12017;
							else return 12018;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12022;
							else if (West == West::Low) return 12023;
							else return 12024;
						else
							if (West == West::None) return 12028;
							else if (West == West::Low) return 12029;
							else return 12030;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12034;
							else if (West == West::Low) return 12035;
							else return 12036;
						else
							if (West == West::None) return 12040;
							else if (West == West::Low) return 12041;
							else return 12042;
					else
						if (Up)
							if (West == West::None) return 12046;
							else if (West == West::Low) return 12047;
							else return 12048;
						else
							if (West == West::None) return 12052;
							else if (West == West::Low) return 12053;
							else return 12054;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12058;
							else if (West == West::Low) return 12059;
							else return 12060;
						else
							if (West == West::None) return 12064;
							else if (West == West::Low) return 12065;
							else return 12066;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12070;
							else if (West == West::Low) return 12071;
							else return 12072;
						else
							if (West == West::None) return 12076;
							else if (West == West::Low) return 12077;
							else return 12078;
					else
						if (Up)
							if (West == West::None) return 12082;
							else if (West == West::Low) return 12083;
							else return 12084;
						else
							if (West == West::None) return 12088;
							else if (West == West::Low) return 12089;
							else return 12090;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12094;
							else if (West == West::Low) return 12095;
							else return 12096;
						else
							if (West == West::None) return 12100;
							else if (West == West::Low) return 12101;
							else return 12102;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12106;
							else if (West == West::Low) return 12107;
							else return 12108;
						else
							if (West == West::None) return 12112;
							else if (West == West::Low) return 12113;
							else return 12114;
					else
						if (Up)
							if (West == West::None) return 12118;
							else if (West == West::Low) return 12119;
							else return 12120;
						else
							if (West == West::None) return 12124;
							else if (West == West::Low) return 12125;
							else return 12126;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12130;
							else if (West == West::Low) return 12131;
							else return 12132;
						else
							if (West == West::None) return 12136;
							else if (West == West::Low) return 12137;
							else return 12138;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12142;
							else if (West == West::Low) return 12143;
							else return 12144;
						else
							if (West == West::None) return 12148;
							else if (West == West::Low) return 12149;
							else return 12150;
					else
						if (Up)
							if (West == West::None) return 12154;
							else if (West == West::Low) return 12155;
							else return 12156;
						else
							if (West == West::None) return 12160;
							else if (West == West::Low) return 12161;
							else return 12162;
		}
		BlockState MossyStoneBrickWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace MossyStoneBricks
	{
		constexpr BlockState MossyStoneBricks()
		{
			return 4496;
		}
	}
	namespace MovingPiston
	{
		enum class Type
		{
			Normal,
			Sticky
		};
		constexpr BlockState MovingPiston(const eBlockFace Facing, const enum Type Type)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Type == Type::Normal) return 1400;
				else return 1401;
			else if (Facing == eBlockFace::BLOCK_FACE_XP)
				if (Type == Type::Normal) return 1402;
				else return 1403;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Type == Type::Normal) return 1404;
				else return 1405;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Type == Type::Normal) return 1406;
				else return 1407;
			else if (Facing == eBlockFace::BLOCK_FACE_YP)
				if (Type == Type::Normal) return 1408;
				else return 1409;
			else
				if (Type == Type::Normal) return 1410;
				else return 1411;
		}
		BlockState MovingPiston();
		eBlockFace Facing(BlockState Block);
		enum Type Type(BlockState Block);
	}
	namespace MushroomStem
	{
		constexpr BlockState MushroomStem(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West)
		{
			if (Down)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 4633;
								else return 4634;
							else
								if (West) return 4635;
								else return 4636;
						else
							if (Up)
								if (West) return 4637;
								else return 4638;
							else
								if (West) return 4639;
								else return 4640;
					else
						if (South)
							if (Up)
								if (West) return 4641;
								else return 4642;
							else
								if (West) return 4643;
								else return 4644;
						else
							if (Up)
								if (West) return 4645;
								else return 4646;
							else
								if (West) return 4647;
								else return 4648;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 4649;
								else return 4650;
							else
								if (West) return 4651;
								else return 4652;
						else
							if (Up)
								if (West) return 4653;
								else return 4654;
							else
								if (West) return 4655;
								else return 4656;
					else
						if (South)
							if (Up)
								if (West) return 4657;
								else return 4658;
							else
								if (West) return 4659;
								else return 4660;
						else
							if (Up)
								if (West) return 4661;
								else return 4662;
							else
								if (West) return 4663;
								else return 4664;
			else
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 4665;
								else return 4666;
							else
								if (West) return 4667;
								else return 4668;
						else
							if (Up)
								if (West) return 4669;
								else return 4670;
							else
								if (West) return 4671;
								else return 4672;
					else
						if (South)
							if (Up)
								if (West) return 4673;
								else return 4674;
							else
								if (West) return 4675;
								else return 4676;
						else
							if (Up)
								if (West) return 4677;
								else return 4678;
							else
								if (West) return 4679;
								else return 4680;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 4681;
								else return 4682;
							else
								if (West) return 4683;
								else return 4684;
						else
							if (Up)
								if (West) return 4685;
								else return 4686;
							else
								if (West) return 4687;
								else return 4688;
					else
						if (South)
							if (Up)
								if (West) return 4689;
								else return 4690;
							else
								if (West) return 4691;
								else return 4692;
						else
							if (Up)
								if (West) return 4693;
								else return 4694;
							else
								if (West) return 4695;
								else return 4696;
		}
		BlockState MushroomStem();
		bool Down(BlockState Block);
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool Up(BlockState Block);
		bool West(BlockState Block);
	}
	namespace Mycelium
	{
		constexpr BlockState Mycelium(const bool Snowy)
		{
			if (Snowy) return 5012;
			else return 5013;
		}
		BlockState Mycelium();
		bool Snowy(BlockState Block);
	}
	namespace NetherBrickFence
	{
		constexpr BlockState NetherBrickFence(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 5018;
						else return 5019;
					else
						if (West) return 5022;
						else return 5023;
				else
					if (South)
						if (West) return 5026;
						else return 5027;
					else
						if (West) return 5030;
						else return 5031;
			else
				if (North)
					if (South)
						if (West) return 5034;
						else return 5035;
					else
						if (West) return 5038;
						else return 5039;
				else
					if (South)
						if (West) return 5042;
						else return 5043;
					else
						if (West) return 5046;
						else return 5047;
		}
		BlockState NetherBrickFence();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace NetherBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState NetherBrickSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8385;
			else if (Type == Type::Bottom) return 8387;
			else return 8389;
		}
		BlockState NetherBrickSlab();
		enum Type Type(BlockState Block);
	}
	namespace NetherBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState NetherBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5049;
					else if (Shape == Shape::InnerLeft) return 5051;
					else if (Shape == Shape::InnerRight) return 5053;
					else if (Shape == Shape::OuterLeft) return 5055;
					else return 5057;
				else
					if (Shape == Shape::Straight) return 5059;
					else if (Shape == Shape::InnerLeft) return 5061;
					else if (Shape == Shape::InnerRight) return 5063;
					else if (Shape == Shape::OuterLeft) return 5065;
					else return 5067;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5069;
					else if (Shape == Shape::InnerLeft) return 5071;
					else if (Shape == Shape::InnerRight) return 5073;
					else if (Shape == Shape::OuterLeft) return 5075;
					else return 5077;
				else
					if (Shape == Shape::Straight) return 5079;
					else if (Shape == Shape::InnerLeft) return 5081;
					else if (Shape == Shape::InnerRight) return 5083;
					else if (Shape == Shape::OuterLeft) return 5085;
					else return 5087;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5089;
					else if (Shape == Shape::InnerLeft) return 5091;
					else if (Shape == Shape::InnerRight) return 5093;
					else if (Shape == Shape::OuterLeft) return 5095;
					else return 5097;
				else
					if (Shape == Shape::Straight) return 5099;
					else if (Shape == Shape::InnerLeft) return 5101;
					else if (Shape == Shape::InnerRight) return 5103;
					else if (Shape == Shape::OuterLeft) return 5105;
					else return 5107;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5109;
					else if (Shape == Shape::InnerLeft) return 5111;
					else if (Shape == Shape::InnerRight) return 5113;
					else if (Shape == Shape::OuterLeft) return 5115;
					else return 5117;
				else
					if (Shape == Shape::Straight) return 5119;
					else if (Shape == Shape::InnerLeft) return 5121;
					else if (Shape == Shape::InnerRight) return 5123;
					else if (Shape == Shape::OuterLeft) return 5125;
					else return 5127;
		}
		BlockState NetherBrickStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState NetherBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12814;
							else if (West == West::Low) return 12815;
							else return 12816;
						else
							if (West == West::None) return 12820;
							else if (West == West::Low) return 12821;
							else return 12822;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12826;
							else if (West == West::Low) return 12827;
							else return 12828;
						else
							if (West == West::None) return 12832;
							else if (West == West::Low) return 12833;
							else return 12834;
					else
						if (Up)
							if (West == West::None) return 12838;
							else if (West == West::Low) return 12839;
							else return 12840;
						else
							if (West == West::None) return 12844;
							else if (West == West::Low) return 12845;
							else return 12846;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12850;
							else if (West == West::Low) return 12851;
							else return 12852;
						else
							if (West == West::None) return 12856;
							else if (West == West::Low) return 12857;
							else return 12858;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12862;
							else if (West == West::Low) return 12863;
							else return 12864;
						else
							if (West == West::None) return 12868;
							else if (West == West::Low) return 12869;
							else return 12870;
					else
						if (Up)
							if (West == West::None) return 12874;
							else if (West == West::Low) return 12875;
							else return 12876;
						else
							if (West == West::None) return 12880;
							else if (West == West::Low) return 12881;
							else return 12882;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12886;
							else if (West == West::Low) return 12887;
							else return 12888;
						else
							if (West == West::None) return 12892;
							else if (West == West::Low) return 12893;
							else return 12894;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12898;
							else if (West == West::Low) return 12899;
							else return 12900;
						else
							if (West == West::None) return 12904;
							else if (West == West::Low) return 12905;
							else return 12906;
					else
						if (Up)
							if (West == West::None) return 12910;
							else if (West == West::Low) return 12911;
							else return 12912;
						else
							if (West == West::None) return 12916;
							else if (West == West::Low) return 12917;
							else return 12918;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12922;
							else if (West == West::Low) return 12923;
							else return 12924;
						else
							if (West == West::None) return 12928;
							else if (West == West::Low) return 12929;
							else return 12930;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12934;
							else if (West == West::Low) return 12935;
							else return 12936;
						else
							if (West == West::None) return 12940;
							else if (West == West::Low) return 12941;
							else return 12942;
					else
						if (Up)
							if (West == West::None) return 12946;
							else if (West == West::Low) return 12947;
							else return 12948;
						else
							if (West == West::None) return 12952;
							else if (West == West::Low) return 12953;
							else return 12954;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12958;
							else if (West == West::Low) return 12959;
							else return 12960;
						else
							if (West == West::None) return 12964;
							else if (West == West::Low) return 12965;
							else return 12966;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12970;
							else if (West == West::Low) return 12971;
							else return 12972;
						else
							if (West == West::None) return 12976;
							else if (West == West::Low) return 12977;
							else return 12978;
					else
						if (Up)
							if (West == West::None) return 12982;
							else if (West == West::Low) return 12983;
							else return 12984;
						else
							if (West == West::None) return 12988;
							else if (West == West::Low) return 12989;
							else return 12990;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12994;
							else if (West == West::Low) return 12995;
							else return 12996;
						else
							if (West == West::None) return 13000;
							else if (West == West::Low) return 13001;
							else return 13002;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13006;
							else if (West == West::Low) return 13007;
							else return 13008;
						else
							if (West == West::None) return 13012;
							else if (West == West::Low) return 13013;
							else return 13014;
					else
						if (Up)
							if (West == West::None) return 13018;
							else if (West == West::Low) return 13019;
							else return 13020;
						else
							if (West == West::None) return 13024;
							else if (West == West::Low) return 13025;
							else return 13026;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13030;
							else if (West == West::Low) return 13031;
							else return 13032;
						else
							if (West == West::None) return 13036;
							else if (West == West::Low) return 13037;
							else return 13038;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13042;
							else if (West == West::Low) return 13043;
							else return 13044;
						else
							if (West == West::None) return 13048;
							else if (West == West::Low) return 13049;
							else return 13050;
					else
						if (Up)
							if (West == West::None) return 13054;
							else if (West == West::Low) return 13055;
							else return 13056;
						else
							if (West == West::None) return 13060;
							else if (West == West::Low) return 13061;
							else return 13062;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13066;
							else if (West == West::Low) return 13067;
							else return 13068;
						else
							if (West == West::None) return 13072;
							else if (West == West::Low) return 13073;
							else return 13074;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13078;
							else if (West == West::Low) return 13079;
							else return 13080;
						else
							if (West == West::None) return 13084;
							else if (West == West::Low) return 13085;
							else return 13086;
					else
						if (Up)
							if (West == West::None) return 13090;
							else if (West == West::Low) return 13091;
							else return 13092;
						else
							if (West == West::None) return 13096;
							else if (West == West::Low) return 13097;
							else return 13098;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13102;
							else if (West == West::Low) return 13103;
							else return 13104;
						else
							if (West == West::None) return 13108;
							else if (West == West::Low) return 13109;
							else return 13110;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13114;
							else if (West == West::Low) return 13115;
							else return 13116;
						else
							if (West == West::None) return 13120;
							else if (West == West::Low) return 13121;
							else return 13122;
					else
						if (Up)
							if (West == West::None) return 13126;
							else if (West == West::Low) return 13127;
							else return 13128;
						else
							if (West == West::None) return 13132;
							else if (West == West::Low) return 13133;
							else return 13134;
		}
		BlockState NetherBrickWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace NetherBricks
	{
		constexpr BlockState NetherBricks()
		{
			return 5015;
		}
	}
	namespace NetherGoldOre
	{
		constexpr BlockState NetherGoldOre()
		{
			return 72;
		}
	}
	namespace NetherPortal
	{
		enum class Axis
		{
			X,
			Z
		};
		constexpr BlockState NetherPortal(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 4014;
			else return 4015;
		}
		BlockState NetherPortal();
		enum Axis Axis(BlockState Block);
	}
	namespace NetherQuartzOre
	{
		constexpr BlockState NetherQuartzOre()
		{
			return 6727;
		}
	}
	namespace NetherSprouts
	{
		constexpr BlockState NetherSprouts()
		{
			return 14974;
		}
	}
	namespace NetherWart
	{
		constexpr BlockState NetherWart(const unsigned char Age)
		{
			if (Age == 0) return 5128;
			else if (Age == 1) return 5129;
			else if (Age == 2) return 5130;
			else return 5131;
		}
		BlockState NetherWart();
		unsigned char Age(BlockState Block);
	}
	namespace NetherWartBlock
	{
		constexpr BlockState NetherWartBlock()
		{
			return 9254;
		}
	}
	namespace NetheriteBlock
	{
		constexpr BlockState NetheriteBlock()
		{
			return 15826;
		}
	}
	namespace Netherrack
	{
		constexpr BlockState 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 BlockState NoteBlock(const enum Instrument Instrument, const unsigned char Note, const bool Powered)
		{
			if (Instrument == Instrument::Harp)
				if (Note == 0)
					if (Powered) return 249;
					else return 250;
				else if (Note == 1)
					if (Powered) return 251;
					else return 252;
				else if (Note == 2)
					if (Powered) return 253;
					else return 254;
				else if (Note == 3)
					if (Powered) return 255;
					else return 256;
				else if (Note == 4)
					if (Powered) return 257;
					else return 258;
				else if (Note == 5)
					if (Powered) return 259;
					else return 260;
				else if (Note == 6)
					if (Powered) return 261;
					else return 262;
				else if (Note == 7)
					if (Powered) return 263;
					else return 264;
				else if (Note == 8)
					if (Powered) return 265;
					else return 266;
				else if (Note == 9)
					if (Powered) return 267;
					else return 268;
				else if (Note == 10)
					if (Powered) return 269;
					else return 270;
				else if (Note == 11)
					if (Powered) return 271;
					else return 272;
				else if (Note == 12)
					if (Powered) return 273;
					else return 274;
				else if (Note == 13)
					if (Powered) return 275;
					else return 276;
				else if (Note == 14)
					if (Powered) return 277;
					else return 278;
				else if (Note == 15)
					if (Powered) return 279;
					else return 280;
				else if (Note == 16)
					if (Powered) return 281;
					else return 282;
				else if (Note == 17)
					if (Powered) return 283;
					else return 284;
				else if (Note == 18)
					if (Powered) return 285;
					else return 286;
				else if (Note == 19)
					if (Powered) return 287;
					else return 288;
				else if (Note == 20)
					if (Powered) return 289;
					else return 290;
				else if (Note == 21)
					if (Powered) return 291;
					else return 292;
				else if (Note == 22)
					if (Powered) return 293;
					else return 294;
				else if (Note == 23)
					if (Powered) return 295;
					else return 296;
				else
					if (Powered) return 297;
					else return 298;
			else if (Instrument == Instrument::Basedrum)
				if (Note == 0)
					if (Powered) return 299;
					else return 300;
				else if (Note == 1)
					if (Powered) return 301;
					else return 302;
				else if (Note == 2)
					if (Powered) return 303;
					else return 304;
				else if (Note == 3)
					if (Powered) return 305;
					else return 306;
				else if (Note == 4)
					if (Powered) return 307;
					else return 308;
				else if (Note == 5)
					if (Powered) return 309;
					else return 310;
				else if (Note == 6)
					if (Powered) return 311;
					else return 312;
				else if (Note == 7)
					if (Powered) return 313;
					else return 314;
				else if (Note == 8)
					if (Powered) return 315;
					else return 316;
				else if (Note == 9)
					if (Powered) return 317;
					else return 318;
				else if (Note == 10)
					if (Powered) return 319;
					else return 320;
				else if (Note == 11)
					if (Powered) return 321;
					else return 322;
				else if (Note == 12)
					if (Powered) return 323;
					else return 324;
				else if (Note == 13)
					if (Powered) return 325;
					else return 326;
				else if (Note == 14)
					if (Powered) return 327;
					else return 328;
				else if (Note == 15)
					if (Powered) return 329;
					else return 330;
				else if (Note == 16)
					if (Powered) return 331;
					else return 332;
				else if (Note == 17)
					if (Powered) return 333;
					else return 334;
				else if (Note == 18)
					if (Powered) return 335;
					else return 336;
				else if (Note == 19)
					if (Powered) return 337;
					else return 338;
				else if (Note == 20)
					if (Powered) return 339;
					else return 340;
				else if (Note == 21)
					if (Powered) return 341;
					else return 342;
				else if (Note == 22)
					if (Powered) return 343;
					else return 344;
				else if (Note == 23)
					if (Powered) return 345;
					else return 346;
				else
					if (Powered) return 347;
					else return 348;
			else if (Instrument == Instrument::Snare)
				if (Note == 0)
					if (Powered) return 349;
					else return 350;
				else if (Note == 1)
					if (Powered) return 351;
					else return 352;
				else if (Note == 2)
					if (Powered) return 353;
					else return 354;
				else if (Note == 3)
					if (Powered) return 355;
					else return 356;
				else if (Note == 4)
					if (Powered) return 357;
					else return 358;
				else if (Note == 5)
					if (Powered) return 359;
					else return 360;
				else if (Note == 6)
					if (Powered) return 361;
					else return 362;
				else if (Note == 7)
					if (Powered) return 363;
					else return 364;
				else if (Note == 8)
					if (Powered) return 365;
					else return 366;
				else if (Note == 9)
					if (Powered) return 367;
					else return 368;
				else if (Note == 10)
					if (Powered) return 369;
					else return 370;
				else if (Note == 11)
					if (Powered) return 371;
					else return 372;
				else if (Note == 12)
					if (Powered) return 373;
					else return 374;
				else if (Note == 13)
					if (Powered) return 375;
					else return 376;
				else if (Note == 14)
					if (Powered) return 377;
					else return 378;
				else if (Note == 15)
					if (Powered) return 379;
					else return 380;
				else if (Note == 16)
					if (Powered) return 381;
					else return 382;
				else if (Note == 17)
					if (Powered) return 383;
					else return 384;
				else if (Note == 18)
					if (Powered) return 385;
					else return 386;
				else if (Note == 19)
					if (Powered) return 387;
					else return 388;
				else if (Note == 20)
					if (Powered) return 389;
					else return 390;
				else if (Note == 21)
					if (Powered) return 391;
					else return 392;
				else if (Note == 22)
					if (Powered) return 393;
					else return 394;
				else if (Note == 23)
					if (Powered) return 395;
					else return 396;
				else
					if (Powered) return 397;
					else return 398;
			else if (Instrument == Instrument::Hat)
				if (Note == 0)
					if (Powered) return 399;
					else return 400;
				else if (Note == 1)
					if (Powered) return 401;
					else return 402;
				else if (Note == 2)
					if (Powered) return 403;
					else return 404;
				else if (Note == 3)
					if (Powered) return 405;
					else return 406;
				else if (Note == 4)
					if (Powered) return 407;
					else return 408;
				else if (Note == 5)
					if (Powered) return 409;
					else return 410;
				else if (Note == 6)
					if (Powered) return 411;
					else return 412;
				else if (Note == 7)
					if (Powered) return 413;
					else return 414;
				else if (Note == 8)
					if (Powered) return 415;
					else return 416;
				else if (Note == 9)
					if (Powered) return 417;
					else return 418;
				else if (Note == 10)
					if (Powered) return 419;
					else return 420;
				else if (Note == 11)
					if (Powered) return 421;
					else return 422;
				else if (Note == 12)
					if (Powered) return 423;
					else return 424;
				else if (Note == 13)
					if (Powered) return 425;
					else return 426;
				else if (Note == 14)
					if (Powered) return 427;
					else return 428;
				else if (Note == 15)
					if (Powered) return 429;
					else return 430;
				else if (Note == 16)
					if (Powered) return 431;
					else return 432;
				else if (Note == 17)
					if (Powered) return 433;
					else return 434;
				else if (Note == 18)
					if (Powered) return 435;
					else return 436;
				else if (Note == 19)
					if (Powered) return 437;
					else return 438;
				else if (Note == 20)
					if (Powered) return 439;
					else return 440;
				else if (Note == 21)
					if (Powered) return 441;
					else return 442;
				else if (Note == 22)
					if (Powered) return 443;
					else return 444;
				else if (Note == 23)
					if (Powered) return 445;
					else return 446;
				else
					if (Powered) return 447;
					else return 448;
			else if (Instrument == Instrument::Bass)
				if (Note == 0)
					if (Powered) return 449;
					else return 450;
				else if (Note == 1)
					if (Powered) return 451;
					else return 452;
				else if (Note == 2)
					if (Powered) return 453;
					else return 454;
				else if (Note == 3)
					if (Powered) return 455;
					else return 456;
				else if (Note == 4)
					if (Powered) return 457;
					else return 458;
				else if (Note == 5)
					if (Powered) return 459;
					else return 460;
				else if (Note == 6)
					if (Powered) return 461;
					else return 462;
				else if (Note == 7)
					if (Powered) return 463;
					else return 464;
				else if (Note == 8)
					if (Powered) return 465;
					else return 466;
				else if (Note == 9)
					if (Powered) return 467;
					else return 468;
				else if (Note == 10)
					if (Powered) return 469;
					else return 470;
				else if (Note == 11)
					if (Powered) return 471;
					else return 472;
				else if (Note == 12)
					if (Powered) return 473;
					else return 474;
				else if (Note == 13)
					if (Powered) return 475;
					else return 476;
				else if (Note == 14)
					if (Powered) return 477;
					else return 478;
				else if (Note == 15)
					if (Powered) return 479;
					else return 480;
				else if (Note == 16)
					if (Powered) return 481;
					else return 482;
				else if (Note == 17)
					if (Powered) return 483;
					else return 484;
				else if (Note == 18)
					if (Powered) return 485;
					else return 486;
				else if (Note == 19)
					if (Powered) return 487;
					else return 488;
				else if (Note == 20)
					if (Powered) return 489;
					else return 490;
				else if (Note == 21)
					if (Powered) return 491;
					else return 492;
				else if (Note == 22)
					if (Powered) return 493;
					else return 494;
				else if (Note == 23)
					if (Powered) return 495;
					else return 496;
				else
					if (Powered) return 497;
					else return 498;
			else if (Instrument == Instrument::Flute)
				if (Note == 0)
					if (Powered) return 499;
					else return 500;
				else if (Note == 1)
					if (Powered) return 501;
					else return 502;
				else if (Note == 2)
					if (Powered) return 503;
					else return 504;
				else if (Note == 3)
					if (Powered) return 505;
					else return 506;
				else if (Note == 4)
					if (Powered) return 507;
					else return 508;
				else if (Note == 5)
					if (Powered) return 509;
					else return 510;
				else if (Note == 6)
					if (Powered) return 511;
					else return 512;
				else if (Note == 7)
					if (Powered) return 513;
					else return 514;
				else if (Note == 8)
					if (Powered) return 515;
					else return 516;
				else if (Note == 9)
					if (Powered) return 517;
					else return 518;
				else if (Note == 10)
					if (Powered) return 519;
					else return 520;
				else if (Note == 11)
					if (Powered) return 521;
					else return 522;
				else if (Note == 12)
					if (Powered) return 523;
					else return 524;
				else if (Note == 13)
					if (Powered) return 525;
					else return 526;
				else if (Note == 14)
					if (Powered) return 527;
					else return 528;
				else if (Note == 15)
					if (Powered) return 529;
					else return 530;
				else if (Note == 16)
					if (Powered) return 531;
					else return 532;
				else if (Note == 17)
					if (Powered) return 533;
					else return 534;
				else if (Note == 18)
					if (Powered) return 535;
					else return 536;
				else if (Note == 19)
					if (Powered) return 537;
					else return 538;
				else if (Note == 20)
					if (Powered) return 539;
					else return 540;
				else if (Note == 21)
					if (Powered) return 541;
					else return 542;
				else if (Note == 22)
					if (Powered) return 543;
					else return 544;
				else if (Note == 23)
					if (Powered) return 545;
					else return 546;
				else
					if (Powered) return 547;
					else return 548;
			else if (Instrument == Instrument::Bell)
				if (Note == 0)
					if (Powered) return 549;
					else return 550;
				else if (Note == 1)
					if (Powered) return 551;
					else return 552;
				else if (Note == 2)
					if (Powered) return 553;
					else return 554;
				else if (Note == 3)
					if (Powered) return 555;
					else return 556;
				else if (Note == 4)
					if (Powered) return 557;
					else return 558;
				else if (Note == 5)
					if (Powered) return 559;
					else return 560;
				else if (Note == 6)
					if (Powered) return 561;
					else return 562;
				else if (Note == 7)
					if (Powered) return 563;
					else return 564;
				else if (Note == 8)
					if (Powered) return 565;
					else return 566;
				else if (Note == 9)
					if (Powered) return 567;
					else return 568;
				else if (Note == 10)
					if (Powered) return 569;
					else return 570;
				else if (Note == 11)
					if (Powered) return 571;
					else return 572;
				else if (Note == 12)
					if (Powered) return 573;
					else return 574;
				else if (Note == 13)
					if (Powered) return 575;
					else return 576;
				else if (Note == 14)
					if (Powered) return 577;
					else return 578;
				else if (Note == 15)
					if (Powered) return 579;
					else return 580;
				else if (Note == 16)
					if (Powered) return 581;
					else return 582;
				else if (Note == 17)
					if (Powered) return 583;
					else return 584;
				else if (Note == 18)
					if (Powered) return 585;
					else return 586;
				else if (Note == 19)
					if (Powered) return 587;
					else return 588;
				else if (Note == 20)
					if (Powered) return 589;
					else return 590;
				else if (Note == 21)
					if (Powered) return 591;
					else return 592;
				else if (Note == 22)
					if (Powered) return 593;
					else return 594;
				else if (Note == 23)
					if (Powered) return 595;
					else return 596;
				else
					if (Powered) return 597;
					else return 598;
			else if (Instrument == Instrument::Guitar)
				if (Note == 0)
					if (Powered) return 599;
					else return 600;
				else if (Note == 1)
					if (Powered) return 601;
					else return 602;
				else if (Note == 2)
					if (Powered) return 603;
					else return 604;
				else if (Note == 3)
					if (Powered) return 605;
					else return 606;
				else if (Note == 4)
					if (Powered) return 607;
					else return 608;
				else if (Note == 5)
					if (Powered) return 609;
					else return 610;
				else if (Note == 6)
					if (Powered) return 611;
					else return 612;
				else if (Note == 7)
					if (Powered) return 613;
					else return 614;
				else if (Note == 8)
					if (Powered) return 615;
					else return 616;
				else if (Note == 9)
					if (Powered) return 617;
					else return 618;
				else if (Note == 10)
					if (Powered) return 619;
					else return 620;
				else if (Note == 11)
					if (Powered) return 621;
					else return 622;
				else if (Note == 12)
					if (Powered) return 623;
					else return 624;
				else if (Note == 13)
					if (Powered) return 625;
					else return 626;
				else if (Note == 14)
					if (Powered) return 627;
					else return 628;
				else if (Note == 15)
					if (Powered) return 629;
					else return 630;
				else if (Note == 16)
					if (Powered) return 631;
					else return 632;
				else if (Note == 17)
					if (Powered) return 633;
					else return 634;
				else if (Note == 18)
					if (Powered) return 635;
					else return 636;
				else if (Note == 19)
					if (Powered) return 637;
					else return 638;
				else if (Note == 20)
					if (Powered) return 639;
					else return 640;
				else if (Note == 21)
					if (Powered) return 641;
					else return 642;
				else if (Note == 22)
					if (Powered) return 643;
					else return 644;
				else if (Note == 23)
					if (Powered) return 645;
					else return 646;
				else
					if (Powered) return 647;
					else return 648;
			else if (Instrument == Instrument::Chime)
				if (Note == 0)
					if (Powered) return 649;
					else return 650;
				else if (Note == 1)
					if (Powered) return 651;
					else return 652;
				else if (Note == 2)
					if (Powered) return 653;
					else return 654;
				else if (Note == 3)
					if (Powered) return 655;
					else return 656;
				else if (Note == 4)
					if (Powered) return 657;
					else return 658;
				else if (Note == 5)
					if (Powered) return 659;
					else return 660;
				else if (Note == 6)
					if (Powered) return 661;
					else return 662;
				else if (Note == 7)
					if (Powered) return 663;
					else return 664;
				else if (Note == 8)
					if (Powered) return 665;
					else return 666;
				else if (Note == 9)
					if (Powered) return 667;
					else return 668;
				else if (Note == 10)
					if (Powered) return 669;
					else return 670;
				else if (Note == 11)
					if (Powered) return 671;
					else return 672;
				else if (Note == 12)
					if (Powered) return 673;
					else return 674;
				else if (Note == 13)
					if (Powered) return 675;
					else return 676;
				else if (Note == 14)
					if (Powered) return 677;
					else return 678;
				else if (Note == 15)
					if (Powered) return 679;
					else return 680;
				else if (Note == 16)
					if (Powered) return 681;
					else return 682;
				else if (Note == 17)
					if (Powered) return 683;
					else return 684;
				else if (Note == 18)
					if (Powered) return 685;
					else return 686;
				else if (Note == 19)
					if (Powered) return 687;
					else return 688;
				else if (Note == 20)
					if (Powered) return 689;
					else return 690;
				else if (Note == 21)
					if (Powered) return 691;
					else return 692;
				else if (Note == 22)
					if (Powered) return 693;
					else return 694;
				else if (Note == 23)
					if (Powered) return 695;
					else return 696;
				else
					if (Powered) return 697;
					else return 698;
			else if (Instrument == Instrument::Xylophone)
				if (Note == 0)
					if (Powered) return 699;
					else return 700;
				else if (Note == 1)
					if (Powered) return 701;
					else return 702;
				else if (Note == 2)
					if (Powered) return 703;
					else return 704;
				else if (Note == 3)
					if (Powered) return 705;
					else return 706;
				else if (Note == 4)
					if (Powered) return 707;
					else return 708;
				else if (Note == 5)
					if (Powered) return 709;
					else return 710;
				else if (Note == 6)
					if (Powered) return 711;
					else return 712;
				else if (Note == 7)
					if (Powered) return 713;
					else return 714;
				else if (Note == 8)
					if (Powered) return 715;
					else return 716;
				else if (Note == 9)
					if (Powered) return 717;
					else return 718;
				else if (Note == 10)
					if (Powered) return 719;
					else return 720;
				else if (Note == 11)
					if (Powered) return 721;
					else return 722;
				else if (Note == 12)
					if (Powered) return 723;
					else return 724;
				else if (Note == 13)
					if (Powered) return 725;
					else return 726;
				else if (Note == 14)
					if (Powered) return 727;
					else return 728;
				else if (Note == 15)
					if (Powered) return 729;
					else return 730;
				else if (Note == 16)
					if (Powered) return 731;
					else return 732;
				else if (Note == 17)
					if (Powered) return 733;
					else return 734;
				else if (Note == 18)
					if (Powered) return 735;
					else return 736;
				else if (Note == 19)
					if (Powered) return 737;
					else return 738;
				else if (Note == 20)
					if (Powered) return 739;
					else return 740;
				else if (Note == 21)
					if (Powered) return 741;
					else return 742;
				else if (Note == 22)
					if (Powered) return 743;
					else return 744;
				else if (Note == 23)
					if (Powered) return 745;
					else return 746;
				else
					if (Powered) return 747;
					else return 748;
			else if (Instrument == Instrument::IronXylophone)
				if (Note == 0)
					if (Powered) return 749;
					else return 750;
				else if (Note == 1)
					if (Powered) return 751;
					else return 752;
				else if (Note == 2)
					if (Powered) return 753;
					else return 754;
				else if (Note == 3)
					if (Powered) return 755;
					else return 756;
				else if (Note == 4)
					if (Powered) return 757;
					else return 758;
				else if (Note == 5)
					if (Powered) return 759;
					else return 760;
				else if (Note == 6)
					if (Powered) return 761;
					else return 762;
				else if (Note == 7)
					if (Powered) return 763;
					else return 764;
				else if (Note == 8)
					if (Powered) return 765;
					else return 766;
				else if (Note == 9)
					if (Powered) return 767;
					else return 768;
				else if (Note == 10)
					if (Powered) return 769;
					else return 770;
				else if (Note == 11)
					if (Powered) return 771;
					else return 772;
				else if (Note == 12)
					if (Powered) return 773;
					else return 774;
				else if (Note == 13)
					if (Powered) return 775;
					else return 776;
				else if (Note == 14)
					if (Powered) return 777;
					else return 778;
				else if (Note == 15)
					if (Powered) return 779;
					else return 780;
				else if (Note == 16)
					if (Powered) return 781;
					else return 782;
				else if (Note == 17)
					if (Powered) return 783;
					else return 784;
				else if (Note == 18)
					if (Powered) return 785;
					else return 786;
				else if (Note == 19)
					if (Powered) return 787;
					else return 788;
				else if (Note == 20)
					if (Powered) return 789;
					else return 790;
				else if (Note == 21)
					if (Powered) return 791;
					else return 792;
				else if (Note == 22)
					if (Powered) return 793;
					else return 794;
				else if (Note == 23)
					if (Powered) return 795;
					else return 796;
				else
					if (Powered) return 797;
					else return 798;
			else if (Instrument == Instrument::CowBell)
				if (Note == 0)
					if (Powered) return 799;
					else return 800;
				else if (Note == 1)
					if (Powered) return 801;
					else return 802;
				else if (Note == 2)
					if (Powered) return 803;
					else return 804;
				else if (Note == 3)
					if (Powered) return 805;
					else return 806;
				else if (Note == 4)
					if (Powered) return 807;
					else return 808;
				else if (Note == 5)
					if (Powered) return 809;
					else return 810;
				else if (Note == 6)
					if (Powered) return 811;
					else return 812;
				else if (Note == 7)
					if (Powered) return 813;
					else return 814;
				else if (Note == 8)
					if (Powered) return 815;
					else return 816;
				else if (Note == 9)
					if (Powered) return 817;
					else return 818;
				else if (Note == 10)
					if (Powered) return 819;
					else return 820;
				else if (Note == 11)
					if (Powered) return 821;
					else return 822;
				else if (Note == 12)
					if (Powered) return 823;
					else return 824;
				else if (Note == 13)
					if (Powered) return 825;
					else return 826;
				else if (Note == 14)
					if (Powered) return 827;
					else return 828;
				else if (Note == 15)
					if (Powered) return 829;
					else return 830;
				else if (Note == 16)
					if (Powered) return 831;
					else return 832;
				else if (Note == 17)
					if (Powered) return 833;
					else return 834;
				else if (Note == 18)
					if (Powered) return 835;
					else return 836;
				else if (Note == 19)
					if (Powered) return 837;
					else return 838;
				else if (Note == 20)
					if (Powered) return 839;
					else return 840;
				else if (Note == 21)
					if (Powered) return 841;
					else return 842;
				else if (Note == 22)
					if (Powered) return 843;
					else return 844;
				else if (Note == 23)
					if (Powered) return 845;
					else return 846;
				else
					if (Powered) return 847;
					else return 848;
			else if (Instrument == Instrument::Didgeridoo)
				if (Note == 0)
					if (Powered) return 849;
					else return 850;
				else if (Note == 1)
					if (Powered) return 851;
					else return 852;
				else if (Note == 2)
					if (Powered) return 853;
					else return 854;
				else if (Note == 3)
					if (Powered) return 855;
					else return 856;
				else if (Note == 4)
					if (Powered) return 857;
					else return 858;
				else if (Note == 5)
					if (Powered) return 859;
					else return 860;
				else if (Note == 6)
					if (Powered) return 861;
					else return 862;
				else if (Note == 7)
					if (Powered) return 863;
					else return 864;
				else if (Note == 8)
					if (Powered) return 865;
					else return 866;
				else if (Note == 9)
					if (Powered) return 867;
					else return 868;
				else if (Note == 10)
					if (Powered) return 869;
					else return 870;
				else if (Note == 11)
					if (Powered) return 871;
					else return 872;
				else if (Note == 12)
					if (Powered) return 873;
					else return 874;
				else if (Note == 13)
					if (Powered) return 875;
					else return 876;
				else if (Note == 14)
					if (Powered) return 877;
					else return 878;
				else if (Note == 15)
					if (Powered) return 879;
					else return 880;
				else if (Note == 16)
					if (Powered) return 881;
					else return 882;
				else if (Note == 17)
					if (Powered) return 883;
					else return 884;
				else if (Note == 18)
					if (Powered) return 885;
					else return 886;
				else if (Note == 19)
					if (Powered) return 887;
					else return 888;
				else if (Note == 20)
					if (Powered) return 889;
					else return 890;
				else if (Note == 21)
					if (Powered) return 891;
					else return 892;
				else if (Note == 22)
					if (Powered) return 893;
					else return 894;
				else if (Note == 23)
					if (Powered) return 895;
					else return 896;
				else
					if (Powered) return 897;
					else return 898;
			else if (Instrument == Instrument::Bit)
				if (Note == 0)
					if (Powered) return 899;
					else return 900;
				else if (Note == 1)
					if (Powered) return 901;
					else return 902;
				else if (Note == 2)
					if (Powered) return 903;
					else return 904;
				else if (Note == 3)
					if (Powered) return 905;
					else return 906;
				else if (Note == 4)
					if (Powered) return 907;
					else return 908;
				else if (Note == 5)
					if (Powered) return 909;
					else return 910;
				else if (Note == 6)
					if (Powered) return 911;
					else return 912;
				else if (Note == 7)
					if (Powered) return 913;
					else return 914;
				else if (Note == 8)
					if (Powered) return 915;
					else return 916;
				else if (Note == 9)
					if (Powered) return 917;
					else return 918;
				else if (Note == 10)
					if (Powered) return 919;
					else return 920;
				else if (Note == 11)
					if (Powered) return 921;
					else return 922;
				else if (Note == 12)
					if (Powered) return 923;
					else return 924;
				else if (Note == 13)
					if (Powered) return 925;
					else return 926;
				else if (Note == 14)
					if (Powered) return 927;
					else return 928;
				else if (Note == 15)
					if (Powered) return 929;
					else return 930;
				else if (Note == 16)
					if (Powered) return 931;
					else return 932;
				else if (Note == 17)
					if (Powered) return 933;
					else return 934;
				else if (Note == 18)
					if (Powered) return 935;
					else return 936;
				else if (Note == 19)
					if (Powered) return 937;
					else return 938;
				else if (Note == 20)
					if (Powered) return 939;
					else return 940;
				else if (Note == 21)
					if (Powered) return 941;
					else return 942;
				else if (Note == 22)
					if (Powered) return 943;
					else return 944;
				else if (Note == 23)
					if (Powered) return 945;
					else return 946;
				else
					if (Powered) return 947;
					else return 948;
			else if (Instrument == Instrument::Banjo)
				if (Note == 0)
					if (Powered) return 949;
					else return 950;
				else if (Note == 1)
					if (Powered) return 951;
					else return 952;
				else if (Note == 2)
					if (Powered) return 953;
					else return 954;
				else if (Note == 3)
					if (Powered) return 955;
					else return 956;
				else if (Note == 4)
					if (Powered) return 957;
					else return 958;
				else if (Note == 5)
					if (Powered) return 959;
					else return 960;
				else if (Note == 6)
					if (Powered) return 961;
					else return 962;
				else if (Note == 7)
					if (Powered) return 963;
					else return 964;
				else if (Note == 8)
					if (Powered) return 965;
					else return 966;
				else if (Note == 9)
					if (Powered) return 967;
					else return 968;
				else if (Note == 10)
					if (Powered) return 969;
					else return 970;
				else if (Note == 11)
					if (Powered) return 971;
					else return 972;
				else if (Note == 12)
					if (Powered) return 973;
					else return 974;
				else if (Note == 13)
					if (Powered) return 975;
					else return 976;
				else if (Note == 14)
					if (Powered) return 977;
					else return 978;
				else if (Note == 15)
					if (Powered) return 979;
					else return 980;
				else if (Note == 16)
					if (Powered) return 981;
					else return 982;
				else if (Note == 17)
					if (Powered) return 983;
					else return 984;
				else if (Note == 18)
					if (Powered) return 985;
					else return 986;
				else if (Note == 19)
					if (Powered) return 987;
					else return 988;
				else if (Note == 20)
					if (Powered) return 989;
					else return 990;
				else if (Note == 21)
					if (Powered) return 991;
					else return 992;
				else if (Note == 22)
					if (Powered) return 993;
					else return 994;
				else if (Note == 23)
					if (Powered) return 995;
					else return 996;
				else
					if (Powered) return 997;
					else return 998;
			else
				if (Note == 0)
					if (Powered) return 999;
					else return 1000;
				else if (Note == 1)
					if (Powered) return 1001;
					else return 1002;
				else if (Note == 2)
					if (Powered) return 1003;
					else return 1004;
				else if (Note == 3)
					if (Powered) return 1005;
					else return 1006;
				else if (Note == 4)
					if (Powered) return 1007;
					else return 1008;
				else if (Note == 5)
					if (Powered) return 1009;
					else return 1010;
				else if (Note == 6)
					if (Powered) return 1011;
					else return 1012;
				else if (Note == 7)
					if (Powered) return 1013;
					else return 1014;
				else if (Note == 8)
					if (Powered) return 1015;
					else return 1016;
				else if (Note == 9)
					if (Powered) return 1017;
					else return 1018;
				else if (Note == 10)
					if (Powered) return 1019;
					else return 1020;
				else if (Note == 11)
					if (Powered) return 1021;
					else return 1022;
				else if (Note == 12)
					if (Powered) return 1023;
					else return 1024;
				else if (Note == 13)
					if (Powered) return 1025;
					else return 1026;
				else if (Note == 14)
					if (Powered) return 1027;
					else return 1028;
				else if (Note == 15)
					if (Powered) return 1029;
					else return 1030;
				else if (Note == 16)
					if (Powered) return 1031;
					else return 1032;
				else if (Note == 17)
					if (Powered) return 1033;
					else return 1034;
				else if (Note == 18)
					if (Powered) return 1035;
					else return 1036;
				else if (Note == 19)
					if (Powered) return 1037;
					else return 1038;
				else if (Note == 20)
					if (Powered) return 1039;
					else return 1040;
				else if (Note == 21)
					if (Powered) return 1041;
					else return 1042;
				else if (Note == 22)
					if (Powered) return 1043;
					else return 1044;
				else if (Note == 23)
					if (Powered) return 1045;
					else return 1046;
				else
					if (Powered) return 1047;
					else return 1048;
		}
		BlockState NoteBlock();
		enum Instrument Instrument(BlockState Block);
		unsigned char Note(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace OakButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState OakButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6346;
					else return 6347;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6348;
					else return 6349;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6350;
					else return 6351;
				else
					if (Powered) return 6352;
					else return 6353;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6354;
					else return 6355;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6356;
					else return 6357;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6358;
					else return 6359;
				else
					if (Powered) return 6360;
					else return 6361;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6362;
					else return 6363;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6364;
					else return 6365;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6366;
					else return 6367;
				else
					if (Powered) return 6368;
					else return 6369;
		}
		BlockState OakButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace OakDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr BlockState OakDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3573;
							else return 3574;
						else
							if (Powered) return 3575;
							else return 3576;
					else
						if (Open)
							if (Powered) return 3577;
							else return 3578;
						else
							if (Powered) return 3579;
							else return 3580;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3581;
							else return 3582;
						else
							if (Powered) return 3583;
							else return 3584;
					else
						if (Open)
							if (Powered) return 3585;
							else return 3586;
						else
							if (Powered) return 3587;
							else return 3588;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3589;
							else return 3590;
						else
							if (Powered) return 3591;
							else return 3592;
					else
						if (Open)
							if (Powered) return 3593;
							else return 3594;
						else
							if (Powered) return 3595;
							else return 3596;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3597;
							else return 3598;
						else
							if (Powered) return 3599;
							else return 3600;
					else
						if (Open)
							if (Powered) return 3601;
							else return 3602;
						else
							if (Powered) return 3603;
							else return 3604;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3605;
							else return 3606;
						else
							if (Powered) return 3607;
							else return 3608;
					else
						if (Open)
							if (Powered) return 3609;
							else return 3610;
						else
							if (Powered) return 3611;
							else return 3612;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3613;
							else return 3614;
						else
							if (Powered) return 3615;
							else return 3616;
					else
						if (Open)
							if (Powered) return 3617;
							else return 3618;
						else
							if (Powered) return 3619;
							else return 3620;
			else
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3621;
							else return 3622;
						else
							if (Powered) return 3623;
							else return 3624;
					else
						if (Open)
							if (Powered) return 3625;
							else return 3626;
						else
							if (Powered) return 3627;
							else return 3628;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 3629;
							else return 3630;
						else
							if (Powered) return 3631;
							else return 3632;
					else
						if (Open)
							if (Powered) return 3633;
							else return 3634;
						else
							if (Powered) return 3635;
							else return 3636;
		}
		BlockState OakDoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Hinge Hinge(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace OakFence
	{
		constexpr BlockState OakFence(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 3968;
						else return 3969;
					else
						if (West) return 3972;
						else return 3973;
				else
					if (South)
						if (West) return 3976;
						else return 3977;
					else
						if (West) return 3980;
						else return 3981;
			else
				if (North)
					if (South)
						if (West) return 3984;
						else return 3985;
					else
						if (West) return 3988;
						else return 3989;
				else
					if (South)
						if (West) return 3992;
						else return 3993;
					else
						if (West) return 3996;
						else return 3997;
		}
		BlockState OakFence();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace OakFenceGate
	{
		constexpr BlockState OakFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (InWall)
					if (Open)
						if (Powered) return 4820;
						else return 4821;
					else
						if (Powered) return 4822;
						else return 4823;
				else
					if (Open)
						if (Powered) return 4824;
						else return 4825;
					else
						if (Powered) return 4826;
						else return 4827;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (InWall)
					if (Open)
						if (Powered) return 4828;
						else return 4829;
					else
						if (Powered) return 4830;
						else return 4831;
				else
					if (Open)
						if (Powered) return 4832;
						else return 4833;
					else
						if (Powered) return 4834;
						else return 4835;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (InWall)
					if (Open)
						if (Powered) return 4836;
						else return 4837;
					else
						if (Powered) return 4838;
						else return 4839;
				else
					if (Open)
						if (Powered) return 4840;
						else return 4841;
					else
						if (Powered) return 4842;
						else return 4843;
			else
				if (InWall)
					if (Open)
						if (Powered) return 4844;
						else return 4845;
					else
						if (Powered) return 4846;
						else return 4847;
				else
					if (Open)
						if (Powered) return 4848;
						else return 4849;
					else
						if (Powered) return 4850;
						else return 4851;
		}
		BlockState OakFenceGate();
		eBlockFace Facing(BlockState Block);
		bool InWall(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace OakLeaves
	{
		constexpr BlockState OakLeaves(const unsigned char Distance, const bool Persistent)
		{
			if (Distance == 1)
				if (Persistent) return 145;
				else return 146;
			else if (Distance == 2)
				if (Persistent) return 147;
				else return 148;
			else if (Distance == 3)
				if (Persistent) return 149;
				else return 150;
			else if (Distance == 4)
				if (Persistent) return 151;
				else return 152;
			else if (Distance == 5)
				if (Persistent) return 153;
				else return 154;
			else if (Distance == 6)
				if (Persistent) return 155;
				else return 156;
			else
				if (Persistent) return 157;
				else return 158;
		}
		BlockState OakLeaves();
		unsigned char Distance(BlockState Block);
		bool Persistent(BlockState Block);
	}
	namespace OakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState OakLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 73;
			else if (Axis == Axis::Y) return 74;
			else return 75;
		}
		BlockState OakLog();
		enum Axis Axis(BlockState Block);
	}
	namespace OakPlanks
	{
		constexpr BlockState OakPlanks()
		{
			return 15;
		}
	}
	namespace OakPressurePlate
	{
		constexpr BlockState OakPressurePlate(const bool Powered)
		{
			if (Powered) return 3873;
			else return 3874;
		}
		BlockState OakPressurePlate();
		bool Powered(BlockState Block);
	}
	namespace OakSapling
	{
		constexpr BlockState OakSapling(const unsigned char Stage)
		{
			if (Stage == 0) return 21;
			else return 22;
		}
		BlockState OakSapling();
		unsigned char Stage(BlockState Block);
	}
	namespace OakSign
	{
		constexpr BlockState OakSign(const unsigned char Rotation)
		{
			if (Rotation == 0) return 3382;
			else if (Rotation == 1) return 3384;
			else if (Rotation == 2) return 3386;
			else if (Rotation == 3) return 3388;
			else if (Rotation == 4) return 3390;
			else if (Rotation == 5) return 3392;
			else if (Rotation == 6) return 3394;
			else if (Rotation == 7) return 3396;
			else if (Rotation == 8) return 3398;
			else if (Rotation == 9) return 3400;
			else if (Rotation == 10) return 3402;
			else if (Rotation == 11) return 3404;
			else if (Rotation == 12) return 3406;
			else if (Rotation == 13) return 3408;
			else if (Rotation == 14) return 3410;
			else return 3412;
		}
		BlockState OakSign();
		unsigned char Rotation(BlockState Block);
	}
	namespace OakSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState OakSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8301;
			else if (Type == Type::Bottom) return 8303;
			else return 8305;
		}
		BlockState OakSlab();
		enum Type Type(BlockState Block);
	}
	namespace OakStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState OakStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 1955;
					else if (Shape == Shape::InnerLeft) return 1957;
					else if (Shape == Shape::InnerRight) return 1959;
					else if (Shape == Shape::OuterLeft) return 1961;
					else return 1963;
				else
					if (Shape == Shape::Straight) return 1965;
					else if (Shape == Shape::InnerLeft) return 1967;
					else if (Shape == Shape::InnerRight) return 1969;
					else if (Shape == Shape::OuterLeft) return 1971;
					else return 1973;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 1975;
					else if (Shape == Shape::InnerLeft) return 1977;
					else if (Shape == Shape::InnerRight) return 1979;
					else if (Shape == Shape::OuterLeft) return 1981;
					else return 1983;
				else
					if (Shape == Shape::Straight) return 1985;
					else if (Shape == Shape::InnerLeft) return 1987;
					else if (Shape == Shape::InnerRight) return 1989;
					else if (Shape == Shape::OuterLeft) return 1991;
					else return 1993;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 1995;
					else if (Shape == Shape::InnerLeft) return 1997;
					else if (Shape == Shape::InnerRight) return 1999;
					else if (Shape == Shape::OuterLeft) return 2001;
					else return 2003;
				else
					if (Shape == Shape::Straight) return 2005;
					else if (Shape == Shape::InnerLeft) return 2007;
					else if (Shape == Shape::InnerRight) return 2009;
					else if (Shape == Shape::OuterLeft) return 2011;
					else return 2013;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 2015;
					else if (Shape == Shape::InnerLeft) return 2017;
					else if (Shape == Shape::InnerRight) return 2019;
					else if (Shape == Shape::OuterLeft) return 2021;
					else return 2023;
				else
					if (Shape == Shape::Straight) return 2025;
					else if (Shape == Shape::InnerLeft) return 2027;
					else if (Shape == Shape::InnerRight) return 2029;
					else if (Shape == Shape::OuterLeft) return 2031;
					else return 2033;
		}
		BlockState OakStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace OakTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr BlockState OakTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4112;
						else return 4114;
					else
						if (Powered) return 4116;
						else return 4118;
				else
					if (Open)
						if (Powered) return 4120;
						else return 4122;
					else
						if (Powered) return 4124;
						else return 4126;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4128;
						else return 4130;
					else
						if (Powered) return 4132;
						else return 4134;
				else
					if (Open)
						if (Powered) return 4136;
						else return 4138;
					else
						if (Powered) return 4140;
						else return 4142;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4144;
						else return 4146;
					else
						if (Powered) return 4148;
						else return 4150;
				else
					if (Open)
						if (Powered) return 4152;
						else return 4154;
					else
						if (Powered) return 4156;
						else return 4158;
			else
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4160;
						else return 4162;
					else
						if (Powered) return 4164;
						else return 4166;
				else
					if (Open)
						if (Powered) return 4168;
						else return 4170;
					else
						if (Powered) return 4172;
						else return 4174;
		}
		BlockState OakTrapdoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace OakWallSign
	{
		constexpr BlockState OakWallSign(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3736;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3738;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3740;
			else return 3742;
		}
		BlockState OakWallSign();
		eBlockFace Facing(BlockState Block);
	}
	namespace OakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState OakWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 109;
			else if (Axis == Axis::Y) return 110;
			else return 111;
		}
		BlockState OakWood();
		enum Axis Axis(BlockState Block);
	}
	namespace Observer
	{
		constexpr BlockState Observer(const eBlockFace Facing, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Powered) return 9260;
				else return 9261;
			else if (Facing == eBlockFace::BLOCK_FACE_XP)
				if (Powered) return 9262;
				else return 9263;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Powered) return 9264;
				else return 9265;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Powered) return 9266;
				else return 9267;
			else if (Facing == eBlockFace::BLOCK_FACE_YP)
				if (Powered) return 9268;
				else return 9269;
			else
				if (Powered) return 9270;
				else return 9271;
		}
		BlockState Observer();
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace Obsidian
	{
		constexpr BlockState Obsidian()
		{
			return 1434;
		}
	}
	namespace OrangeBanner
	{
		constexpr BlockState OrangeBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 7913;
			else if (Rotation == 1) return 7914;
			else if (Rotation == 2) return 7915;
			else if (Rotation == 3) return 7916;
			else if (Rotation == 4) return 7917;
			else if (Rotation == 5) return 7918;
			else if (Rotation == 6) return 7919;
			else if (Rotation == 7) return 7920;
			else if (Rotation == 8) return 7921;
			else if (Rotation == 9) return 7922;
			else if (Rotation == 10) return 7923;
			else if (Rotation == 11) return 7924;
			else if (Rotation == 12) return 7925;
			else if (Rotation == 13) return 7926;
			else if (Rotation == 14) return 7927;
			else return 7928;
		}
		BlockState OrangeBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace OrangeBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState OrangeBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1065;
					else return 1066;
				else
					if (Part == Part::Head) return 1067;
					else return 1068;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1069;
					else return 1070;
				else
					if (Part == Part::Head) return 1071;
					else return 1072;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1073;
					else return 1074;
				else
					if (Part == Part::Head) return 1075;
					else return 1076;
			else
				if (Occupied)
					if (Part == Part::Head) return 1077;
					else return 1078;
				else
					if (Part == Part::Head) return 1079;
					else return 1080;
		}
		BlockState OrangeBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace OrangeCarpet
	{
		constexpr BlockState OrangeCarpet()
		{
			return 7867;
		}
	}
	namespace OrangeConcrete
	{
		constexpr BlockState OrangeConcrete()
		{
			return 9439;
		}
	}
	namespace OrangeConcretePowder
	{
		constexpr BlockState OrangeConcretePowder()
		{
			return 9455;
		}
	}
	namespace OrangeGlazedTerracotta
	{
		constexpr BlockState OrangeGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9378;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9379;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9380;
			else return 9381;
		}
		BlockState OrangeGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace OrangeShulkerBox
	{
		constexpr BlockState OrangeShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9284;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9285;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9286;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9287;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9288;
			else return 9289;
		}
		BlockState OrangeShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace OrangeStainedGlass
	{
		constexpr BlockState OrangeStainedGlass()
		{
			return 4096;
		}
	}
	namespace OrangeStainedGlassPane
	{
		constexpr BlockState OrangeStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 6897;
						else return 6898;
					else
						if (West) return 6901;
						else return 6902;
				else
					if (South)
						if (West) return 6905;
						else return 6906;
					else
						if (West) return 6909;
						else return 6910;
			else
				if (North)
					if (South)
						if (West) return 6913;
						else return 6914;
					else
						if (West) return 6917;
						else return 6918;
				else
					if (South)
						if (West) return 6921;
						else return 6922;
					else
						if (West) return 6925;
						else return 6926;
		}
		BlockState OrangeStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace OrangeTerracotta
	{
		constexpr BlockState OrangeTerracotta()
		{
			return 6848;
		}
	}
	namespace OrangeTulip
	{
		constexpr BlockState OrangeTulip()
		{
			return 1418;
		}
	}
	namespace OrangeWallBanner
	{
		constexpr BlockState OrangeWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8157;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8158;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8159;
			else return 8160;
		}
		BlockState OrangeWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace OrangeWool
	{
		constexpr BlockState OrangeWool()
		{
			return 1385;
		}
	}
	namespace OxeyeDaisy
	{
		constexpr BlockState OxeyeDaisy()
		{
			return 1421;
		}
	}
	namespace PackedIce
	{
		constexpr BlockState PackedIce()
		{
			return 7884;
		}
	}
	namespace Peony
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr BlockState Peony(const enum Half Half)
		{
			if (Half == Half::Upper) return 7891;
			else return 7892;
		}
		BlockState Peony();
		enum Half Half(BlockState Block);
	}
	namespace PetrifiedOakSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState PetrifiedOakSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8361;
			else if (Type == Type::Bottom) return 8363;
			else return 8365;
		}
		BlockState PetrifiedOakSlab();
		enum Type Type(BlockState Block);
	}
	namespace PinkBanner
	{
		constexpr BlockState PinkBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 7993;
			else if (Rotation == 1) return 7994;
			else if (Rotation == 2) return 7995;
			else if (Rotation == 3) return 7996;
			else if (Rotation == 4) return 7997;
			else if (Rotation == 5) return 7998;
			else if (Rotation == 6) return 7999;
			else if (Rotation == 7) return 8000;
			else if (Rotation == 8) return 8001;
			else if (Rotation == 9) return 8002;
			else if (Rotation == 10) return 8003;
			else if (Rotation == 11) return 8004;
			else if (Rotation == 12) return 8005;
			else if (Rotation == 13) return 8006;
			else if (Rotation == 14) return 8007;
			else return 8008;
		}
		BlockState PinkBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace PinkBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState PinkBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1145;
					else return 1146;
				else
					if (Part == Part::Head) return 1147;
					else return 1148;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1149;
					else return 1150;
				else
					if (Part == Part::Head) return 1151;
					else return 1152;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1153;
					else return 1154;
				else
					if (Part == Part::Head) return 1155;
					else return 1156;
			else
				if (Occupied)
					if (Part == Part::Head) return 1157;
					else return 1158;
				else
					if (Part == Part::Head) return 1159;
					else return 1160;
		}
		BlockState PinkBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace PinkCarpet
	{
		constexpr BlockState PinkCarpet()
		{
			return 7872;
		}
	}
	namespace PinkConcrete
	{
		constexpr BlockState PinkConcrete()
		{
			return 9444;
		}
	}
	namespace PinkConcretePowder
	{
		constexpr BlockState PinkConcretePowder()
		{
			return 9460;
		}
	}
	namespace PinkGlazedTerracotta
	{
		constexpr BlockState PinkGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9398;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9399;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9400;
			else return 9401;
		}
		BlockState PinkGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace PinkShulkerBox
	{
		constexpr BlockState PinkShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9314;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9315;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9316;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9317;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9318;
			else return 9319;
		}
		BlockState PinkShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace PinkStainedGlass
	{
		constexpr BlockState PinkStainedGlass()
		{
			return 4101;
		}
	}
	namespace PinkStainedGlassPane
	{
		constexpr BlockState PinkStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7057;
						else return 7058;
					else
						if (West) return 7061;
						else return 7062;
				else
					if (South)
						if (West) return 7065;
						else return 7066;
					else
						if (West) return 7069;
						else return 7070;
			else
				if (North)
					if (South)
						if (West) return 7073;
						else return 7074;
					else
						if (West) return 7077;
						else return 7078;
				else
					if (South)
						if (West) return 7081;
						else return 7082;
					else
						if (West) return 7085;
						else return 7086;
		}
		BlockState PinkStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace PinkTerracotta
	{
		constexpr BlockState PinkTerracotta()
		{
			return 6853;
		}
	}
	namespace PinkTulip
	{
		constexpr BlockState PinkTulip()
		{
			return 1420;
		}
	}
	namespace PinkWallBanner
	{
		constexpr BlockState PinkWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8177;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8178;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8179;
			else return 8180;
		}
		BlockState PinkWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace PinkWool
	{
		constexpr BlockState PinkWool()
		{
			return 1390;
		}
	}
	namespace Piston
	{
		constexpr BlockState Piston(const bool Extended, const eBlockFace Facing)
		{
			if (Extended)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1348;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1349;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1350;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1351;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1352;
				else return 1353;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1354;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1355;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1356;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1357;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1358;
				else return 1359;
		}
		BlockState Piston();
		bool Extended(BlockState Block);
		eBlockFace Facing(BlockState Block);
	}
	namespace PistonHead
	{
		enum class Type
		{
			Normal,
			Sticky
		};
		constexpr BlockState PistonHead(const eBlockFace Facing, const bool Short, const enum Type Type)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Short)
					if (Type == Type::Normal) return 1360;
					else return 1361;
				else
					if (Type == Type::Normal) return 1362;
					else return 1363;
			else if (Facing == eBlockFace::BLOCK_FACE_XP)
				if (Short)
					if (Type == Type::Normal) return 1364;
					else return 1365;
				else
					if (Type == Type::Normal) return 1366;
					else return 1367;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Short)
					if (Type == Type::Normal) return 1368;
					else return 1369;
				else
					if (Type == Type::Normal) return 1370;
					else return 1371;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Short)
					if (Type == Type::Normal) return 1372;
					else return 1373;
				else
					if (Type == Type::Normal) return 1374;
					else return 1375;
			else if (Facing == eBlockFace::BLOCK_FACE_YP)
				if (Short)
					if (Type == Type::Normal) return 1376;
					else return 1377;
				else
					if (Type == Type::Normal) return 1378;
					else return 1379;
			else
				if (Short)
					if (Type == Type::Normal) return 1380;
					else return 1381;
				else
					if (Type == Type::Normal) return 1382;
					else return 1383;
		}
		BlockState PistonHead();
		eBlockFace Facing(BlockState Block);
		bool Short(BlockState Block);
		enum Type Type(BlockState Block);
	}
	namespace PlayerHead
	{
		constexpr BlockState PlayerHead(const unsigned char Rotation)
		{
			if (Rotation == 0) return 6550;
			else if (Rotation == 1) return 6551;
			else if (Rotation == 2) return 6552;
			else if (Rotation == 3) return 6553;
			else if (Rotation == 4) return 6554;
			else if (Rotation == 5) return 6555;
			else if (Rotation == 6) return 6556;
			else if (Rotation == 7) return 6557;
			else if (Rotation == 8) return 6558;
			else if (Rotation == 9) return 6559;
			else if (Rotation == 10) return 6560;
			else if (Rotation == 11) return 6561;
			else if (Rotation == 12) return 6562;
			else if (Rotation == 13) return 6563;
			else if (Rotation == 14) return 6564;
			else return 6565;
		}
		BlockState PlayerHead();
		unsigned char Rotation(BlockState Block);
	}
	namespace PlayerWallHead
	{
		constexpr BlockState PlayerWallHead(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6566;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6567;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6568;
			else return 6569;
		}
		BlockState PlayerWallHead();
		eBlockFace Facing(BlockState Block);
	}
	namespace Podzol
	{
		constexpr BlockState Podzol(const bool Snowy)
		{
			if (Snowy) return 12;
			else return 13;
		}
		BlockState Podzol();
		bool Snowy(BlockState Block);
	}
	namespace PolishedAndesite
	{
		constexpr BlockState PolishedAndesite()
		{
			return 7;
		}
	}
	namespace PolishedAndesiteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState PolishedAndesiteSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10856;
			else if (Type == Type::Bottom) return 10858;
			else return 10860;
		}
		BlockState PolishedAndesiteSlab();
		enum Type Type(BlockState Block);
	}
	namespace PolishedAndesiteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState PolishedAndesiteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10630;
					else if (Shape == Shape::InnerLeft) return 10632;
					else if (Shape == Shape::InnerRight) return 10634;
					else if (Shape == Shape::OuterLeft) return 10636;
					else return 10638;
				else
					if (Shape == Shape::Straight) return 10640;
					else if (Shape == Shape::InnerLeft) return 10642;
					else if (Shape == Shape::InnerRight) return 10644;
					else if (Shape == Shape::OuterLeft) return 10646;
					else return 10648;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10650;
					else if (Shape == Shape::InnerLeft) return 10652;
					else if (Shape == Shape::InnerRight) return 10654;
					else if (Shape == Shape::OuterLeft) return 10656;
					else return 10658;
				else
					if (Shape == Shape::Straight) return 10660;
					else if (Shape == Shape::InnerLeft) return 10662;
					else if (Shape == Shape::InnerRight) return 10664;
					else if (Shape == Shape::OuterLeft) return 10666;
					else return 10668;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10670;
					else if (Shape == Shape::InnerLeft) return 10672;
					else if (Shape == Shape::InnerRight) return 10674;
					else if (Shape == Shape::OuterLeft) return 10676;
					else return 10678;
				else
					if (Shape == Shape::Straight) return 10680;
					else if (Shape == Shape::InnerLeft) return 10682;
					else if (Shape == Shape::InnerRight) return 10684;
					else if (Shape == Shape::OuterLeft) return 10686;
					else return 10688;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10690;
					else if (Shape == Shape::InnerLeft) return 10692;
					else if (Shape == Shape::InnerRight) return 10694;
					else if (Shape == Shape::OuterLeft) return 10696;
					else return 10698;
				else
					if (Shape == Shape::Straight) return 10700;
					else if (Shape == Shape::InnerLeft) return 10702;
					else if (Shape == Shape::InnerRight) return 10704;
					else if (Shape == Shape::OuterLeft) return 10706;
					else return 10708;
		}
		BlockState PolishedAndesiteStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace PolishedBasalt
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState PolishedBasalt(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 4005;
			else if (Axis == Axis::Y) return 4006;
			else return 4007;
		}
		BlockState PolishedBasalt();
		enum Axis Axis(BlockState Block);
	}
	namespace PolishedBlackstone
	{
		constexpr BlockState PolishedBlackstone()
		{
			return 16250;
		}
	}
	namespace PolishedBlackstoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState PolishedBlackstoneBrickSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 16255;
			else if (Type == Type::Bottom) return 16257;
			else return 16259;
		}
		BlockState PolishedBlackstoneBrickSlab();
		enum Type Type(BlockState Block);
	}
	namespace PolishedBlackstoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState PolishedBlackstoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 16261;
					else if (Shape == Shape::InnerLeft) return 16263;
					else if (Shape == Shape::InnerRight) return 16265;
					else if (Shape == Shape::OuterLeft) return 16267;
					else return 16269;
				else
					if (Shape == Shape::Straight) return 16271;
					else if (Shape == Shape::InnerLeft) return 16273;
					else if (Shape == Shape::InnerRight) return 16275;
					else if (Shape == Shape::OuterLeft) return 16277;
					else return 16279;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 16281;
					else if (Shape == Shape::InnerLeft) return 16283;
					else if (Shape == Shape::InnerRight) return 16285;
					else if (Shape == Shape::OuterLeft) return 16287;
					else return 16289;
				else
					if (Shape == Shape::Straight) return 16291;
					else if (Shape == Shape::InnerLeft) return 16293;
					else if (Shape == Shape::InnerRight) return 16295;
					else if (Shape == Shape::OuterLeft) return 16297;
					else return 16299;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 16301;
					else if (Shape == Shape::InnerLeft) return 16303;
					else if (Shape == Shape::InnerRight) return 16305;
					else if (Shape == Shape::OuterLeft) return 16307;
					else return 16309;
				else
					if (Shape == Shape::Straight) return 16311;
					else if (Shape == Shape::InnerLeft) return 16313;
					else if (Shape == Shape::InnerRight) return 16315;
					else if (Shape == Shape::OuterLeft) return 16317;
					else return 16319;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 16321;
					else if (Shape == Shape::InnerLeft) return 16323;
					else if (Shape == Shape::InnerRight) return 16325;
					else if (Shape == Shape::OuterLeft) return 16327;
					else return 16329;
				else
					if (Shape == Shape::Straight) return 16331;
					else if (Shape == Shape::InnerLeft) return 16333;
					else if (Shape == Shape::InnerRight) return 16335;
					else if (Shape == Shape::OuterLeft) return 16337;
					else return 16339;
		}
		BlockState PolishedBlackstoneBrickStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState PolishedBlackstoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16343;
							else if (West == West::Low) return 16344;
							else return 16345;
						else
							if (West == West::None) return 16349;
							else if (West == West::Low) return 16350;
							else return 16351;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16355;
							else if (West == West::Low) return 16356;
							else return 16357;
						else
							if (West == West::None) return 16361;
							else if (West == West::Low) return 16362;
							else return 16363;
					else
						if (Up)
							if (West == West::None) return 16367;
							else if (West == West::Low) return 16368;
							else return 16369;
						else
							if (West == West::None) return 16373;
							else if (West == West::Low) return 16374;
							else return 16375;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16379;
							else if (West == West::Low) return 16380;
							else return 16381;
						else
							if (West == West::None) return 16385;
							else if (West == West::Low) return 16386;
							else return 16387;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16391;
							else if (West == West::Low) return 16392;
							else return 16393;
						else
							if (West == West::None) return 16397;
							else if (West == West::Low) return 16398;
							else return 16399;
					else
						if (Up)
							if (West == West::None) return 16403;
							else if (West == West::Low) return 16404;
							else return 16405;
						else
							if (West == West::None) return 16409;
							else if (West == West::Low) return 16410;
							else return 16411;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16415;
							else if (West == West::Low) return 16416;
							else return 16417;
						else
							if (West == West::None) return 16421;
							else if (West == West::Low) return 16422;
							else return 16423;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16427;
							else if (West == West::Low) return 16428;
							else return 16429;
						else
							if (West == West::None) return 16433;
							else if (West == West::Low) return 16434;
							else return 16435;
					else
						if (Up)
							if (West == West::None) return 16439;
							else if (West == West::Low) return 16440;
							else return 16441;
						else
							if (West == West::None) return 16445;
							else if (West == West::Low) return 16446;
							else return 16447;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16451;
							else if (West == West::Low) return 16452;
							else return 16453;
						else
							if (West == West::None) return 16457;
							else if (West == West::Low) return 16458;
							else return 16459;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16463;
							else if (West == West::Low) return 16464;
							else return 16465;
						else
							if (West == West::None) return 16469;
							else if (West == West::Low) return 16470;
							else return 16471;
					else
						if (Up)
							if (West == West::None) return 16475;
							else if (West == West::Low) return 16476;
							else return 16477;
						else
							if (West == West::None) return 16481;
							else if (West == West::Low) return 16482;
							else return 16483;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16487;
							else if (West == West::Low) return 16488;
							else return 16489;
						else
							if (West == West::None) return 16493;
							else if (West == West::Low) return 16494;
							else return 16495;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16499;
							else if (West == West::Low) return 16500;
							else return 16501;
						else
							if (West == West::None) return 16505;
							else if (West == West::Low) return 16506;
							else return 16507;
					else
						if (Up)
							if (West == West::None) return 16511;
							else if (West == West::Low) return 16512;
							else return 16513;
						else
							if (West == West::None) return 16517;
							else if (West == West::Low) return 16518;
							else return 16519;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16523;
							else if (West == West::Low) return 16524;
							else return 16525;
						else
							if (West == West::None) return 16529;
							else if (West == West::Low) return 16530;
							else return 16531;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16535;
							else if (West == West::Low) return 16536;
							else return 16537;
						else
							if (West == West::None) return 16541;
							else if (West == West::Low) return 16542;
							else return 16543;
					else
						if (Up)
							if (West == West::None) return 16547;
							else if (West == West::Low) return 16548;
							else return 16549;
						else
							if (West == West::None) return 16553;
							else if (West == West::Low) return 16554;
							else return 16555;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16559;
							else if (West == West::Low) return 16560;
							else return 16561;
						else
							if (West == West::None) return 16565;
							else if (West == West::Low) return 16566;
							else return 16567;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16571;
							else if (West == West::Low) return 16572;
							else return 16573;
						else
							if (West == West::None) return 16577;
							else if (West == West::Low) return 16578;
							else return 16579;
					else
						if (Up)
							if (West == West::None) return 16583;
							else if (West == West::Low) return 16584;
							else return 16585;
						else
							if (West == West::None) return 16589;
							else if (West == West::Low) return 16590;
							else return 16591;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16595;
							else if (West == West::Low) return 16596;
							else return 16597;
						else
							if (West == West::None) return 16601;
							else if (West == West::Low) return 16602;
							else return 16603;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16607;
							else if (West == West::Low) return 16608;
							else return 16609;
						else
							if (West == West::None) return 16613;
							else if (West == West::Low) return 16614;
							else return 16615;
					else
						if (Up)
							if (West == West::None) return 16619;
							else if (West == West::Low) return 16620;
							else return 16621;
						else
							if (West == West::None) return 16625;
							else if (West == West::Low) return 16626;
							else return 16627;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16631;
							else if (West == West::Low) return 16632;
							else return 16633;
						else
							if (West == West::None) return 16637;
							else if (West == West::Low) return 16638;
							else return 16639;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16643;
							else if (West == West::Low) return 16644;
							else return 16645;
						else
							if (West == West::None) return 16649;
							else if (West == West::Low) return 16650;
							else return 16651;
					else
						if (Up)
							if (West == West::None) return 16655;
							else if (West == West::Low) return 16656;
							else return 16657;
						else
							if (West == West::None) return 16661;
							else if (West == West::Low) return 16662;
							else return 16663;
		}
		BlockState PolishedBlackstoneBrickWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace PolishedBlackstoneBricks
	{
		constexpr BlockState PolishedBlackstoneBricks()
		{
			return 16251;
		}
	}
	namespace PolishedBlackstoneButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState PolishedBlackstoneButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 16753;
					else return 16754;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 16755;
					else return 16756;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 16757;
					else return 16758;
				else
					if (Powered) return 16759;
					else return 16760;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 16761;
					else return 16762;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 16763;
					else return 16764;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 16765;
					else return 16766;
				else
					if (Powered) return 16767;
					else return 16768;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 16769;
					else return 16770;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 16771;
					else return 16772;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 16773;
					else return 16774;
				else
					if (Powered) return 16775;
					else return 16776;
		}
		BlockState PolishedBlackstoneButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace PolishedBlackstonePressurePlate
	{
		constexpr BlockState PolishedBlackstonePressurePlate(const bool Powered)
		{
			if (Powered) return 16751;
			else return 16752;
		}
		BlockState PolishedBlackstonePressurePlate();
		bool Powered(BlockState Block);
	}
	namespace PolishedBlackstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState PolishedBlackstoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 16746;
			else if (Type == Type::Bottom) return 16748;
			else return 16750;
		}
		BlockState PolishedBlackstoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace PolishedBlackstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState PolishedBlackstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 16666;
					else if (Shape == Shape::InnerLeft) return 16668;
					else if (Shape == Shape::InnerRight) return 16670;
					else if (Shape == Shape::OuterLeft) return 16672;
					else return 16674;
				else
					if (Shape == Shape::Straight) return 16676;
					else if (Shape == Shape::InnerLeft) return 16678;
					else if (Shape == Shape::InnerRight) return 16680;
					else if (Shape == Shape::OuterLeft) return 16682;
					else return 16684;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 16686;
					else if (Shape == Shape::InnerLeft) return 16688;
					else if (Shape == Shape::InnerRight) return 16690;
					else if (Shape == Shape::OuterLeft) return 16692;
					else return 16694;
				else
					if (Shape == Shape::Straight) return 16696;
					else if (Shape == Shape::InnerLeft) return 16698;
					else if (Shape == Shape::InnerRight) return 16700;
					else if (Shape == Shape::OuterLeft) return 16702;
					else return 16704;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 16706;
					else if (Shape == Shape::InnerLeft) return 16708;
					else if (Shape == Shape::InnerRight) return 16710;
					else if (Shape == Shape::OuterLeft) return 16712;
					else return 16714;
				else
					if (Shape == Shape::Straight) return 16716;
					else if (Shape == Shape::InnerLeft) return 16718;
					else if (Shape == Shape::InnerRight) return 16720;
					else if (Shape == Shape::OuterLeft) return 16722;
					else return 16724;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 16726;
					else if (Shape == Shape::InnerLeft) return 16728;
					else if (Shape == Shape::InnerRight) return 16730;
					else if (Shape == Shape::OuterLeft) return 16732;
					else return 16734;
				else
					if (Shape == Shape::Straight) return 16736;
					else if (Shape == Shape::InnerLeft) return 16738;
					else if (Shape == Shape::InnerRight) return 16740;
					else if (Shape == Shape::OuterLeft) return 16742;
					else return 16744;
		}
		BlockState PolishedBlackstoneStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState PolishedBlackstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16780;
							else if (West == West::Low) return 16781;
							else return 16782;
						else
							if (West == West::None) return 16786;
							else if (West == West::Low) return 16787;
							else return 16788;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16792;
							else if (West == West::Low) return 16793;
							else return 16794;
						else
							if (West == West::None) return 16798;
							else if (West == West::Low) return 16799;
							else return 16800;
					else
						if (Up)
							if (West == West::None) return 16804;
							else if (West == West::Low) return 16805;
							else return 16806;
						else
							if (West == West::None) return 16810;
							else if (West == West::Low) return 16811;
							else return 16812;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16816;
							else if (West == West::Low) return 16817;
							else return 16818;
						else
							if (West == West::None) return 16822;
							else if (West == West::Low) return 16823;
							else return 16824;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16828;
							else if (West == West::Low) return 16829;
							else return 16830;
						else
							if (West == West::None) return 16834;
							else if (West == West::Low) return 16835;
							else return 16836;
					else
						if (Up)
							if (West == West::None) return 16840;
							else if (West == West::Low) return 16841;
							else return 16842;
						else
							if (West == West::None) return 16846;
							else if (West == West::Low) return 16847;
							else return 16848;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16852;
							else if (West == West::Low) return 16853;
							else return 16854;
						else
							if (West == West::None) return 16858;
							else if (West == West::Low) return 16859;
							else return 16860;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16864;
							else if (West == West::Low) return 16865;
							else return 16866;
						else
							if (West == West::None) return 16870;
							else if (West == West::Low) return 16871;
							else return 16872;
					else
						if (Up)
							if (West == West::None) return 16876;
							else if (West == West::Low) return 16877;
							else return 16878;
						else
							if (West == West::None) return 16882;
							else if (West == West::Low) return 16883;
							else return 16884;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16888;
							else if (West == West::Low) return 16889;
							else return 16890;
						else
							if (West == West::None) return 16894;
							else if (West == West::Low) return 16895;
							else return 16896;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16900;
							else if (West == West::Low) return 16901;
							else return 16902;
						else
							if (West == West::None) return 16906;
							else if (West == West::Low) return 16907;
							else return 16908;
					else
						if (Up)
							if (West == West::None) return 16912;
							else if (West == West::Low) return 16913;
							else return 16914;
						else
							if (West == West::None) return 16918;
							else if (West == West::Low) return 16919;
							else return 16920;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16924;
							else if (West == West::Low) return 16925;
							else return 16926;
						else
							if (West == West::None) return 16930;
							else if (West == West::Low) return 16931;
							else return 16932;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16936;
							else if (West == West::Low) return 16937;
							else return 16938;
						else
							if (West == West::None) return 16942;
							else if (West == West::Low) return 16943;
							else return 16944;
					else
						if (Up)
							if (West == West::None) return 16948;
							else if (West == West::Low) return 16949;
							else return 16950;
						else
							if (West == West::None) return 16954;
							else if (West == West::Low) return 16955;
							else return 16956;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16960;
							else if (West == West::Low) return 16961;
							else return 16962;
						else
							if (West == West::None) return 16966;
							else if (West == West::Low) return 16967;
							else return 16968;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 16972;
							else if (West == West::Low) return 16973;
							else return 16974;
						else
							if (West == West::None) return 16978;
							else if (West == West::Low) return 16979;
							else return 16980;
					else
						if (Up)
							if (West == West::None) return 16984;
							else if (West == West::Low) return 16985;
							else return 16986;
						else
							if (West == West::None) return 16990;
							else if (West == West::Low) return 16991;
							else return 16992;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 16996;
							else if (West == West::Low) return 16997;
							else return 16998;
						else
							if (West == West::None) return 17002;
							else if (West == West::Low) return 17003;
							else return 17004;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 17008;
							else if (West == West::Low) return 17009;
							else return 17010;
						else
							if (West == West::None) return 17014;
							else if (West == West::Low) return 17015;
							else return 17016;
					else
						if (Up)
							if (West == West::None) return 17020;
							else if (West == West::Low) return 17021;
							else return 17022;
						else
							if (West == West::None) return 17026;
							else if (West == West::Low) return 17027;
							else return 17028;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 17032;
							else if (West == West::Low) return 17033;
							else return 17034;
						else
							if (West == West::None) return 17038;
							else if (West == West::Low) return 17039;
							else return 17040;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 17044;
							else if (West == West::Low) return 17045;
							else return 17046;
						else
							if (West == West::None) return 17050;
							else if (West == West::Low) return 17051;
							else return 17052;
					else
						if (Up)
							if (West == West::None) return 17056;
							else if (West == West::Low) return 17057;
							else return 17058;
						else
							if (West == West::None) return 17062;
							else if (West == West::Low) return 17063;
							else return 17064;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 17068;
							else if (West == West::Low) return 17069;
							else return 17070;
						else
							if (West == West::None) return 17074;
							else if (West == West::Low) return 17075;
							else return 17076;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 17080;
							else if (West == West::Low) return 17081;
							else return 17082;
						else
							if (West == West::None) return 17086;
							else if (West == West::Low) return 17087;
							else return 17088;
					else
						if (Up)
							if (West == West::None) return 17092;
							else if (West == West::Low) return 17093;
							else return 17094;
						else
							if (West == West::None) return 17098;
							else if (West == West::Low) return 17099;
							else return 17100;
		}
		BlockState PolishedBlackstoneWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace PolishedDiorite
	{
		constexpr BlockState PolishedDiorite()
		{
			return 5;
		}
	}
	namespace PolishedDioriteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState PolishedDioriteSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10808;
			else if (Type == Type::Bottom) return 10810;
			else return 10812;
		}
		BlockState PolishedDioriteSlab();
		enum Type Type(BlockState Block);
	}
	namespace PolishedDioriteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState PolishedDioriteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9910;
					else if (Shape == Shape::InnerLeft) return 9912;
					else if (Shape == Shape::InnerRight) return 9914;
					else if (Shape == Shape::OuterLeft) return 9916;
					else return 9918;
				else
					if (Shape == Shape::Straight) return 9920;
					else if (Shape == Shape::InnerLeft) return 9922;
					else if (Shape == Shape::InnerRight) return 9924;
					else if (Shape == Shape::OuterLeft) return 9926;
					else return 9928;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9930;
					else if (Shape == Shape::InnerLeft) return 9932;
					else if (Shape == Shape::InnerRight) return 9934;
					else if (Shape == Shape::OuterLeft) return 9936;
					else return 9938;
				else
					if (Shape == Shape::Straight) return 9940;
					else if (Shape == Shape::InnerLeft) return 9942;
					else if (Shape == Shape::InnerRight) return 9944;
					else if (Shape == Shape::OuterLeft) return 9946;
					else return 9948;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9950;
					else if (Shape == Shape::InnerLeft) return 9952;
					else if (Shape == Shape::InnerRight) return 9954;
					else if (Shape == Shape::OuterLeft) return 9956;
					else return 9958;
				else
					if (Shape == Shape::Straight) return 9960;
					else if (Shape == Shape::InnerLeft) return 9962;
					else if (Shape == Shape::InnerRight) return 9964;
					else if (Shape == Shape::OuterLeft) return 9966;
					else return 9968;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9970;
					else if (Shape == Shape::InnerLeft) return 9972;
					else if (Shape == Shape::InnerRight) return 9974;
					else if (Shape == Shape::OuterLeft) return 9976;
					else return 9978;
				else
					if (Shape == Shape::Straight) return 9980;
					else if (Shape == Shape::InnerLeft) return 9982;
					else if (Shape == Shape::InnerRight) return 9984;
					else if (Shape == Shape::OuterLeft) return 9986;
					else return 9988;
		}
		BlockState PolishedDioriteStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace PolishedGranite
	{
		constexpr BlockState PolishedGranite()
		{
			return 3;
		}
	}
	namespace PolishedGraniteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState PolishedGraniteSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10790;
			else if (Type == Type::Bottom) return 10792;
			else return 10794;
		}
		BlockState PolishedGraniteSlab();
		enum Type Type(BlockState Block);
	}
	namespace PolishedGraniteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState PolishedGraniteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9670;
					else if (Shape == Shape::InnerLeft) return 9672;
					else if (Shape == Shape::InnerRight) return 9674;
					else if (Shape == Shape::OuterLeft) return 9676;
					else return 9678;
				else
					if (Shape == Shape::Straight) return 9680;
					else if (Shape == Shape::InnerLeft) return 9682;
					else if (Shape == Shape::InnerRight) return 9684;
					else if (Shape == Shape::OuterLeft) return 9686;
					else return 9688;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9690;
					else if (Shape == Shape::InnerLeft) return 9692;
					else if (Shape == Shape::InnerRight) return 9694;
					else if (Shape == Shape::OuterLeft) return 9696;
					else return 9698;
				else
					if (Shape == Shape::Straight) return 9700;
					else if (Shape == Shape::InnerLeft) return 9702;
					else if (Shape == Shape::InnerRight) return 9704;
					else if (Shape == Shape::OuterLeft) return 9706;
					else return 9708;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9710;
					else if (Shape == Shape::InnerLeft) return 9712;
					else if (Shape == Shape::InnerRight) return 9714;
					else if (Shape == Shape::OuterLeft) return 9716;
					else return 9718;
				else
					if (Shape == Shape::Straight) return 9720;
					else if (Shape == Shape::InnerLeft) return 9722;
					else if (Shape == Shape::InnerRight) return 9724;
					else if (Shape == Shape::OuterLeft) return 9726;
					else return 9728;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9730;
					else if (Shape == Shape::InnerLeft) return 9732;
					else if (Shape == Shape::InnerRight) return 9734;
					else if (Shape == Shape::OuterLeft) return 9736;
					else return 9738;
				else
					if (Shape == Shape::Straight) return 9740;
					else if (Shape == Shape::InnerLeft) return 9742;
					else if (Shape == Shape::InnerRight) return 9744;
					else if (Shape == Shape::OuterLeft) return 9746;
					else return 9748;
		}
		BlockState PolishedGraniteStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace Poppy
	{
		constexpr BlockState Poppy()
		{
			return 1413;
		}
	}
	namespace Potatoes
	{
		constexpr BlockState Potatoes(const unsigned char Age)
		{
			if (Age == 0) return 6338;
			else if (Age == 1) return 6339;
			else if (Age == 2) return 6340;
			else if (Age == 3) return 6341;
			else if (Age == 4) return 6342;
			else if (Age == 5) return 6343;
			else if (Age == 6) return 6344;
			else return 6345;
		}
		BlockState Potatoes();
		unsigned char Age(BlockState Block);
	}
	namespace PottedAcaciaSapling
	{
		constexpr BlockState PottedAcaciaSapling()
		{
			return 6310;
		}
	}
	namespace PottedAllium
	{
		constexpr BlockState PottedAllium()
		{
			return 6316;
		}
	}
	namespace PottedAzureBluet
	{
		constexpr BlockState PottedAzureBluet()
		{
			return 6317;
		}
	}
	namespace PottedBamboo
	{
		constexpr BlockState PottedBamboo()
		{
			return 9664;
		}
	}
	namespace PottedBirchSapling
	{
		constexpr BlockState PottedBirchSapling()
		{
			return 6308;
		}
	}
	namespace PottedBlueOrchid
	{
		constexpr BlockState PottedBlueOrchid()
		{
			return 6315;
		}
	}
	namespace PottedBrownMushroom
	{
		constexpr BlockState PottedBrownMushroom()
		{
			return 6327;
		}
	}
	namespace PottedCactus
	{
		constexpr BlockState PottedCactus()
		{
			return 6329;
		}
	}
	namespace PottedCornflower
	{
		constexpr BlockState PottedCornflower()
		{
			return 6323;
		}
	}
	namespace PottedCrimsonFungus
	{
		constexpr BlockState PottedCrimsonFungus()
		{
			return 15834;
		}
	}
	namespace PottedCrimsonRoots
	{
		constexpr BlockState PottedCrimsonRoots()
		{
			return 15836;
		}
	}
	namespace PottedDandelion
	{
		constexpr BlockState PottedDandelion()
		{
			return 6313;
		}
	}
	namespace PottedDarkOakSapling
	{
		constexpr BlockState PottedDarkOakSapling()
		{
			return 6311;
		}
	}
	namespace PottedDeadBush
	{
		constexpr BlockState PottedDeadBush()
		{
			return 6328;
		}
	}
	namespace PottedFern
	{
		constexpr BlockState PottedFern()
		{
			return 6312;
		}
	}
	namespace PottedJungleSapling
	{
		constexpr BlockState PottedJungleSapling()
		{
			return 6309;
		}
	}
	namespace PottedLilyOfTheValley
	{
		constexpr BlockState PottedLilyOfTheValley()
		{
			return 6324;
		}
	}
	namespace PottedOakSapling
	{
		constexpr BlockState PottedOakSapling()
		{
			return 6306;
		}
	}
	namespace PottedOrangeTulip
	{
		constexpr BlockState PottedOrangeTulip()
		{
			return 6319;
		}
	}
	namespace PottedOxeyeDaisy
	{
		constexpr BlockState PottedOxeyeDaisy()
		{
			return 6322;
		}
	}
	namespace PottedPinkTulip
	{
		constexpr BlockState PottedPinkTulip()
		{
			return 6321;
		}
	}
	namespace PottedPoppy
	{
		constexpr BlockState PottedPoppy()
		{
			return 6314;
		}
	}
	namespace PottedRedMushroom
	{
		constexpr BlockState PottedRedMushroom()
		{
			return 6326;
		}
	}
	namespace PottedRedTulip
	{
		constexpr BlockState PottedRedTulip()
		{
			return 6318;
		}
	}
	namespace PottedSpruceSapling
	{
		constexpr BlockState PottedSpruceSapling()
		{
			return 6307;
		}
	}
	namespace PottedWarpedFungus
	{
		constexpr BlockState PottedWarpedFungus()
		{
			return 15835;
		}
	}
	namespace PottedWarpedRoots
	{
		constexpr BlockState PottedWarpedRoots()
		{
			return 15837;
		}
	}
	namespace PottedWhiteTulip
	{
		constexpr BlockState PottedWhiteTulip()
		{
			return 6320;
		}
	}
	namespace PottedWitherRose
	{
		constexpr BlockState PottedWitherRose()
		{
			return 6325;
		}
	}
	namespace PoweredRail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth
		};
		constexpr BlockState PoweredRail(const bool Powered, const enum Shape Shape)
		{
			if (Powered)
				if (Shape == Shape::NorthSouth) return 1305;
				else if (Shape == Shape::EastWest) return 1306;
				else if (Shape == Shape::AscendingEast) return 1307;
				else if (Shape == Shape::AscendingWest) return 1308;
				else if (Shape == Shape::AscendingNorth) return 1309;
				else return 1310;
			else
				if (Shape == Shape::NorthSouth) return 1311;
				else if (Shape == Shape::EastWest) return 1312;
				else if (Shape == Shape::AscendingEast) return 1313;
				else if (Shape == Shape::AscendingWest) return 1314;
				else if (Shape == Shape::AscendingNorth) return 1315;
				else return 1316;
		}
		BlockState PoweredRail();
		bool Powered(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace Prismarine
	{
		constexpr BlockState Prismarine()
		{
			return 7601;
		}
	}
	namespace PrismarineBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState PrismarineBrickSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 7851;
			else if (Type == Type::Bottom) return 7853;
			else return 7855;
		}
		BlockState PrismarineBrickSlab();
		enum Type Type(BlockState Block);
	}
	namespace PrismarineBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState PrismarineBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7685;
					else if (Shape == Shape::InnerLeft) return 7687;
					else if (Shape == Shape::InnerRight) return 7689;
					else if (Shape == Shape::OuterLeft) return 7691;
					else return 7693;
				else
					if (Shape == Shape::Straight) return 7695;
					else if (Shape == Shape::InnerLeft) return 7697;
					else if (Shape == Shape::InnerRight) return 7699;
					else if (Shape == Shape::OuterLeft) return 7701;
					else return 7703;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7705;
					else if (Shape == Shape::InnerLeft) return 7707;
					else if (Shape == Shape::InnerRight) return 7709;
					else if (Shape == Shape::OuterLeft) return 7711;
					else return 7713;
				else
					if (Shape == Shape::Straight) return 7715;
					else if (Shape == Shape::InnerLeft) return 7717;
					else if (Shape == Shape::InnerRight) return 7719;
					else if (Shape == Shape::OuterLeft) return 7721;
					else return 7723;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7725;
					else if (Shape == Shape::InnerLeft) return 7727;
					else if (Shape == Shape::InnerRight) return 7729;
					else if (Shape == Shape::OuterLeft) return 7731;
					else return 7733;
				else
					if (Shape == Shape::Straight) return 7735;
					else if (Shape == Shape::InnerLeft) return 7737;
					else if (Shape == Shape::InnerRight) return 7739;
					else if (Shape == Shape::OuterLeft) return 7741;
					else return 7743;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7745;
					else if (Shape == Shape::InnerLeft) return 7747;
					else if (Shape == Shape::InnerRight) return 7749;
					else if (Shape == Shape::OuterLeft) return 7751;
					else return 7753;
				else
					if (Shape == Shape::Straight) return 7755;
					else if (Shape == Shape::InnerLeft) return 7757;
					else if (Shape == Shape::InnerRight) return 7759;
					else if (Shape == Shape::OuterLeft) return 7761;
					else return 7763;
		}
		BlockState PrismarineBrickStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace PrismarineBricks
	{
		constexpr BlockState PrismarineBricks()
		{
			return 7602;
		}
	}
	namespace PrismarineSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState PrismarineSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 7845;
			else if (Type == Type::Bottom) return 7847;
			else return 7849;
		}
		BlockState PrismarineSlab();
		enum Type Type(BlockState Block);
	}
	namespace PrismarineStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState PrismarineStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7605;
					else if (Shape == Shape::InnerLeft) return 7607;
					else if (Shape == Shape::InnerRight) return 7609;
					else if (Shape == Shape::OuterLeft) return 7611;
					else return 7613;
				else
					if (Shape == Shape::Straight) return 7615;
					else if (Shape == Shape::InnerLeft) return 7617;
					else if (Shape == Shape::InnerRight) return 7619;
					else if (Shape == Shape::OuterLeft) return 7621;
					else return 7623;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7625;
					else if (Shape == Shape::InnerLeft) return 7627;
					else if (Shape == Shape::InnerRight) return 7629;
					else if (Shape == Shape::OuterLeft) return 7631;
					else return 7633;
				else
					if (Shape == Shape::Straight) return 7635;
					else if (Shape == Shape::InnerLeft) return 7637;
					else if (Shape == Shape::InnerRight) return 7639;
					else if (Shape == Shape::OuterLeft) return 7641;
					else return 7643;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7645;
					else if (Shape == Shape::InnerLeft) return 7647;
					else if (Shape == Shape::InnerRight) return 7649;
					else if (Shape == Shape::OuterLeft) return 7651;
					else return 7653;
				else
					if (Shape == Shape::Straight) return 7655;
					else if (Shape == Shape::InnerLeft) return 7657;
					else if (Shape == Shape::InnerRight) return 7659;
					else if (Shape == Shape::OuterLeft) return 7661;
					else return 7663;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 7665;
					else if (Shape == Shape::InnerLeft) return 7667;
					else if (Shape == Shape::InnerRight) return 7669;
					else if (Shape == Shape::OuterLeft) return 7671;
					else return 7673;
				else
					if (Shape == Shape::Straight) return 7675;
					else if (Shape == Shape::InnerLeft) return 7677;
					else if (Shape == Shape::InnerRight) return 7679;
					else if (Shape == Shape::OuterLeft) return 7681;
					else return 7683;
		}
		BlockState PrismarineStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState PrismarineWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11194;
							else if (West == West::Low) return 11195;
							else return 11196;
						else
							if (West == West::None) return 11200;
							else if (West == West::Low) return 11201;
							else return 11202;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11206;
							else if (West == West::Low) return 11207;
							else return 11208;
						else
							if (West == West::None) return 11212;
							else if (West == West::Low) return 11213;
							else return 11214;
					else
						if (Up)
							if (West == West::None) return 11218;
							else if (West == West::Low) return 11219;
							else return 11220;
						else
							if (West == West::None) return 11224;
							else if (West == West::Low) return 11225;
							else return 11226;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11230;
							else if (West == West::Low) return 11231;
							else return 11232;
						else
							if (West == West::None) return 11236;
							else if (West == West::Low) return 11237;
							else return 11238;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11242;
							else if (West == West::Low) return 11243;
							else return 11244;
						else
							if (West == West::None) return 11248;
							else if (West == West::Low) return 11249;
							else return 11250;
					else
						if (Up)
							if (West == West::None) return 11254;
							else if (West == West::Low) return 11255;
							else return 11256;
						else
							if (West == West::None) return 11260;
							else if (West == West::Low) return 11261;
							else return 11262;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11266;
							else if (West == West::Low) return 11267;
							else return 11268;
						else
							if (West == West::None) return 11272;
							else if (West == West::Low) return 11273;
							else return 11274;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11278;
							else if (West == West::Low) return 11279;
							else return 11280;
						else
							if (West == West::None) return 11284;
							else if (West == West::Low) return 11285;
							else return 11286;
					else
						if (Up)
							if (West == West::None) return 11290;
							else if (West == West::Low) return 11291;
							else return 11292;
						else
							if (West == West::None) return 11296;
							else if (West == West::Low) return 11297;
							else return 11298;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11302;
							else if (West == West::Low) return 11303;
							else return 11304;
						else
							if (West == West::None) return 11308;
							else if (West == West::Low) return 11309;
							else return 11310;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11314;
							else if (West == West::Low) return 11315;
							else return 11316;
						else
							if (West == West::None) return 11320;
							else if (West == West::Low) return 11321;
							else return 11322;
					else
						if (Up)
							if (West == West::None) return 11326;
							else if (West == West::Low) return 11327;
							else return 11328;
						else
							if (West == West::None) return 11332;
							else if (West == West::Low) return 11333;
							else return 11334;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11338;
							else if (West == West::Low) return 11339;
							else return 11340;
						else
							if (West == West::None) return 11344;
							else if (West == West::Low) return 11345;
							else return 11346;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11350;
							else if (West == West::Low) return 11351;
							else return 11352;
						else
							if (West == West::None) return 11356;
							else if (West == West::Low) return 11357;
							else return 11358;
					else
						if (Up)
							if (West == West::None) return 11362;
							else if (West == West::Low) return 11363;
							else return 11364;
						else
							if (West == West::None) return 11368;
							else if (West == West::Low) return 11369;
							else return 11370;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11374;
							else if (West == West::Low) return 11375;
							else return 11376;
						else
							if (West == West::None) return 11380;
							else if (West == West::Low) return 11381;
							else return 11382;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11386;
							else if (West == West::Low) return 11387;
							else return 11388;
						else
							if (West == West::None) return 11392;
							else if (West == West::Low) return 11393;
							else return 11394;
					else
						if (Up)
							if (West == West::None) return 11398;
							else if (West == West::Low) return 11399;
							else return 11400;
						else
							if (West == West::None) return 11404;
							else if (West == West::Low) return 11405;
							else return 11406;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11410;
							else if (West == West::Low) return 11411;
							else return 11412;
						else
							if (West == West::None) return 11416;
							else if (West == West::Low) return 11417;
							else return 11418;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11422;
							else if (West == West::Low) return 11423;
							else return 11424;
						else
							if (West == West::None) return 11428;
							else if (West == West::Low) return 11429;
							else return 11430;
					else
						if (Up)
							if (West == West::None) return 11434;
							else if (West == West::Low) return 11435;
							else return 11436;
						else
							if (West == West::None) return 11440;
							else if (West == West::Low) return 11441;
							else return 11442;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11446;
							else if (West == West::Low) return 11447;
							else return 11448;
						else
							if (West == West::None) return 11452;
							else if (West == West::Low) return 11453;
							else return 11454;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11458;
							else if (West == West::Low) return 11459;
							else return 11460;
						else
							if (West == West::None) return 11464;
							else if (West == West::Low) return 11465;
							else return 11466;
					else
						if (Up)
							if (West == West::None) return 11470;
							else if (West == West::Low) return 11471;
							else return 11472;
						else
							if (West == West::None) return 11476;
							else if (West == West::Low) return 11477;
							else return 11478;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11482;
							else if (West == West::Low) return 11483;
							else return 11484;
						else
							if (West == West::None) return 11488;
							else if (West == West::Low) return 11489;
							else return 11490;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11494;
							else if (West == West::Low) return 11495;
							else return 11496;
						else
							if (West == West::None) return 11500;
							else if (West == West::Low) return 11501;
							else return 11502;
					else
						if (Up)
							if (West == West::None) return 11506;
							else if (West == West::Low) return 11507;
							else return 11508;
						else
							if (West == West::None) return 11512;
							else if (West == West::Low) return 11513;
							else return 11514;
		}
		BlockState PrismarineWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace Pumpkin
	{
		constexpr BlockState Pumpkin()
		{
			return 3998;
		}
	}
	namespace PumpkinStem
	{
		constexpr BlockState PumpkinStem(const unsigned char Age)
		{
			if (Age == 0) return 4772;
			else if (Age == 1) return 4773;
			else if (Age == 2) return 4774;
			else if (Age == 3) return 4775;
			else if (Age == 4) return 4776;
			else if (Age == 5) return 4777;
			else if (Age == 6) return 4778;
			else return 4779;
		}
		BlockState PumpkinStem();
		unsigned char Age(BlockState Block);
	}
	namespace PurpleBanner
	{
		constexpr BlockState PurpleBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 8057;
			else if (Rotation == 1) return 8058;
			else if (Rotation == 2) return 8059;
			else if (Rotation == 3) return 8060;
			else if (Rotation == 4) return 8061;
			else if (Rotation == 5) return 8062;
			else if (Rotation == 6) return 8063;
			else if (Rotation == 7) return 8064;
			else if (Rotation == 8) return 8065;
			else if (Rotation == 9) return 8066;
			else if (Rotation == 10) return 8067;
			else if (Rotation == 11) return 8068;
			else if (Rotation == 12) return 8069;
			else if (Rotation == 13) return 8070;
			else if (Rotation == 14) return 8071;
			else return 8072;
		}
		BlockState PurpleBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace PurpleBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState PurpleBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1209;
					else return 1210;
				else
					if (Part == Part::Head) return 1211;
					else return 1212;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1213;
					else return 1214;
				else
					if (Part == Part::Head) return 1215;
					else return 1216;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1217;
					else return 1218;
				else
					if (Part == Part::Head) return 1219;
					else return 1220;
			else
				if (Occupied)
					if (Part == Part::Head) return 1221;
					else return 1222;
				else
					if (Part == Part::Head) return 1223;
					else return 1224;
		}
		BlockState PurpleBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace PurpleCarpet
	{
		constexpr BlockState PurpleCarpet()
		{
			return 7876;
		}
	}
	namespace PurpleConcrete
	{
		constexpr BlockState PurpleConcrete()
		{
			return 9448;
		}
	}
	namespace PurpleConcretePowder
	{
		constexpr BlockState PurpleConcretePowder()
		{
			return 9464;
		}
	}
	namespace PurpleGlazedTerracotta
	{
		constexpr BlockState PurpleGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9414;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9415;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9416;
			else return 9417;
		}
		BlockState PurpleGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace PurpleShulkerBox
	{
		constexpr BlockState PurpleShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9338;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9339;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9340;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9341;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9342;
			else return 9343;
		}
		BlockState PurpleShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace PurpleStainedGlass
	{
		constexpr BlockState PurpleStainedGlass()
		{
			return 4105;
		}
	}
	namespace PurpleStainedGlassPane
	{
		constexpr BlockState PurpleStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7185;
						else return 7186;
					else
						if (West) return 7189;
						else return 7190;
				else
					if (South)
						if (West) return 7193;
						else return 7194;
					else
						if (West) return 7197;
						else return 7198;
			else
				if (North)
					if (South)
						if (West) return 7201;
						else return 7202;
					else
						if (West) return 7205;
						else return 7206;
				else
					if (South)
						if (West) return 7209;
						else return 7210;
					else
						if (West) return 7213;
						else return 7214;
		}
		BlockState PurpleStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace PurpleTerracotta
	{
		constexpr BlockState PurpleTerracotta()
		{
			return 6857;
		}
	}
	namespace PurpleWallBanner
	{
		constexpr BlockState PurpleWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8193;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8194;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8195;
			else return 8196;
		}
		BlockState PurpleWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace PurpleWool
	{
		constexpr BlockState PurpleWool()
		{
			return 1394;
		}
	}
	namespace PurpurBlock
	{
		constexpr BlockState PurpurBlock()
		{
			return 9134;
		}
	}
	namespace PurpurPillar
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState PurpurPillar(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 9135;
			else if (Axis == Axis::Y) return 9136;
			else return 9137;
		}
		BlockState PurpurPillar();
		enum Axis Axis(BlockState Block);
	}
	namespace PurpurSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState PurpurSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8409;
			else if (Type == Type::Bottom) return 8411;
			else return 8413;
		}
		BlockState PurpurSlab();
		enum Type Type(BlockState Block);
	}
	namespace PurpurStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState PurpurStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9139;
					else if (Shape == Shape::InnerLeft) return 9141;
					else if (Shape == Shape::InnerRight) return 9143;
					else if (Shape == Shape::OuterLeft) return 9145;
					else return 9147;
				else
					if (Shape == Shape::Straight) return 9149;
					else if (Shape == Shape::InnerLeft) return 9151;
					else if (Shape == Shape::InnerRight) return 9153;
					else if (Shape == Shape::OuterLeft) return 9155;
					else return 9157;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9159;
					else if (Shape == Shape::InnerLeft) return 9161;
					else if (Shape == Shape::InnerRight) return 9163;
					else if (Shape == Shape::OuterLeft) return 9165;
					else return 9167;
				else
					if (Shape == Shape::Straight) return 9169;
					else if (Shape == Shape::InnerLeft) return 9171;
					else if (Shape == Shape::InnerRight) return 9173;
					else if (Shape == Shape::OuterLeft) return 9175;
					else return 9177;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9179;
					else if (Shape == Shape::InnerLeft) return 9181;
					else if (Shape == Shape::InnerRight) return 9183;
					else if (Shape == Shape::OuterLeft) return 9185;
					else return 9187;
				else
					if (Shape == Shape::Straight) return 9189;
					else if (Shape == Shape::InnerLeft) return 9191;
					else if (Shape == Shape::InnerRight) return 9193;
					else if (Shape == Shape::OuterLeft) return 9195;
					else return 9197;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9199;
					else if (Shape == Shape::InnerLeft) return 9201;
					else if (Shape == Shape::InnerRight) return 9203;
					else if (Shape == Shape::OuterLeft) return 9205;
					else return 9207;
				else
					if (Shape == Shape::Straight) return 9209;
					else if (Shape == Shape::InnerLeft) return 9211;
					else if (Shape == Shape::InnerRight) return 9213;
					else if (Shape == Shape::OuterLeft) return 9215;
					else return 9217;
		}
		BlockState PurpurStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace QuartzBlock
	{
		constexpr BlockState QuartzBlock()
		{
			return 6738;
		}
	}
	namespace QuartzBricks
	{
		constexpr BlockState QuartzBricks()
		{
			return 17103;
		}
	}
	namespace QuartzPillar
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState QuartzPillar(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 6740;
			else if (Axis == Axis::Y) return 6741;
			else return 6742;
		}
		BlockState QuartzPillar();
		enum Axis Axis(BlockState Block);
	}
	namespace QuartzSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState QuartzSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8391;
			else if (Type == Type::Bottom) return 8393;
			else return 8395;
		}
		BlockState QuartzSlab();
		enum Type Type(BlockState Block);
	}
	namespace QuartzStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState QuartzStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 6744;
					else if (Shape == Shape::InnerLeft) return 6746;
					else if (Shape == Shape::InnerRight) return 6748;
					else if (Shape == Shape::OuterLeft) return 6750;
					else return 6752;
				else
					if (Shape == Shape::Straight) return 6754;
					else if (Shape == Shape::InnerLeft) return 6756;
					else if (Shape == Shape::InnerRight) return 6758;
					else if (Shape == Shape::OuterLeft) return 6760;
					else return 6762;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 6764;
					else if (Shape == Shape::InnerLeft) return 6766;
					else if (Shape == Shape::InnerRight) return 6768;
					else if (Shape == Shape::OuterLeft) return 6770;
					else return 6772;
				else
					if (Shape == Shape::Straight) return 6774;
					else if (Shape == Shape::InnerLeft) return 6776;
					else if (Shape == Shape::InnerRight) return 6778;
					else if (Shape == Shape::OuterLeft) return 6780;
					else return 6782;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 6784;
					else if (Shape == Shape::InnerLeft) return 6786;
					else if (Shape == Shape::InnerRight) return 6788;
					else if (Shape == Shape::OuterLeft) return 6790;
					else return 6792;
				else
					if (Shape == Shape::Straight) return 6794;
					else if (Shape == Shape::InnerLeft) return 6796;
					else if (Shape == Shape::InnerRight) return 6798;
					else if (Shape == Shape::OuterLeft) return 6800;
					else return 6802;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 6804;
					else if (Shape == Shape::InnerLeft) return 6806;
					else if (Shape == Shape::InnerRight) return 6808;
					else if (Shape == Shape::OuterLeft) return 6810;
					else return 6812;
				else
					if (Shape == Shape::Straight) return 6814;
					else if (Shape == Shape::InnerLeft) return 6816;
					else if (Shape == Shape::InnerRight) return 6818;
					else if (Shape == Shape::OuterLeft) return 6820;
					else return 6822;
		}
		BlockState QuartzStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace Rail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth,
			SouthEast,
			SouthWest,
			NorthWest,
			NorthEast
		};
		constexpr BlockState Rail(const enum Shape Shape)
		{
			if (Shape == Shape::NorthSouth) return 3645;
			else if (Shape == Shape::EastWest) return 3646;
			else if (Shape == Shape::AscendingEast) return 3647;
			else if (Shape == Shape::AscendingWest) return 3648;
			else if (Shape == Shape::AscendingNorth) return 3649;
			else if (Shape == Shape::AscendingSouth) return 3650;
			else if (Shape == Shape::SouthEast) return 3651;
			else if (Shape == Shape::SouthWest) return 3652;
			else if (Shape == Shape::NorthWest) return 3653;
			else return 3654;
		}
		BlockState Rail();
		enum Shape Shape(BlockState Block);
	}
	namespace RedBanner
	{
		constexpr BlockState RedBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 8121;
			else if (Rotation == 1) return 8122;
			else if (Rotation == 2) return 8123;
			else if (Rotation == 3) return 8124;
			else if (Rotation == 4) return 8125;
			else if (Rotation == 5) return 8126;
			else if (Rotation == 6) return 8127;
			else if (Rotation == 7) return 8128;
			else if (Rotation == 8) return 8129;
			else if (Rotation == 9) return 8130;
			else if (Rotation == 10) return 8131;
			else if (Rotation == 11) return 8132;
			else if (Rotation == 12) return 8133;
			else if (Rotation == 13) return 8134;
			else if (Rotation == 14) return 8135;
			else return 8136;
		}
		BlockState RedBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace RedBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState RedBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1273;
					else return 1274;
				else
					if (Part == Part::Head) return 1275;
					else return 1276;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1277;
					else return 1278;
				else
					if (Part == Part::Head) return 1279;
					else return 1280;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1281;
					else return 1282;
				else
					if (Part == Part::Head) return 1283;
					else return 1284;
			else
				if (Occupied)
					if (Part == Part::Head) return 1285;
					else return 1286;
				else
					if (Part == Part::Head) return 1287;
					else return 1288;
		}
		BlockState RedBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace RedCarpet
	{
		constexpr BlockState RedCarpet()
		{
			return 7880;
		}
	}
	namespace RedConcrete
	{
		constexpr BlockState RedConcrete()
		{
			return 9452;
		}
	}
	namespace RedConcretePowder
	{
		constexpr BlockState RedConcretePowder()
		{
			return 9468;
		}
	}
	namespace RedGlazedTerracotta
	{
		constexpr BlockState RedGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9430;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9431;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9432;
			else return 9433;
		}
		BlockState RedGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace RedMushroom
	{
		constexpr BlockState RedMushroom()
		{
			return 1426;
		}
	}
	namespace RedMushroomBlock
	{
		constexpr BlockState RedMushroomBlock(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West)
		{
			if (Down)
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 4569;
								else return 4570;
							else
								if (West) return 4571;
								else return 4572;
						else
							if (Up)
								if (West) return 4573;
								else return 4574;
							else
								if (West) return 4575;
								else return 4576;
					else
						if (South)
							if (Up)
								if (West) return 4577;
								else return 4578;
							else
								if (West) return 4579;
								else return 4580;
						else
							if (Up)
								if (West) return 4581;
								else return 4582;
							else
								if (West) return 4583;
								else return 4584;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 4585;
								else return 4586;
							else
								if (West) return 4587;
								else return 4588;
						else
							if (Up)
								if (West) return 4589;
								else return 4590;
							else
								if (West) return 4591;
								else return 4592;
					else
						if (South)
							if (Up)
								if (West) return 4593;
								else return 4594;
							else
								if (West) return 4595;
								else return 4596;
						else
							if (Up)
								if (West) return 4597;
								else return 4598;
							else
								if (West) return 4599;
								else return 4600;
			else
				if (East)
					if (North)
						if (South)
							if (Up)
								if (West) return 4601;
								else return 4602;
							else
								if (West) return 4603;
								else return 4604;
						else
							if (Up)
								if (West) return 4605;
								else return 4606;
							else
								if (West) return 4607;
								else return 4608;
					else
						if (South)
							if (Up)
								if (West) return 4609;
								else return 4610;
							else
								if (West) return 4611;
								else return 4612;
						else
							if (Up)
								if (West) return 4613;
								else return 4614;
							else
								if (West) return 4615;
								else return 4616;
				else
					if (North)
						if (South)
							if (Up)
								if (West) return 4617;
								else return 4618;
							else
								if (West) return 4619;
								else return 4620;
						else
							if (Up)
								if (West) return 4621;
								else return 4622;
							else
								if (West) return 4623;
								else return 4624;
					else
						if (South)
							if (Up)
								if (West) return 4625;
								else return 4626;
							else
								if (West) return 4627;
								else return 4628;
						else
							if (Up)
								if (West) return 4629;
								else return 4630;
							else
								if (West) return 4631;
								else return 4632;
		}
		BlockState RedMushroomBlock();
		bool Down(BlockState Block);
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool Up(BlockState Block);
		bool West(BlockState Block);
	}
	namespace RedNetherBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState RedNetherBrickSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10850;
			else if (Type == Type::Bottom) return 10852;
			else return 10854;
		}
		BlockState RedNetherBrickSlab();
		enum Type Type(BlockState Block);
	}
	namespace RedNetherBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState RedNetherBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10550;
					else if (Shape == Shape::InnerLeft) return 10552;
					else if (Shape == Shape::InnerRight) return 10554;
					else if (Shape == Shape::OuterLeft) return 10556;
					else return 10558;
				else
					if (Shape == Shape::Straight) return 10560;
					else if (Shape == Shape::InnerLeft) return 10562;
					else if (Shape == Shape::InnerRight) return 10564;
					else if (Shape == Shape::OuterLeft) return 10566;
					else return 10568;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10570;
					else if (Shape == Shape::InnerLeft) return 10572;
					else if (Shape == Shape::InnerRight) return 10574;
					else if (Shape == Shape::OuterLeft) return 10576;
					else return 10578;
				else
					if (Shape == Shape::Straight) return 10580;
					else if (Shape == Shape::InnerLeft) return 10582;
					else if (Shape == Shape::InnerRight) return 10584;
					else if (Shape == Shape::OuterLeft) return 10586;
					else return 10588;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10590;
					else if (Shape == Shape::InnerLeft) return 10592;
					else if (Shape == Shape::InnerRight) return 10594;
					else if (Shape == Shape::OuterLeft) return 10596;
					else return 10598;
				else
					if (Shape == Shape::Straight) return 10600;
					else if (Shape == Shape::InnerLeft) return 10602;
					else if (Shape == Shape::InnerRight) return 10604;
					else if (Shape == Shape::OuterLeft) return 10606;
					else return 10608;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10610;
					else if (Shape == Shape::InnerLeft) return 10612;
					else if (Shape == Shape::InnerRight) return 10614;
					else if (Shape == Shape::OuterLeft) return 10616;
					else return 10618;
				else
					if (Shape == Shape::Straight) return 10620;
					else if (Shape == Shape::InnerLeft) return 10622;
					else if (Shape == Shape::InnerRight) return 10624;
					else if (Shape == Shape::OuterLeft) return 10626;
					else return 10628;
		}
		BlockState RedNetherBrickStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState RedNetherBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13462;
							else if (West == West::Low) return 13463;
							else return 13464;
						else
							if (West == West::None) return 13468;
							else if (West == West::Low) return 13469;
							else return 13470;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13474;
							else if (West == West::Low) return 13475;
							else return 13476;
						else
							if (West == West::None) return 13480;
							else if (West == West::Low) return 13481;
							else return 13482;
					else
						if (Up)
							if (West == West::None) return 13486;
							else if (West == West::Low) return 13487;
							else return 13488;
						else
							if (West == West::None) return 13492;
							else if (West == West::Low) return 13493;
							else return 13494;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13498;
							else if (West == West::Low) return 13499;
							else return 13500;
						else
							if (West == West::None) return 13504;
							else if (West == West::Low) return 13505;
							else return 13506;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13510;
							else if (West == West::Low) return 13511;
							else return 13512;
						else
							if (West == West::None) return 13516;
							else if (West == West::Low) return 13517;
							else return 13518;
					else
						if (Up)
							if (West == West::None) return 13522;
							else if (West == West::Low) return 13523;
							else return 13524;
						else
							if (West == West::None) return 13528;
							else if (West == West::Low) return 13529;
							else return 13530;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13534;
							else if (West == West::Low) return 13535;
							else return 13536;
						else
							if (West == West::None) return 13540;
							else if (West == West::Low) return 13541;
							else return 13542;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13546;
							else if (West == West::Low) return 13547;
							else return 13548;
						else
							if (West == West::None) return 13552;
							else if (West == West::Low) return 13553;
							else return 13554;
					else
						if (Up)
							if (West == West::None) return 13558;
							else if (West == West::Low) return 13559;
							else return 13560;
						else
							if (West == West::None) return 13564;
							else if (West == West::Low) return 13565;
							else return 13566;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13570;
							else if (West == West::Low) return 13571;
							else return 13572;
						else
							if (West == West::None) return 13576;
							else if (West == West::Low) return 13577;
							else return 13578;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13582;
							else if (West == West::Low) return 13583;
							else return 13584;
						else
							if (West == West::None) return 13588;
							else if (West == West::Low) return 13589;
							else return 13590;
					else
						if (Up)
							if (West == West::None) return 13594;
							else if (West == West::Low) return 13595;
							else return 13596;
						else
							if (West == West::None) return 13600;
							else if (West == West::Low) return 13601;
							else return 13602;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13606;
							else if (West == West::Low) return 13607;
							else return 13608;
						else
							if (West == West::None) return 13612;
							else if (West == West::Low) return 13613;
							else return 13614;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13618;
							else if (West == West::Low) return 13619;
							else return 13620;
						else
							if (West == West::None) return 13624;
							else if (West == West::Low) return 13625;
							else return 13626;
					else
						if (Up)
							if (West == West::None) return 13630;
							else if (West == West::Low) return 13631;
							else return 13632;
						else
							if (West == West::None) return 13636;
							else if (West == West::Low) return 13637;
							else return 13638;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13642;
							else if (West == West::Low) return 13643;
							else return 13644;
						else
							if (West == West::None) return 13648;
							else if (West == West::Low) return 13649;
							else return 13650;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13654;
							else if (West == West::Low) return 13655;
							else return 13656;
						else
							if (West == West::None) return 13660;
							else if (West == West::Low) return 13661;
							else return 13662;
					else
						if (Up)
							if (West == West::None) return 13666;
							else if (West == West::Low) return 13667;
							else return 13668;
						else
							if (West == West::None) return 13672;
							else if (West == West::Low) return 13673;
							else return 13674;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13678;
							else if (West == West::Low) return 13679;
							else return 13680;
						else
							if (West == West::None) return 13684;
							else if (West == West::Low) return 13685;
							else return 13686;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13690;
							else if (West == West::Low) return 13691;
							else return 13692;
						else
							if (West == West::None) return 13696;
							else if (West == West::Low) return 13697;
							else return 13698;
					else
						if (Up)
							if (West == West::None) return 13702;
							else if (West == West::Low) return 13703;
							else return 13704;
						else
							if (West == West::None) return 13708;
							else if (West == West::Low) return 13709;
							else return 13710;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13714;
							else if (West == West::Low) return 13715;
							else return 13716;
						else
							if (West == West::None) return 13720;
							else if (West == West::Low) return 13721;
							else return 13722;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13726;
							else if (West == West::Low) return 13727;
							else return 13728;
						else
							if (West == West::None) return 13732;
							else if (West == West::Low) return 13733;
							else return 13734;
					else
						if (Up)
							if (West == West::None) return 13738;
							else if (West == West::Low) return 13739;
							else return 13740;
						else
							if (West == West::None) return 13744;
							else if (West == West::Low) return 13745;
							else return 13746;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13750;
							else if (West == West::Low) return 13751;
							else return 13752;
						else
							if (West == West::None) return 13756;
							else if (West == West::Low) return 13757;
							else return 13758;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13762;
							else if (West == West::Low) return 13763;
							else return 13764;
						else
							if (West == West::None) return 13768;
							else if (West == West::Low) return 13769;
							else return 13770;
					else
						if (Up)
							if (West == West::None) return 13774;
							else if (West == West::Low) return 13775;
							else return 13776;
						else
							if (West == West::None) return 13780;
							else if (West == West::Low) return 13781;
							else return 13782;
		}
		BlockState RedNetherBrickWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace RedNetherBricks
	{
		constexpr BlockState RedNetherBricks()
		{
			return 9255;
		}
	}
	namespace RedSand
	{
		constexpr BlockState RedSand()
		{
			return 67;
		}
	}
	namespace RedSandstone
	{
		constexpr BlockState RedSandstone()
		{
			return 8217;
		}
	}
	namespace RedSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState RedSandstoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8397;
			else if (Type == Type::Bottom) return 8399;
			else return 8401;
		}
		BlockState RedSandstoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace RedSandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState RedSandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 8221;
					else if (Shape == Shape::InnerLeft) return 8223;
					else if (Shape == Shape::InnerRight) return 8225;
					else if (Shape == Shape::OuterLeft) return 8227;
					else return 8229;
				else
					if (Shape == Shape::Straight) return 8231;
					else if (Shape == Shape::InnerLeft) return 8233;
					else if (Shape == Shape::InnerRight) return 8235;
					else if (Shape == Shape::OuterLeft) return 8237;
					else return 8239;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 8241;
					else if (Shape == Shape::InnerLeft) return 8243;
					else if (Shape == Shape::InnerRight) return 8245;
					else if (Shape == Shape::OuterLeft) return 8247;
					else return 8249;
				else
					if (Shape == Shape::Straight) return 8251;
					else if (Shape == Shape::InnerLeft) return 8253;
					else if (Shape == Shape::InnerRight) return 8255;
					else if (Shape == Shape::OuterLeft) return 8257;
					else return 8259;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 8261;
					else if (Shape == Shape::InnerLeft) return 8263;
					else if (Shape == Shape::InnerRight) return 8265;
					else if (Shape == Shape::OuterLeft) return 8267;
					else return 8269;
				else
					if (Shape == Shape::Straight) return 8271;
					else if (Shape == Shape::InnerLeft) return 8273;
					else if (Shape == Shape::InnerRight) return 8275;
					else if (Shape == Shape::OuterLeft) return 8277;
					else return 8279;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 8281;
					else if (Shape == Shape::InnerLeft) return 8283;
					else if (Shape == Shape::InnerRight) return 8285;
					else if (Shape == Shape::OuterLeft) return 8287;
					else return 8289;
				else
					if (Shape == Shape::Straight) return 8291;
					else if (Shape == Shape::InnerLeft) return 8293;
					else if (Shape == Shape::InnerRight) return 8295;
					else if (Shape == Shape::OuterLeft) return 8297;
					else return 8299;
		}
		BlockState RedSandstoneStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState RedSandstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11518;
							else if (West == West::Low) return 11519;
							else return 11520;
						else
							if (West == West::None) return 11524;
							else if (West == West::Low) return 11525;
							else return 11526;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11530;
							else if (West == West::Low) return 11531;
							else return 11532;
						else
							if (West == West::None) return 11536;
							else if (West == West::Low) return 11537;
							else return 11538;
					else
						if (Up)
							if (West == West::None) return 11542;
							else if (West == West::Low) return 11543;
							else return 11544;
						else
							if (West == West::None) return 11548;
							else if (West == West::Low) return 11549;
							else return 11550;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11554;
							else if (West == West::Low) return 11555;
							else return 11556;
						else
							if (West == West::None) return 11560;
							else if (West == West::Low) return 11561;
							else return 11562;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11566;
							else if (West == West::Low) return 11567;
							else return 11568;
						else
							if (West == West::None) return 11572;
							else if (West == West::Low) return 11573;
							else return 11574;
					else
						if (Up)
							if (West == West::None) return 11578;
							else if (West == West::Low) return 11579;
							else return 11580;
						else
							if (West == West::None) return 11584;
							else if (West == West::Low) return 11585;
							else return 11586;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11590;
							else if (West == West::Low) return 11591;
							else return 11592;
						else
							if (West == West::None) return 11596;
							else if (West == West::Low) return 11597;
							else return 11598;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11602;
							else if (West == West::Low) return 11603;
							else return 11604;
						else
							if (West == West::None) return 11608;
							else if (West == West::Low) return 11609;
							else return 11610;
					else
						if (Up)
							if (West == West::None) return 11614;
							else if (West == West::Low) return 11615;
							else return 11616;
						else
							if (West == West::None) return 11620;
							else if (West == West::Low) return 11621;
							else return 11622;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11626;
							else if (West == West::Low) return 11627;
							else return 11628;
						else
							if (West == West::None) return 11632;
							else if (West == West::Low) return 11633;
							else return 11634;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11638;
							else if (West == West::Low) return 11639;
							else return 11640;
						else
							if (West == West::None) return 11644;
							else if (West == West::Low) return 11645;
							else return 11646;
					else
						if (Up)
							if (West == West::None) return 11650;
							else if (West == West::Low) return 11651;
							else return 11652;
						else
							if (West == West::None) return 11656;
							else if (West == West::Low) return 11657;
							else return 11658;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11662;
							else if (West == West::Low) return 11663;
							else return 11664;
						else
							if (West == West::None) return 11668;
							else if (West == West::Low) return 11669;
							else return 11670;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11674;
							else if (West == West::Low) return 11675;
							else return 11676;
						else
							if (West == West::None) return 11680;
							else if (West == West::Low) return 11681;
							else return 11682;
					else
						if (Up)
							if (West == West::None) return 11686;
							else if (West == West::Low) return 11687;
							else return 11688;
						else
							if (West == West::None) return 11692;
							else if (West == West::Low) return 11693;
							else return 11694;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11698;
							else if (West == West::Low) return 11699;
							else return 11700;
						else
							if (West == West::None) return 11704;
							else if (West == West::Low) return 11705;
							else return 11706;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11710;
							else if (West == West::Low) return 11711;
							else return 11712;
						else
							if (West == West::None) return 11716;
							else if (West == West::Low) return 11717;
							else return 11718;
					else
						if (Up)
							if (West == West::None) return 11722;
							else if (West == West::Low) return 11723;
							else return 11724;
						else
							if (West == West::None) return 11728;
							else if (West == West::Low) return 11729;
							else return 11730;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11734;
							else if (West == West::Low) return 11735;
							else return 11736;
						else
							if (West == West::None) return 11740;
							else if (West == West::Low) return 11741;
							else return 11742;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11746;
							else if (West == West::Low) return 11747;
							else return 11748;
						else
							if (West == West::None) return 11752;
							else if (West == West::Low) return 11753;
							else return 11754;
					else
						if (Up)
							if (West == West::None) return 11758;
							else if (West == West::Low) return 11759;
							else return 11760;
						else
							if (West == West::None) return 11764;
							else if (West == West::Low) return 11765;
							else return 11766;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11770;
							else if (West == West::Low) return 11771;
							else return 11772;
						else
							if (West == West::None) return 11776;
							else if (West == West::Low) return 11777;
							else return 11778;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11782;
							else if (West == West::Low) return 11783;
							else return 11784;
						else
							if (West == West::None) return 11788;
							else if (West == West::Low) return 11789;
							else return 11790;
					else
						if (Up)
							if (West == West::None) return 11794;
							else if (West == West::Low) return 11795;
							else return 11796;
						else
							if (West == West::None) return 11800;
							else if (West == West::Low) return 11801;
							else return 11802;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 11806;
							else if (West == West::Low) return 11807;
							else return 11808;
						else
							if (West == West::None) return 11812;
							else if (West == West::Low) return 11813;
							else return 11814;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 11818;
							else if (West == West::Low) return 11819;
							else return 11820;
						else
							if (West == West::None) return 11824;
							else if (West == West::Low) return 11825;
							else return 11826;
					else
						if (Up)
							if (West == West::None) return 11830;
							else if (West == West::Low) return 11831;
							else return 11832;
						else
							if (West == West::None) return 11836;
							else if (West == West::Low) return 11837;
							else return 11838;
		}
		BlockState RedSandstoneWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace RedShulkerBox
	{
		constexpr BlockState RedShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9362;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9363;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9364;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9365;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9366;
			else return 9367;
		}
		BlockState RedShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace RedStainedGlass
	{
		constexpr BlockState RedStainedGlass()
		{
			return 4109;
		}
	}
	namespace RedStainedGlassPane
	{
		constexpr BlockState RedStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 7313;
						else return 7314;
					else
						if (West) return 7317;
						else return 7318;
				else
					if (South)
						if (West) return 7321;
						else return 7322;
					else
						if (West) return 7325;
						else return 7326;
			else
				if (North)
					if (South)
						if (West) return 7329;
						else return 7330;
					else
						if (West) return 7333;
						else return 7334;
				else
					if (South)
						if (West) return 7337;
						else return 7338;
					else
						if (West) return 7341;
						else return 7342;
		}
		BlockState RedStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace RedTerracotta
	{
		constexpr BlockState RedTerracotta()
		{
			return 6861;
		}
	}
	namespace RedTulip
	{
		constexpr BlockState RedTulip()
		{
			return 1417;
		}
	}
	namespace RedWallBanner
	{
		constexpr BlockState RedWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8209;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8210;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8211;
			else return 8212;
		}
		BlockState RedWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace RedWool
	{
		constexpr BlockState RedWool()
		{
			return 1398;
		}
	}
	namespace RedstoneBlock
	{
		constexpr BlockState RedstoneBlock()
		{
			return 6726;
		}
	}
	namespace RedstoneLamp
	{
		constexpr BlockState RedstoneLamp(const bool Lit)
		{
			if (Lit) return 5156;
			else return 5157;
		}
		BlockState RedstoneLamp();
		bool Lit(BlockState Block);
	}
	namespace RedstoneOre
	{
		constexpr BlockState RedstoneOre(const bool Lit)
		{
			if (Lit) return 3885;
			else return 3886;
		}
		BlockState RedstoneOre();
		bool Lit(BlockState Block);
	}
	namespace RedstoneTorch
	{
		constexpr BlockState RedstoneTorch(const bool Lit)
		{
			if (Lit) return 3887;
			else return 3888;
		}
		BlockState RedstoneTorch();
		bool Lit(BlockState Block);
	}
	namespace RedstoneWallTorch
	{
		constexpr BlockState RedstoneWallTorch(const eBlockFace Facing, const bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Lit) return 3889;
				else return 3890;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Lit) return 3891;
				else return 3892;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Lit) return 3893;
				else return 3894;
			else
				if (Lit) return 3895;
				else return 3896;
		}
		BlockState RedstoneWallTorch();
		eBlockFace Facing(BlockState Block);
		bool Lit(BlockState Block);
	}
	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 BlockState RedstoneWire(const enum East East, const enum North North, const unsigned char Power, const enum South South, const enum West West)
		{
			if (East == East::Up)
				if (North == North::Up)
					if (Power == 0)
						if (South == South::Up)
							if (West == West::Up) return 2058;
							else if (West == West::Side) return 2059;
							else return 2060;
						else if (South == South::Side)
							if (West == West::Up) return 2061;
							else if (West == West::Side) return 2062;
							else return 2063;
						else
							if (West == West::Up) return 2064;
							else if (West == West::Side) return 2065;
							else return 2066;
					else if (Power == 1)
						if (South == South::Up)
							if (West == West::Up) return 2067;
							else if (West == West::Side) return 2068;
							else return 2069;
						else if (South == South::Side)
							if (West == West::Up) return 2070;
							else if (West == West::Side) return 2071;
							else return 2072;
						else
							if (West == West::Up) return 2073;
							else if (West == West::Side) return 2074;
							else return 2075;
					else if (Power == 2)
						if (South == South::Up)
							if (West == West::Up) return 2076;
							else if (West == West::Side) return 2077;
							else return 2078;
						else if (South == South::Side)
							if (West == West::Up) return 2079;
							else if (West == West::Side) return 2080;
							else return 2081;
						else
							if (West == West::Up) return 2082;
							else if (West == West::Side) return 2083;
							else return 2084;
					else if (Power == 3)
						if (South == South::Up)
							if (West == West::Up) return 2085;
							else if (West == West::Side) return 2086;
							else return 2087;
						else if (South == South::Side)
							if (West == West::Up) return 2088;
							else if (West == West::Side) return 2089;
							else return 2090;
						else
							if (West == West::Up) return 2091;
							else if (West == West::Side) return 2092;
							else return 2093;
					else if (Power == 4)
						if (South == South::Up)
							if (West == West::Up) return 2094;
							else if (West == West::Side) return 2095;
							else return 2096;
						else if (South == South::Side)
							if (West == West::Up) return 2097;
							else if (West == West::Side) return 2098;
							else return 2099;
						else
							if (West == West::Up) return 2100;
							else if (West == West::Side) return 2101;
							else return 2102;
					else if (Power == 5)
						if (South == South::Up)
							if (West == West::Up) return 2103;
							else if (West == West::Side) return 2104;
							else return 2105;
						else if (South == South::Side)
							if (West == West::Up) return 2106;
							else if (West == West::Side) return 2107;
							else return 2108;
						else
							if (West == West::Up) return 2109;
							else if (West == West::Side) return 2110;
							else return 2111;
					else if (Power == 6)
						if (South == South::Up)
							if (West == West::Up) return 2112;
							else if (West == West::Side) return 2113;
							else return 2114;
						else if (South == South::Side)
							if (West == West::Up) return 2115;
							else if (West == West::Side) return 2116;
							else return 2117;
						else
							if (West == West::Up) return 2118;
							else if (West == West::Side) return 2119;
							else return 2120;
					else if (Power == 7)
						if (South == South::Up)
							if (West == West::Up) return 2121;
							else if (West == West::Side) return 2122;
							else return 2123;
						else if (South == South::Side)
							if (West == West::Up) return 2124;
							else if (West == West::Side) return 2125;
							else return 2126;
						else
							if (West == West::Up) return 2127;
							else if (West == West::Side) return 2128;
							else return 2129;
					else if (Power == 8)
						if (South == South::Up)
							if (West == West::Up) return 2130;
							else if (West == West::Side) return 2131;
							else return 2132;
						else if (South == South::Side)
							if (West == West::Up) return 2133;
							else if (West == West::Side) return 2134;
							else return 2135;
						else
							if (West == West::Up) return 2136;
							else if (West == West::Side) return 2137;
							else return 2138;
					else if (Power == 9)
						if (South == South::Up)
							if (West == West::Up) return 2139;
							else if (West == West::Side) return 2140;
							else return 2141;
						else if (South == South::Side)
							if (West == West::Up) return 2142;
							else if (West == West::Side) return 2143;
							else return 2144;
						else
							if (West == West::Up) return 2145;
							else if (West == West::Side) return 2146;
							else return 2147;
					else if (Power == 10)
						if (South == South::Up)
							if (West == West::Up) return 2148;
							else if (West == West::Side) return 2149;
							else return 2150;
						else if (South == South::Side)
							if (West == West::Up) return 2151;
							else if (West == West::Side) return 2152;
							else return 2153;
						else
							if (West == West::Up) return 2154;
							else if (West == West::Side) return 2155;
							else return 2156;
					else if (Power == 11)
						if (South == South::Up)
							if (West == West::Up) return 2157;
							else if (West == West::Side) return 2158;
							else return 2159;
						else if (South == South::Side)
							if (West == West::Up) return 2160;
							else if (West == West::Side) return 2161;
							else return 2162;
						else
							if (West == West::Up) return 2163;
							else if (West == West::Side) return 2164;
							else return 2165;
					else if (Power == 12)
						if (South == South::Up)
							if (West == West::Up) return 2166;
							else if (West == West::Side) return 2167;
							else return 2168;
						else if (South == South::Side)
							if (West == West::Up) return 2169;
							else if (West == West::Side) return 2170;
							else return 2171;
						else
							if (West == West::Up) return 2172;
							else if (West == West::Side) return 2173;
							else return 2174;
					else if (Power == 13)
						if (South == South::Up)
							if (West == West::Up) return 2175;
							else if (West == West::Side) return 2176;
							else return 2177;
						else if (South == South::Side)
							if (West == West::Up) return 2178;
							else if (West == West::Side) return 2179;
							else return 2180;
						else
							if (West == West::Up) return 2181;
							else if (West == West::Side) return 2182;
							else return 2183;
					else if (Power == 14)
						if (South == South::Up)
							if (West == West::Up) return 2184;
							else if (West == West::Side) return 2185;
							else return 2186;
						else if (South == South::Side)
							if (West == West::Up) return 2187;
							else if (West == West::Side) return 2188;
							else return 2189;
						else
							if (West == West::Up) return 2190;
							else if (West == West::Side) return 2191;
							else return 2192;
					else
						if (South == South::Up)
							if (West == West::Up) return 2193;
							else if (West == West::Side) return 2194;
							else return 2195;
						else if (South == South::Side)
							if (West == West::Up) return 2196;
							else if (West == West::Side) return 2197;
							else return 2198;
						else
							if (West == West::Up) return 2199;
							else if (West == West::Side) return 2200;
							else return 2201;
				else if (North == North::Side)
					if (Power == 0)
						if (South == South::Up)
							if (West == West::Up) return 2202;
							else if (West == West::Side) return 2203;
							else return 2204;
						else if (South == South::Side)
							if (West == West::Up) return 2205;
							else if (West == West::Side) return 2206;
							else return 2207;
						else
							if (West == West::Up) return 2208;
							else if (West == West::Side) return 2209;
							else return 2210;
					else if (Power == 1)
						if (South == South::Up)
							if (West == West::Up) return 2211;
							else if (West == West::Side) return 2212;
							else return 2213;
						else if (South == South::Side)
							if (West == West::Up) return 2214;
							else if (West == West::Side) return 2215;
							else return 2216;
						else
							if (West == West::Up) return 2217;
							else if (West == West::Side) return 2218;
							else return 2219;
					else if (Power == 2)
						if (South == South::Up)
							if (West == West::Up) return 2220;
							else if (West == West::Side) return 2221;
							else return 2222;
						else if (South == South::Side)
							if (West == West::Up) return 2223;
							else if (West == West::Side) return 2224;
							else return 2225;
						else
							if (West == West::Up) return 2226;
							else if (West == West::Side) return 2227;
							else return 2228;
					else if (Power == 3)
						if (South == South::Up)
							if (West == West::Up) return 2229;
							else if (West == West::Side) return 2230;
							else return 2231;
						else if (South == South::Side)
							if (West == West::Up) return 2232;
							else if (West == West::Side) return 2233;
							else return 2234;
						else
							if (West == West::Up) return 2235;
							else if (West == West::Side) return 2236;
							else return 2237;
					else if (Power == 4)
						if (South == South::Up)
							if (West == West::Up) return 2238;
							else if (West == West::Side) return 2239;
							else return 2240;
						else if (South == South::Side)
							if (West == West::Up) return 2241;
							else if (West == West::Side) return 2242;
							else return 2243;
						else
							if (West == West::Up) return 2244;
							else if (West == West::Side) return 2245;
							else return 2246;
					else if (Power == 5)
						if (South == South::Up)
							if (West == West::Up) return 2247;
							else if (West == West::Side) return 2248;
							else return 2249;
						else if (South == South::Side)
							if (West == West::Up) return 2250;
							else if (West == West::Side) return 2251;
							else return 2252;
						else
							if (West == West::Up) return 2253;
							else if (West == West::Side) return 2254;
							else return 2255;
					else if (Power == 6)
						if (South == South::Up)
							if (West == West::Up) return 2256;
							else if (West == West::Side) return 2257;
							else return 2258;
						else if (South == South::Side)
							if (West == West::Up) return 2259;
							else if (West == West::Side) return 2260;
							else return 2261;
						else
							if (West == West::Up) return 2262;
							else if (West == West::Side) return 2263;
							else return 2264;
					else if (Power == 7)
						if (South == South::Up)
							if (West == West::Up) return 2265;
							else if (West == West::Side) return 2266;
							else return 2267;
						else if (South == South::Side)
							if (West == West::Up) return 2268;
							else if (West == West::Side) return 2269;
							else return 2270;
						else
							if (West == West::Up) return 2271;
							else if (West == West::Side) return 2272;
							else return 2273;
					else if (Power == 8)
						if (South == South::Up)
							if (West == West::Up) return 2274;
							else if (West == West::Side) return 2275;
							else return 2276;
						else if (South == South::Side)
							if (West == West::Up) return 2277;
							else if (West == West::Side) return 2278;
							else return 2279;
						else
							if (West == West::Up) return 2280;
							else if (West == West::Side) return 2281;
							else return 2282;
					else if (Power == 9)
						if (South == South::Up)
							if (West == West::Up) return 2283;
							else if (West == West::Side) return 2284;
							else return 2285;
						else if (South == South::Side)
							if (West == West::Up) return 2286;
							else if (West == West::Side) return 2287;
							else return 2288;
						else
							if (West == West::Up) return 2289;
							else if (West == West::Side) return 2290;
							else return 2291;
					else if (Power == 10)
						if (South == South::Up)
							if (West == West::Up) return 2292;
							else if (West == West::Side) return 2293;
							else return 2294;
						else if (South == South::Side)
							if (West == West::Up) return 2295;
							else if (West == West::Side) return 2296;
							else return 2297;
						else
							if (West == West::Up) return 2298;
							else if (West == West::Side) return 2299;
							else return 2300;
					else if (Power == 11)
						if (South == South::Up)
							if (West == West::Up) return 2301;
							else if (West == West::Side) return 2302;
							else return 2303;
						else if (South == South::Side)
							if (West == West::Up) return 2304;
							else if (West == West::Side) return 2305;
							else return 2306;
						else
							if (West == West::Up) return 2307;
							else if (West == West::Side) return 2308;
							else return 2309;
					else if (Power == 12)
						if (South == South::Up)
							if (West == West::Up) return 2310;
							else if (West == West::Side) return 2311;
							else return 2312;
						else if (South == South::Side)
							if (West == West::Up) return 2313;
							else if (West == West::Side) return 2314;
							else return 2315;
						else
							if (West == West::Up) return 2316;
							else if (West == West::Side) return 2317;
							else return 2318;
					else if (Power == 13)
						if (South == South::Up)
							if (West == West::Up) return 2319;
							else if (West == West::Side) return 2320;
							else return 2321;
						else if (South == South::Side)
							if (West == West::Up) return 2322;
							else if (West == West::Side) return 2323;
							else return 2324;
						else
							if (West == West::Up) return 2325;
							else if (West == West::Side) return 2326;
							else return 2327;
					else if (Power == 14)
						if (South == South::Up)
							if (West == West::Up) return 2328;
							else if (West == West::Side) return 2329;
							else return 2330;
						else if (South == South::Side)
							if (West == West::Up) return 2331;
							else if (West == West::Side) return 2332;
							else return 2333;
						else
							if (West == West::Up) return 2334;
							else if (West == West::Side) return 2335;
							else return 2336;
					else
						if (South == South::Up)
							if (West == West::Up) return 2337;
							else if (West == West::Side) return 2338;
							else return 2339;
						else if (South == South::Side)
							if (West == West::Up) return 2340;
							else if (West == West::Side) return 2341;
							else return 2342;
						else
							if (West == West::Up) return 2343;
							else if (West == West::Side) return 2344;
							else return 2345;
				else
					if (Power == 0)
						if (South == South::Up)
							if (West == West::Up) return 2346;
							else if (West == West::Side) return 2347;
							else return 2348;
						else if (South == South::Side)
							if (West == West::Up) return 2349;
							else if (West == West::Side) return 2350;
							else return 2351;
						else
							if (West == West::Up) return 2352;
							else if (West == West::Side) return 2353;
							else return 2354;
					else if (Power == 1)
						if (South == South::Up)
							if (West == West::Up) return 2355;
							else if (West == West::Side) return 2356;
							else return 2357;
						else if (South == South::Side)
							if (West == West::Up) return 2358;
							else if (West == West::Side) return 2359;
							else return 2360;
						else
							if (West == West::Up) return 2361;
							else if (West == West::Side) return 2362;
							else return 2363;
					else if (Power == 2)
						if (South == South::Up)
							if (West == West::Up) return 2364;
							else if (West == West::Side) return 2365;
							else return 2366;
						else if (South == South::Side)
							if (West == West::Up) return 2367;
							else if (West == West::Side) return 2368;
							else return 2369;
						else
							if (West == West::Up) return 2370;
							else if (West == West::Side) return 2371;
							else return 2372;
					else if (Power == 3)
						if (South == South::Up)
							if (West == West::Up) return 2373;
							else if (West == West::Side) return 2374;
							else return 2375;
						else if (South == South::Side)
							if (West == West::Up) return 2376;
							else if (West == West::Side) return 2377;
							else return 2378;
						else
							if (West == West::Up) return 2379;
							else if (West == West::Side) return 2380;
							else return 2381;
					else if (Power == 4)
						if (South == South::Up)
							if (West == West::Up) return 2382;
							else if (West == West::Side) return 2383;
							else return 2384;
						else if (South == South::Side)
							if (West == West::Up) return 2385;
							else if (West == West::Side) return 2386;
							else return 2387;
						else
							if (West == West::Up) return 2388;
							else if (West == West::Side) return 2389;
							else return 2390;
					else if (Power == 5)
						if (South == South::Up)
							if (West == West::Up) return 2391;
							else if (West == West::Side) return 2392;
							else return 2393;
						else if (South == South::Side)
							if (West == West::Up) return 2394;
							else if (West == West::Side) return 2395;
							else return 2396;
						else
							if (West == West::Up) return 2397;
							else if (West == West::Side) return 2398;
							else return 2399;
					else if (Power == 6)
						if (South == South::Up)
							if (West == West::Up) return 2400;
							else if (West == West::Side) return 2401;
							else return 2402;
						else if (South == South::Side)
							if (West == West::Up) return 2403;
							else if (West == West::Side) return 2404;
							else return 2405;
						else
							if (West == West::Up) return 2406;
							else if (West == West::Side) return 2407;
							else return 2408;
					else if (Power == 7)
						if (South == South::Up)
							if (West == West::Up) return 2409;
							else if (West == West::Side) return 2410;
							else return 2411;
						else if (South == South::Side)
							if (West == West::Up) return 2412;
							else if (West == West::Side) return 2413;
							else return 2414;
						else
							if (West == West::Up) return 2415;
							else if (West == West::Side) return 2416;
							else return 2417;
					else if (Power == 8)
						if (South == South::Up)
							if (West == West::Up) return 2418;
							else if (West == West::Side) return 2419;
							else return 2420;
						else if (South == South::Side)
							if (West == West::Up) return 2421;
							else if (West == West::Side) return 2422;
							else return 2423;
						else
							if (West == West::Up) return 2424;
							else if (West == West::Side) return 2425;
							else return 2426;
					else if (Power == 9)
						if (South == South::Up)
							if (West == West::Up) return 2427;
							else if (West == West::Side) return 2428;
							else return 2429;
						else if (South == South::Side)
							if (West == West::Up) return 2430;
							else if (West == West::Side) return 2431;
							else return 2432;
						else
							if (West == West::Up) return 2433;
							else if (West == West::Side) return 2434;
							else return 2435;
					else if (Power == 10)
						if (South == South::Up)
							if (West == West::Up) return 2436;
							else if (West == West::Side) return 2437;
							else return 2438;
						else if (South == South::Side)
							if (West == West::Up) return 2439;
							else if (West == West::Side) return 2440;
							else return 2441;
						else
							if (West == West::Up) return 2442;
							else if (West == West::Side) return 2443;
							else return 2444;
					else if (Power == 11)
						if (South == South::Up)
							if (West == West::Up) return 2445;
							else if (West == West::Side) return 2446;
							else return 2447;
						else if (South == South::Side)
							if (West == West::Up) return 2448;
							else if (West == West::Side) return 2449;
							else return 2450;
						else
							if (West == West::Up) return 2451;
							else if (West == West::Side) return 2452;
							else return 2453;
					else if (Power == 12)
						if (South == South::Up)
							if (West == West::Up) return 2454;
							else if (West == West::Side) return 2455;
							else return 2456;
						else if (South == South::Side)
							if (West == West::Up) return 2457;
							else if (West == West::Side) return 2458;
							else return 2459;
						else
							if (West == West::Up) return 2460;
							else if (West == West::Side) return 2461;
							else return 2462;
					else if (Power == 13)
						if (South == South::Up)
							if (West == West::Up) return 2463;
							else if (West == West::Side) return 2464;
							else return 2465;
						else if (South == South::Side)
							if (West == West::Up) return 2466;
							else if (West == West::Side) return 2467;
							else return 2468;
						else
							if (West == West::Up) return 2469;
							else if (West == West::Side) return 2470;
							else return 2471;
					else if (Power == 14)
						if (South == South::Up)
							if (West == West::Up) return 2472;
							else if (West == West::Side) return 2473;
							else return 2474;
						else if (South == South::Side)
							if (West == West::Up) return 2475;
							else if (West == West::Side) return 2476;
							else return 2477;
						else
							if (West == West::Up) return 2478;
							else if (West == West::Side) return 2479;
							else return 2480;
					else
						if (South == South::Up)
							if (West == West::Up) return 2481;
							else if (West == West::Side) return 2482;
							else return 2483;
						else if (South == South::Side)
							if (West == West::Up) return 2484;
							else if (West == West::Side) return 2485;
							else return 2486;
						else
							if (West == West::Up) return 2487;
							else if (West == West::Side) return 2488;
							else return 2489;
			else if (East == East::Side)
				if (North == North::Up)
					if (Power == 0)
						if (South == South::Up)
							if (West == West::Up) return 2490;
							else if (West == West::Side) return 2491;
							else return 2492;
						else if (South == South::Side)
							if (West == West::Up) return 2493;
							else if (West == West::Side) return 2494;
							else return 2495;
						else
							if (West == West::Up) return 2496;
							else if (West == West::Side) return 2497;
							else return 2498;
					else if (Power == 1)
						if (South == South::Up)
							if (West == West::Up) return 2499;
							else if (West == West::Side) return 2500;
							else return 2501;
						else if (South == South::Side)
							if (West == West::Up) return 2502;
							else if (West == West::Side) return 2503;
							else return 2504;
						else
							if (West == West::Up) return 2505;
							else if (West == West::Side) return 2506;
							else return 2507;
					else if (Power == 2)
						if (South == South::Up)
							if (West == West::Up) return 2508;
							else if (West == West::Side) return 2509;
							else return 2510;
						else if (South == South::Side)
							if (West == West::Up) return 2511;
							else if (West == West::Side) return 2512;
							else return 2513;
						else
							if (West == West::Up) return 2514;
							else if (West == West::Side) return 2515;
							else return 2516;
					else if (Power == 3)
						if (South == South::Up)
							if (West == West::Up) return 2517;
							else if (West == West::Side) return 2518;
							else return 2519;
						else if (South == South::Side)
							if (West == West::Up) return 2520;
							else if (West == West::Side) return 2521;
							else return 2522;
						else
							if (West == West::Up) return 2523;
							else if (West == West::Side) return 2524;
							else return 2525;
					else if (Power == 4)
						if (South == South::Up)
							if (West == West::Up) return 2526;
							else if (West == West::Side) return 2527;
							else return 2528;
						else if (South == South::Side)
							if (West == West::Up) return 2529;
							else if (West == West::Side) return 2530;
							else return 2531;
						else
							if (West == West::Up) return 2532;
							else if (West == West::Side) return 2533;
							else return 2534;
					else if (Power == 5)
						if (South == South::Up)
							if (West == West::Up) return 2535;
							else if (West == West::Side) return 2536;
							else return 2537;
						else if (South == South::Side)
							if (West == West::Up) return 2538;
							else if (West == West::Side) return 2539;
							else return 2540;
						else
							if (West == West::Up) return 2541;
							else if (West == West::Side) return 2542;
							else return 2543;
					else if (Power == 6)
						if (South == South::Up)
							if (West == West::Up) return 2544;
							else if (West == West::Side) return 2545;
							else return 2546;
						else if (South == South::Side)
							if (West == West::Up) return 2547;
							else if (West == West::Side) return 2548;
							else return 2549;
						else
							if (West == West::Up) return 2550;
							else if (West == West::Side) return 2551;
							else return 2552;
					else if (Power == 7)
						if (South == South::Up)
							if (West == West::Up) return 2553;
							else if (West == West::Side) return 2554;
							else return 2555;
						else if (South == South::Side)
							if (West == West::Up) return 2556;
							else if (West == West::Side) return 2557;
							else return 2558;
						else
							if (West == West::Up) return 2559;
							else if (West == West::Side) return 2560;
							else return 2561;
					else if (Power == 8)
						if (South == South::Up)
							if (West == West::Up) return 2562;
							else if (West == West::Side) return 2563;
							else return 2564;
						else if (South == South::Side)
							if (West == West::Up) return 2565;
							else if (West == West::Side) return 2566;
							else return 2567;
						else
							if (West == West::Up) return 2568;
							else if (West == West::Side) return 2569;
							else return 2570;
					else if (Power == 9)
						if (South == South::Up)
							if (West == West::Up) return 2571;
							else if (West == West::Side) return 2572;
							else return 2573;
						else if (South == South::Side)
							if (West == West::Up) return 2574;
							else if (West == West::Side) return 2575;
							else return 2576;
						else
							if (West == West::Up) return 2577;
							else if (West == West::Side) return 2578;
							else return 2579;
					else if (Power == 10)
						if (South == South::Up)
							if (West == West::Up) return 2580;
							else if (West == West::Side) return 2581;
							else return 2582;
						else if (South == South::Side)
							if (West == West::Up) return 2583;
							else if (West == West::Side) return 2584;
							else return 2585;
						else
							if (West == West::Up) return 2586;
							else if (West == West::Side) return 2587;
							else return 2588;
					else if (Power == 11)
						if (South == South::Up)
							if (West == West::Up) return 2589;
							else if (West == West::Side) return 2590;
							else return 2591;
						else if (South == South::Side)
							if (West == West::Up) return 2592;
							else if (West == West::Side) return 2593;
							else return 2594;
						else
							if (West == West::Up) return 2595;
							else if (West == West::Side) return 2596;
							else return 2597;
					else if (Power == 12)
						if (South == South::Up)
							if (West == West::Up) return 2598;
							else if (West == West::Side) return 2599;
							else return 2600;
						else if (South == South::Side)
							if (West == West::Up) return 2601;
							else if (West == West::Side) return 2602;
							else return 2603;
						else
							if (West == West::Up) return 2604;
							else if (West == West::Side) return 2605;
							else return 2606;
					else if (Power == 13)
						if (South == South::Up)
							if (West == West::Up) return 2607;
							else if (West == West::Side) return 2608;
							else return 2609;
						else if (South == South::Side)
							if (West == West::Up) return 2610;
							else if (West == West::Side) return 2611;
							else return 2612;
						else
							if (West == West::Up) return 2613;
							else if (West == West::Side) return 2614;
							else return 2615;
					else if (Power == 14)
						if (South == South::Up)
							if (West == West::Up) return 2616;
							else if (West == West::Side) return 2617;
							else return 2618;
						else if (South == South::Side)
							if (West == West::Up) return 2619;
							else if (West == West::Side) return 2620;
							else return 2621;
						else
							if (West == West::Up) return 2622;
							else if (West == West::Side) return 2623;
							else return 2624;
					else
						if (South == South::Up)
							if (West == West::Up) return 2625;
							else if (West == West::Side) return 2626;
							else return 2627;
						else if (South == South::Side)
							if (West == West::Up) return 2628;
							else if (West == West::Side) return 2629;
							else return 2630;
						else
							if (West == West::Up) return 2631;
							else if (West == West::Side) return 2632;
							else return 2633;
				else if (North == North::Side)
					if (Power == 0)
						if (South == South::Up)
							if (West == West::Up) return 2634;
							else if (West == West::Side) return 2635;
							else return 2636;
						else if (South == South::Side)
							if (West == West::Up) return 2637;
							else if (West == West::Side) return 2638;
							else return 2639;
						else
							if (West == West::Up) return 2640;
							else if (West == West::Side) return 2641;
							else return 2642;
					else if (Power == 1)
						if (South == South::Up)
							if (West == West::Up) return 2643;
							else if (West == West::Side) return 2644;
							else return 2645;
						else if (South == South::Side)
							if (West == West::Up) return 2646;
							else if (West == West::Side) return 2647;
							else return 2648;
						else
							if (West == West::Up) return 2649;
							else if (West == West::Side) return 2650;
							else return 2651;
					else if (Power == 2)
						if (South == South::Up)
							if (West == West::Up) return 2652;
							else if (West == West::Side) return 2653;
							else return 2654;
						else if (South == South::Side)
							if (West == West::Up) return 2655;
							else if (West == West::Side) return 2656;
							else return 2657;
						else
							if (West == West::Up) return 2658;
							else if (West == West::Side) return 2659;
							else return 2660;
					else if (Power == 3)
						if (South == South::Up)
							if (West == West::Up) return 2661;
							else if (West == West::Side) return 2662;
							else return 2663;
						else if (South == South::Side)
							if (West == West::Up) return 2664;
							else if (West == West::Side) return 2665;
							else return 2666;
						else
							if (West == West::Up) return 2667;
							else if (West == West::Side) return 2668;
							else return 2669;
					else if (Power == 4)
						if (South == South::Up)
							if (West == West::Up) return 2670;
							else if (West == West::Side) return 2671;
							else return 2672;
						else if (South == South::Side)
							if (West == West::Up) return 2673;
							else if (West == West::Side) return 2674;
							else return 2675;
						else
							if (West == West::Up) return 2676;
							else if (West == West::Side) return 2677;
							else return 2678;
					else if (Power == 5)
						if (South == South::Up)
							if (West == West::Up) return 2679;
							else if (West == West::Side) return 2680;
							else return 2681;
						else if (South == South::Side)
							if (West == West::Up) return 2682;
							else if (West == West::Side) return 2683;
							else return 2684;
						else
							if (West == West::Up) return 2685;
							else if (West == West::Side) return 2686;
							else return 2687;
					else if (Power == 6)
						if (South == South::Up)
							if (West == West::Up) return 2688;
							else if (West == West::Side) return 2689;
							else return 2690;
						else if (South == South::Side)
							if (West == West::Up) return 2691;
							else if (West == West::Side) return 2692;
							else return 2693;
						else
							if (West == West::Up) return 2694;
							else if (West == West::Side) return 2695;
							else return 2696;
					else if (Power == 7)
						if (South == South::Up)
							if (West == West::Up) return 2697;
							else if (West == West::Side) return 2698;
							else return 2699;
						else if (South == South::Side)
							if (West == West::Up) return 2700;
							else if (West == West::Side) return 2701;
							else return 2702;
						else
							if (West == West::Up) return 2703;
							else if (West == West::Side) return 2704;
							else return 2705;
					else if (Power == 8)
						if (South == South::Up)
							if (West == West::Up) return 2706;
							else if (West == West::Side) return 2707;
							else return 2708;
						else if (South == South::Side)
							if (West == West::Up) return 2709;
							else if (West == West::Side) return 2710;
							else return 2711;
						else
							if (West == West::Up) return 2712;
							else if (West == West::Side) return 2713;
							else return 2714;
					else if (Power == 9)
						if (South == South::Up)
							if (West == West::Up) return 2715;
							else if (West == West::Side) return 2716;
							else return 2717;
						else if (South == South::Side)
							if (West == West::Up) return 2718;
							else if (West == West::Side) return 2719;
							else return 2720;
						else
							if (West == West::Up) return 2721;
							else if (West == West::Side) return 2722;
							else return 2723;
					else if (Power == 10)
						if (South == South::Up)
							if (West == West::Up) return 2724;
							else if (West == West::Side) return 2725;
							else return 2726;
						else if (South == South::Side)
							if (West == West::Up) return 2727;
							else if (West == West::Side) return 2728;
							else return 2729;
						else
							if (West == West::Up) return 2730;
							else if (West == West::Side) return 2731;
							else return 2732;
					else if (Power == 11)
						if (South == South::Up)
							if (West == West::Up) return 2733;
							else if (West == West::Side) return 2734;
							else return 2735;
						else if (South == South::Side)
							if (West == West::Up) return 2736;
							else if (West == West::Side) return 2737;
							else return 2738;
						else
							if (West == West::Up) return 2739;
							else if (West == West::Side) return 2740;
							else return 2741;
					else if (Power == 12)
						if (South == South::Up)
							if (West == West::Up) return 2742;
							else if (West == West::Side) return 2743;
							else return 2744;
						else if (South == South::Side)
							if (West == West::Up) return 2745;
							else if (West == West::Side) return 2746;
							else return 2747;
						else
							if (West == West::Up) return 2748;
							else if (West == West::Side) return 2749;
							else return 2750;
					else if (Power == 13)
						if (South == South::Up)
							if (West == West::Up) return 2751;
							else if (West == West::Side) return 2752;
							else return 2753;
						else if (South == South::Side)
							if (West == West::Up) return 2754;
							else if (West == West::Side) return 2755;
							else return 2756;
						else
							if (West == West::Up) return 2757;
							else if (West == West::Side) return 2758;
							else return 2759;
					else if (Power == 14)
						if (South == South::Up)
							if (West == West::Up) return 2760;
							else if (West == West::Side) return 2761;
							else return 2762;
						else if (South == South::Side)
							if (West == West::Up) return 2763;
							else if (West == West::Side) return 2764;
							else return 2765;
						else
							if (West == West::Up) return 2766;
							else if (West == West::Side) return 2767;
							else return 2768;
					else
						if (South == South::Up)
							if (West == West::Up) return 2769;
							else if (West == West::Side) return 2770;
							else return 2771;
						else if (South == South::Side)
							if (West == West::Up) return 2772;
							else if (West == West::Side) return 2773;
							else return 2774;
						else
							if (West == West::Up) return 2775;
							else if (West == West::Side) return 2776;
							else return 2777;
				else
					if (Power == 0)
						if (South == South::Up)
							if (West == West::Up) return 2778;
							else if (West == West::Side) return 2779;
							else return 2780;
						else if (South == South::Side)
							if (West == West::Up) return 2781;
							else if (West == West::Side) return 2782;
							else return 2783;
						else
							if (West == West::Up) return 2784;
							else if (West == West::Side) return 2785;
							else return 2786;
					else if (Power == 1)
						if (South == South::Up)
							if (West == West::Up) return 2787;
							else if (West == West::Side) return 2788;
							else return 2789;
						else if (South == South::Side)
							if (West == West::Up) return 2790;
							else if (West == West::Side) return 2791;
							else return 2792;
						else
							if (West == West::Up) return 2793;
							else if (West == West::Side) return 2794;
							else return 2795;
					else if (Power == 2)
						if (South == South::Up)
							if (West == West::Up) return 2796;
							else if (West == West::Side) return 2797;
							else return 2798;
						else if (South == South::Side)
							if (West == West::Up) return 2799;
							else if (West == West::Side) return 2800;
							else return 2801;
						else
							if (West == West::Up) return 2802;
							else if (West == West::Side) return 2803;
							else return 2804;
					else if (Power == 3)
						if (South == South::Up)
							if (West == West::Up) return 2805;
							else if (West == West::Side) return 2806;
							else return 2807;
						else if (South == South::Side)
							if (West == West::Up) return 2808;
							else if (West == West::Side) return 2809;
							else return 2810;
						else
							if (West == West::Up) return 2811;
							else if (West == West::Side) return 2812;
							else return 2813;
					else if (Power == 4)
						if (South == South::Up)
							if (West == West::Up) return 2814;
							else if (West == West::Side) return 2815;
							else return 2816;
						else if (South == South::Side)
							if (West == West::Up) return 2817;
							else if (West == West::Side) return 2818;
							else return 2819;
						else
							if (West == West::Up) return 2820;
							else if (West == West::Side) return 2821;
							else return 2822;
					else if (Power == 5)
						if (South == South::Up)
							if (West == West::Up) return 2823;
							else if (West == West::Side) return 2824;
							else return 2825;
						else if (South == South::Side)
							if (West == West::Up) return 2826;
							else if (West == West::Side) return 2827;
							else return 2828;
						else
							if (West == West::Up) return 2829;
							else if (West == West::Side) return 2830;
							else return 2831;
					else if (Power == 6)
						if (South == South::Up)
							if (West == West::Up) return 2832;
							else if (West == West::Side) return 2833;
							else return 2834;
						else if (South == South::Side)
							if (West == West::Up) return 2835;
							else if (West == West::Side) return 2836;
							else return 2837;
						else
							if (West == West::Up) return 2838;
							else if (West == West::Side) return 2839;
							else return 2840;
					else if (Power == 7)
						if (South == South::Up)
							if (West == West::Up) return 2841;
							else if (West == West::Side) return 2842;
							else return 2843;
						else if (South == South::Side)
							if (West == West::Up) return 2844;
							else if (West == West::Side) return 2845;
							else return 2846;
						else
							if (West == West::Up) return 2847;
							else if (West == West::Side) return 2848;
							else return 2849;
					else if (Power == 8)
						if (South == South::Up)
							if (West == West::Up) return 2850;
							else if (West == West::Side) return 2851;
							else return 2852;
						else if (South == South::Side)
							if (West == West::Up) return 2853;
							else if (West == West::Side) return 2854;
							else return 2855;
						else
							if (West == West::Up) return 2856;
							else if (West == West::Side) return 2857;
							else return 2858;
					else if (Power == 9)
						if (South == South::Up)
							if (West == West::Up) return 2859;
							else if (West == West::Side) return 2860;
							else return 2861;
						else if (South == South::Side)
							if (West == West::Up) return 2862;
							else if (West == West::Side) return 2863;
							else return 2864;
						else
							if (West == West::Up) return 2865;
							else if (West == West::Side) return 2866;
							else return 2867;
					else if (Power == 10)
						if (South == South::Up)
							if (West == West::Up) return 2868;
							else if (West == West::Side) return 2869;
							else return 2870;
						else if (South == South::Side)
							if (West == West::Up) return 2871;
							else if (West == West::Side) return 2872;
							else return 2873;
						else
							if (West == West::Up) return 2874;
							else if (West == West::Side) return 2875;
							else return 2876;
					else if (Power == 11)
						if (South == South::Up)
							if (West == West::Up) return 2877;
							else if (West == West::Side) return 2878;
							else return 2879;
						else if (South == South::Side)
							if (West == West::Up) return 2880;
							else if (West == West::Side) return 2881;
							else return 2882;
						else
							if (West == West::Up) return 2883;
							else if (West == West::Side) return 2884;
							else return 2885;
					else if (Power == 12)
						if (South == South::Up)
							if (West == West::Up) return 2886;
							else if (West == West::Side) return 2887;
							else return 2888;
						else if (South == South::Side)
							if (West == West::Up) return 2889;
							else if (West == West::Side) return 2890;
							else return 2891;
						else
							if (West == West::Up) return 2892;
							else if (West == West::Side) return 2893;
							else return 2894;
					else if (Power == 13)
						if (South == South::Up)
							if (West == West::Up) return 2895;
							else if (West == West::Side) return 2896;
							else return 2897;
						else if (South == South::Side)
							if (West == West::Up) return 2898;
							else if (West == West::Side) return 2899;
							else return 2900;
						else
							if (West == West::Up) return 2901;
							else if (West == West::Side) return 2902;
							else return 2903;
					else if (Power == 14)
						if (South == South::Up)
							if (West == West::Up) return 2904;
							else if (West == West::Side) return 2905;
							else return 2906;
						else if (South == South::Side)
							if (West == West::Up) return 2907;
							else if (West == West::Side) return 2908;
							else return 2909;
						else
							if (West == West::Up) return 2910;
							else if (West == West::Side) return 2911;
							else return 2912;
					else
						if (South == South::Up)
							if (West == West::Up) return 2913;
							else if (West == West::Side) return 2914;
							else return 2915;
						else if (South == South::Side)
							if (West == West::Up) return 2916;
							else if (West == West::Side) return 2917;
							else return 2918;
						else
							if (West == West::Up) return 2919;
							else if (West == West::Side) return 2920;
							else return 2921;
			else
				if (North == North::Up)
					if (Power == 0)
						if (South == South::Up)
							if (West == West::Up) return 2922;
							else if (West == West::Side) return 2923;
							else return 2924;
						else if (South == South::Side)
							if (West == West::Up) return 2925;
							else if (West == West::Side) return 2926;
							else return 2927;
						else
							if (West == West::Up) return 2928;
							else if (West == West::Side) return 2929;
							else return 2930;
					else if (Power == 1)
						if (South == South::Up)
							if (West == West::Up) return 2931;
							else if (West == West::Side) return 2932;
							else return 2933;
						else if (South == South::Side)
							if (West == West::Up) return 2934;
							else if (West == West::Side) return 2935;
							else return 2936;
						else
							if (West == West::Up) return 2937;
							else if (West == West::Side) return 2938;
							else return 2939;
					else if (Power == 2)
						if (South == South::Up)
							if (West == West::Up) return 2940;
							else if (West == West::Side) return 2941;
							else return 2942;
						else if (South == South::Side)
							if (West == West::Up) return 2943;
							else if (West == West::Side) return 2944;
							else return 2945;
						else
							if (West == West::Up) return 2946;
							else if (West == West::Side) return 2947;
							else return 2948;
					else if (Power == 3)
						if (South == South::Up)
							if (West == West::Up) return 2949;
							else if (West == West::Side) return 2950;
							else return 2951;
						else if (South == South::Side)
							if (West == West::Up) return 2952;
							else if (West == West::Side) return 2953;
							else return 2954;
						else
							if (West == West::Up) return 2955;
							else if (West == West::Side) return 2956;
							else return 2957;
					else if (Power == 4)
						if (South == South::Up)
							if (West == West::Up) return 2958;
							else if (West == West::Side) return 2959;
							else return 2960;
						else if (South == South::Side)
							if (West == West::Up) return 2961;
							else if (West == West::Side) return 2962;
							else return 2963;
						else
							if (West == West::Up) return 2964;
							else if (West == West::Side) return 2965;
							else return 2966;
					else if (Power == 5)
						if (South == South::Up)
							if (West == West::Up) return 2967;
							else if (West == West::Side) return 2968;
							else return 2969;
						else if (South == South::Side)
							if (West == West::Up) return 2970;
							else if (West == West::Side) return 2971;
							else return 2972;
						else
							if (West == West::Up) return 2973;
							else if (West == West::Side) return 2974;
							else return 2975;
					else if (Power == 6)
						if (South == South::Up)
							if (West == West::Up) return 2976;
							else if (West == West::Side) return 2977;
							else return 2978;
						else if (South == South::Side)
							if (West == West::Up) return 2979;
							else if (West == West::Side) return 2980;
							else return 2981;
						else
							if (West == West::Up) return 2982;
							else if (West == West::Side) return 2983;
							else return 2984;
					else if (Power == 7)
						if (South == South::Up)
							if (West == West::Up) return 2985;
							else if (West == West::Side) return 2986;
							else return 2987;
						else if (South == South::Side)
							if (West == West::Up) return 2988;
							else if (West == West::Side) return 2989;
							else return 2990;
						else
							if (West == West::Up) return 2991;
							else if (West == West::Side) return 2992;
							else return 2993;
					else if (Power == 8)
						if (South == South::Up)
							if (West == West::Up) return 2994;
							else if (West == West::Side) return 2995;
							else return 2996;
						else if (South == South::Side)
							if (West == West::Up) return 2997;
							else if (West == West::Side) return 2998;
							else return 2999;
						else
							if (West == West::Up) return 3000;
							else if (West == West::Side) return 3001;
							else return 3002;
					else if (Power == 9)
						if (South == South::Up)
							if (West == West::Up) return 3003;
							else if (West == West::Side) return 3004;
							else return 3005;
						else if (South == South::Side)
							if (West == West::Up) return 3006;
							else if (West == West::Side) return 3007;
							else return 3008;
						else
							if (West == West::Up) return 3009;
							else if (West == West::Side) return 3010;
							else return 3011;
					else if (Power == 10)
						if (South == South::Up)
							if (West == West::Up) return 3012;
							else if (West == West::Side) return 3013;
							else return 3014;
						else if (South == South::Side)
							if (West == West::Up) return 3015;
							else if (West == West::Side) return 3016;
							else return 3017;
						else
							if (West == West::Up) return 3018;
							else if (West == West::Side) return 3019;
							else return 3020;
					else if (Power == 11)
						if (South == South::Up)
							if (West == West::Up) return 3021;
							else if (West == West::Side) return 3022;
							else return 3023;
						else if (South == South::Side)
							if (West == West::Up) return 3024;
							else if (West == West::Side) return 3025;
							else return 3026;
						else
							if (West == West::Up) return 3027;
							else if (West == West::Side) return 3028;
							else return 3029;
					else if (Power == 12)
						if (South == South::Up)
							if (West == West::Up) return 3030;
							else if (West == West::Side) return 3031;
							else return 3032;
						else if (South == South::Side)
							if (West == West::Up) return 3033;
							else if (West == West::Side) return 3034;
							else return 3035;
						else
							if (West == West::Up) return 3036;
							else if (West == West::Side) return 3037;
							else return 3038;
					else if (Power == 13)
						if (South == South::Up)
							if (West == West::Up) return 3039;
							else if (West == West::Side) return 3040;
							else return 3041;
						else if (South == South::Side)
							if (West == West::Up) return 3042;
							else if (West == West::Side) return 3043;
							else return 3044;
						else
							if (West == West::Up) return 3045;
							else if (West == West::Side) return 3046;
							else return 3047;
					else if (Power == 14)
						if (South == South::Up)
							if (West == West::Up) return 3048;
							else if (West == West::Side) return 3049;
							else return 3050;
						else if (South == South::Side)
							if (West == West::Up) return 3051;
							else if (West == West::Side) return 3052;
							else return 3053;
						else
							if (West == West::Up) return 3054;
							else if (West == West::Side) return 3055;
							else return 3056;
					else
						if (South == South::Up)
							if (West == West::Up) return 3057;
							else if (West == West::Side) return 3058;
							else return 3059;
						else if (South == South::Side)
							if (West == West::Up) return 3060;
							else if (West == West::Side) return 3061;
							else return 3062;
						else
							if (West == West::Up) return 3063;
							else if (West == West::Side) return 3064;
							else return 3065;
				else if (North == North::Side)
					if (Power == 0)
						if (South == South::Up)
							if (West == West::Up) return 3066;
							else if (West == West::Side) return 3067;
							else return 3068;
						else if (South == South::Side)
							if (West == West::Up) return 3069;
							else if (West == West::Side) return 3070;
							else return 3071;
						else
							if (West == West::Up) return 3072;
							else if (West == West::Side) return 3073;
							else return 3074;
					else if (Power == 1)
						if (South == South::Up)
							if (West == West::Up) return 3075;
							else if (West == West::Side) return 3076;
							else return 3077;
						else if (South == South::Side)
							if (West == West::Up) return 3078;
							else if (West == West::Side) return 3079;
							else return 3080;
						else
							if (West == West::Up) return 3081;
							else if (West == West::Side) return 3082;
							else return 3083;
					else if (Power == 2)
						if (South == South::Up)
							if (West == West::Up) return 3084;
							else if (West == West::Side) return 3085;
							else return 3086;
						else if (South == South::Side)
							if (West == West::Up) return 3087;
							else if (West == West::Side) return 3088;
							else return 3089;
						else
							if (West == West::Up) return 3090;
							else if (West == West::Side) return 3091;
							else return 3092;
					else if (Power == 3)
						if (South == South::Up)
							if (West == West::Up) return 3093;
							else if (West == West::Side) return 3094;
							else return 3095;
						else if (South == South::Side)
							if (West == West::Up) return 3096;
							else if (West == West::Side) return 3097;
							else return 3098;
						else
							if (West == West::Up) return 3099;
							else if (West == West::Side) return 3100;
							else return 3101;
					else if (Power == 4)
						if (South == South::Up)
							if (West == West::Up) return 3102;
							else if (West == West::Side) return 3103;
							else return 3104;
						else if (South == South::Side)
							if (West == West::Up) return 3105;
							else if (West == West::Side) return 3106;
							else return 3107;
						else
							if (West == West::Up) return 3108;
							else if (West == West::Side) return 3109;
							else return 3110;
					else if (Power == 5)
						if (South == South::Up)
							if (West == West::Up) return 3111;
							else if (West == West::Side) return 3112;
							else return 3113;
						else if (South == South::Side)
							if (West == West::Up) return 3114;
							else if (West == West::Side) return 3115;
							else return 3116;
						else
							if (West == West::Up) return 3117;
							else if (West == West::Side) return 3118;
							else return 3119;
					else if (Power == 6)
						if (South == South::Up)
							if (West == West::Up) return 3120;
							else if (West == West::Side) return 3121;
							else return 3122;
						else if (South == South::Side)
							if (West == West::Up) return 3123;
							else if (West == West::Side) return 3124;
							else return 3125;
						else
							if (West == West::Up) return 3126;
							else if (West == West::Side) return 3127;
							else return 3128;
					else if (Power == 7)
						if (South == South::Up)
							if (West == West::Up) return 3129;
							else if (West == West::Side) return 3130;
							else return 3131;
						else if (South == South::Side)
							if (West == West::Up) return 3132;
							else if (West == West::Side) return 3133;
							else return 3134;
						else
							if (West == West::Up) return 3135;
							else if (West == West::Side) return 3136;
							else return 3137;
					else if (Power == 8)
						if (South == South::Up)
							if (West == West::Up) return 3138;
							else if (West == West::Side) return 3139;
							else return 3140;
						else if (South == South::Side)
							if (West == West::Up) return 3141;
							else if (West == West::Side) return 3142;
							else return 3143;
						else
							if (West == West::Up) return 3144;
							else if (West == West::Side) return 3145;
							else return 3146;
					else if (Power == 9)
						if (South == South::Up)
							if (West == West::Up) return 3147;
							else if (West == West::Side) return 3148;
							else return 3149;
						else if (South == South::Side)
							if (West == West::Up) return 3150;
							else if (West == West::Side) return 3151;
							else return 3152;
						else
							if (West == West::Up) return 3153;
							else if (West == West::Side) return 3154;
							else return 3155;
					else if (Power == 10)
						if (South == South::Up)
							if (West == West::Up) return 3156;
							else if (West == West::Side) return 3157;
							else return 3158;
						else if (South == South::Side)
							if (West == West::Up) return 3159;
							else if (West == West::Side) return 3160;
							else return 3161;
						else
							if (West == West::Up) return 3162;
							else if (West == West::Side) return 3163;
							else return 3164;
					else if (Power == 11)
						if (South == South::Up)
							if (West == West::Up) return 3165;
							else if (West == West::Side) return 3166;
							else return 3167;
						else if (South == South::Side)
							if (West == West::Up) return 3168;
							else if (West == West::Side) return 3169;
							else return 3170;
						else
							if (West == West::Up) return 3171;
							else if (West == West::Side) return 3172;
							else return 3173;
					else if (Power == 12)
						if (South == South::Up)
							if (West == West::Up) return 3174;
							else if (West == West::Side) return 3175;
							else return 3176;
						else if (South == South::Side)
							if (West == West::Up) return 3177;
							else if (West == West::Side) return 3178;
							else return 3179;
						else
							if (West == West::Up) return 3180;
							else if (West == West::Side) return 3181;
							else return 3182;
					else if (Power == 13)
						if (South == South::Up)
							if (West == West::Up) return 3183;
							else if (West == West::Side) return 3184;
							else return 3185;
						else if (South == South::Side)
							if (West == West::Up) return 3186;
							else if (West == West::Side) return 3187;
							else return 3188;
						else
							if (West == West::Up) return 3189;
							else if (West == West::Side) return 3190;
							else return 3191;
					else if (Power == 14)
						if (South == South::Up)
							if (West == West::Up) return 3192;
							else if (West == West::Side) return 3193;
							else return 3194;
						else if (South == South::Side)
							if (West == West::Up) return 3195;
							else if (West == West::Side) return 3196;
							else return 3197;
						else
							if (West == West::Up) return 3198;
							else if (West == West::Side) return 3199;
							else return 3200;
					else
						if (South == South::Up)
							if (West == West::Up) return 3201;
							else if (West == West::Side) return 3202;
							else return 3203;
						else if (South == South::Side)
							if (West == West::Up) return 3204;
							else if (West == West::Side) return 3205;
							else return 3206;
						else
							if (West == West::Up) return 3207;
							else if (West == West::Side) return 3208;
							else return 3209;
				else
					if (Power == 0)
						if (South == South::Up)
							if (West == West::Up) return 3210;
							else if (West == West::Side) return 3211;
							else return 3212;
						else if (South == South::Side)
							if (West == West::Up) return 3213;
							else if (West == West::Side) return 3214;
							else return 3215;
						else
							if (West == West::Up) return 3216;
							else if (West == West::Side) return 3217;
							else return 3218;
					else if (Power == 1)
						if (South == South::Up)
							if (West == West::Up) return 3219;
							else if (West == West::Side) return 3220;
							else return 3221;
						else if (South == South::Side)
							if (West == West::Up) return 3222;
							else if (West == West::Side) return 3223;
							else return 3224;
						else
							if (West == West::Up) return 3225;
							else if (West == West::Side) return 3226;
							else return 3227;
					else if (Power == 2)
						if (South == South::Up)
							if (West == West::Up) return 3228;
							else if (West == West::Side) return 3229;
							else return 3230;
						else if (South == South::Side)
							if (West == West::Up) return 3231;
							else if (West == West::Side) return 3232;
							else return 3233;
						else
							if (West == West::Up) return 3234;
							else if (West == West::Side) return 3235;
							else return 3236;
					else if (Power == 3)
						if (South == South::Up)
							if (West == West::Up) return 3237;
							else if (West == West::Side) return 3238;
							else return 3239;
						else if (South == South::Side)
							if (West == West::Up) return 3240;
							else if (West == West::Side) return 3241;
							else return 3242;
						else
							if (West == West::Up) return 3243;
							else if (West == West::Side) return 3244;
							else return 3245;
					else if (Power == 4)
						if (South == South::Up)
							if (West == West::Up) return 3246;
							else if (West == West::Side) return 3247;
							else return 3248;
						else if (South == South::Side)
							if (West == West::Up) return 3249;
							else if (West == West::Side) return 3250;
							else return 3251;
						else
							if (West == West::Up) return 3252;
							else if (West == West::Side) return 3253;
							else return 3254;
					else if (Power == 5)
						if (South == South::Up)
							if (West == West::Up) return 3255;
							else if (West == West::Side) return 3256;
							else return 3257;
						else if (South == South::Side)
							if (West == West::Up) return 3258;
							else if (West == West::Side) return 3259;
							else return 3260;
						else
							if (West == West::Up) return 3261;
							else if (West == West::Side) return 3262;
							else return 3263;
					else if (Power == 6)
						if (South == South::Up)
							if (West == West::Up) return 3264;
							else if (West == West::Side) return 3265;
							else return 3266;
						else if (South == South::Side)
							if (West == West::Up) return 3267;
							else if (West == West::Side) return 3268;
							else return 3269;
						else
							if (West == West::Up) return 3270;
							else if (West == West::Side) return 3271;
							else return 3272;
					else if (Power == 7)
						if (South == South::Up)
							if (West == West::Up) return 3273;
							else if (West == West::Side) return 3274;
							else return 3275;
						else if (South == South::Side)
							if (West == West::Up) return 3276;
							else if (West == West::Side) return 3277;
							else return 3278;
						else
							if (West == West::Up) return 3279;
							else if (West == West::Side) return 3280;
							else return 3281;
					else if (Power == 8)
						if (South == South::Up)
							if (West == West::Up) return 3282;
							else if (West == West::Side) return 3283;
							else return 3284;
						else if (South == South::Side)
							if (West == West::Up) return 3285;
							else if (West == West::Side) return 3286;
							else return 3287;
						else
							if (West == West::Up) return 3288;
							else if (West == West::Side) return 3289;
							else return 3290;
					else if (Power == 9)
						if (South == South::Up)
							if (West == West::Up) return 3291;
							else if (West == West::Side) return 3292;
							else return 3293;
						else if (South == South::Side)
							if (West == West::Up) return 3294;
							else if (West == West::Side) return 3295;
							else return 3296;
						else
							if (West == West::Up) return 3297;
							else if (West == West::Side) return 3298;
							else return 3299;
					else if (Power == 10)
						if (South == South::Up)
							if (West == West::Up) return 3300;
							else if (West == West::Side) return 3301;
							else return 3302;
						else if (South == South::Side)
							if (West == West::Up) return 3303;
							else if (West == West::Side) return 3304;
							else return 3305;
						else
							if (West == West::Up) return 3306;
							else if (West == West::Side) return 3307;
							else return 3308;
					else if (Power == 11)
						if (South == South::Up)
							if (West == West::Up) return 3309;
							else if (West == West::Side) return 3310;
							else return 3311;
						else if (South == South::Side)
							if (West == West::Up) return 3312;
							else if (West == West::Side) return 3313;
							else return 3314;
						else
							if (West == West::Up) return 3315;
							else if (West == West::Side) return 3316;
							else return 3317;
					else if (Power == 12)
						if (South == South::Up)
							if (West == West::Up) return 3318;
							else if (West == West::Side) return 3319;
							else return 3320;
						else if (South == South::Side)
							if (West == West::Up) return 3321;
							else if (West == West::Side) return 3322;
							else return 3323;
						else
							if (West == West::Up) return 3324;
							else if (West == West::Side) return 3325;
							else return 3326;
					else if (Power == 13)
						if (South == South::Up)
							if (West == West::Up) return 3327;
							else if (West == West::Side) return 3328;
							else return 3329;
						else if (South == South::Side)
							if (West == West::Up) return 3330;
							else if (West == West::Side) return 3331;
							else return 3332;
						else
							if (West == West::Up) return 3333;
							else if (West == West::Side) return 3334;
							else return 3335;
					else if (Power == 14)
						if (South == South::Up)
							if (West == West::Up) return 3336;
							else if (West == West::Side) return 3337;
							else return 3338;
						else if (South == South::Side)
							if (West == West::Up) return 3339;
							else if (West == West::Side) return 3340;
							else return 3341;
						else
							if (West == West::Up) return 3342;
							else if (West == West::Side) return 3343;
							else return 3344;
					else
						if (South == South::Up)
							if (West == West::Up) return 3345;
							else if (West == West::Side) return 3346;
							else return 3347;
						else if (South == South::Side)
							if (West == West::Up) return 3348;
							else if (West == West::Side) return 3349;
							else return 3350;
						else
							if (West == West::Up) return 3351;
							else if (West == West::Side) return 3352;
							else return 3353;
		}
		BlockState RedstoneWire();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		unsigned char Power(BlockState Block);
		enum South South(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace Repeater
	{
		constexpr BlockState Repeater(const unsigned char Delay, const eBlockFace Facing, const bool Locked, const bool Powered)
		{
			if (Delay == 1)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Locked)
						if (Powered) return 4031;
						else return 4032;
					else
						if (Powered) return 4033;
						else return 4034;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Locked)
						if (Powered) return 4035;
						else return 4036;
					else
						if (Powered) return 4037;
						else return 4038;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Locked)
						if (Powered) return 4039;
						else return 4040;
					else
						if (Powered) return 4041;
						else return 4042;
				else
					if (Locked)
						if (Powered) return 4043;
						else return 4044;
					else
						if (Powered) return 4045;
						else return 4046;
			else if (Delay == 2)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Locked)
						if (Powered) return 4047;
						else return 4048;
					else
						if (Powered) return 4049;
						else return 4050;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Locked)
						if (Powered) return 4051;
						else return 4052;
					else
						if (Powered) return 4053;
						else return 4054;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Locked)
						if (Powered) return 4055;
						else return 4056;
					else
						if (Powered) return 4057;
						else return 4058;
				else
					if (Locked)
						if (Powered) return 4059;
						else return 4060;
					else
						if (Powered) return 4061;
						else return 4062;
			else if (Delay == 3)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Locked)
						if (Powered) return 4063;
						else return 4064;
					else
						if (Powered) return 4065;
						else return 4066;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Locked)
						if (Powered) return 4067;
						else return 4068;
					else
						if (Powered) return 4069;
						else return 4070;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Locked)
						if (Powered) return 4071;
						else return 4072;
					else
						if (Powered) return 4073;
						else return 4074;
				else
					if (Locked)
						if (Powered) return 4075;
						else return 4076;
					else
						if (Powered) return 4077;
						else return 4078;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Locked)
						if (Powered) return 4079;
						else return 4080;
					else
						if (Powered) return 4081;
						else return 4082;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Locked)
						if (Powered) return 4083;
						else return 4084;
					else
						if (Powered) return 4085;
						else return 4086;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Locked)
						if (Powered) return 4087;
						else return 4088;
					else
						if (Powered) return 4089;
						else return 4090;
				else
					if (Locked)
						if (Powered) return 4091;
						else return 4092;
					else
						if (Powered) return 4093;
						else return 4094;
		}
		BlockState Repeater();
		unsigned char Delay(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Locked(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace RepeatingCommandBlock
	{
		constexpr BlockState RepeatingCommandBlock(const bool Conditional, const eBlockFace Facing)
		{
			if (Conditional)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9225;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9226;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9227;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9228;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9229;
				else return 9230;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9231;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9232;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9233;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9234;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9235;
				else return 9236;
		}
		BlockState RepeatingCommandBlock();
		bool Conditional(BlockState Block);
		eBlockFace Facing(BlockState Block);
	}
	namespace RespawnAnchor
	{
		constexpr BlockState RespawnAnchor(const unsigned char Charges)
		{
			if (Charges == 0) return 15829;
			else if (Charges == 1) return 15830;
			else if (Charges == 2) return 15831;
			else if (Charges == 3) return 15832;
			else return 15833;
		}
		BlockState RespawnAnchor();
		unsigned char Charges(BlockState Block);
	}
	namespace RoseBush
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr BlockState RoseBush(const enum Half Half)
		{
			if (Half == Half::Upper) return 7889;
			else return 7890;
		}
		BlockState RoseBush();
		enum Half Half(BlockState Block);
	}
	namespace Sand
	{
		constexpr BlockState Sand()
		{
			return 66;
		}
	}
	namespace Sandstone
	{
		constexpr BlockState Sandstone()
		{
			return 246;
		}
	}
	namespace SandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState SandstoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8349;
			else if (Type == Type::Bottom) return 8351;
			else return 8353;
		}
		BlockState SandstoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace SandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState SandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5171;
					else if (Shape == Shape::InnerLeft) return 5173;
					else if (Shape == Shape::InnerRight) return 5175;
					else if (Shape == Shape::OuterLeft) return 5177;
					else return 5179;
				else
					if (Shape == Shape::Straight) return 5181;
					else if (Shape == Shape::InnerLeft) return 5183;
					else if (Shape == Shape::InnerRight) return 5185;
					else if (Shape == Shape::OuterLeft) return 5187;
					else return 5189;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5191;
					else if (Shape == Shape::InnerLeft) return 5193;
					else if (Shape == Shape::InnerRight) return 5195;
					else if (Shape == Shape::OuterLeft) return 5197;
					else return 5199;
				else
					if (Shape == Shape::Straight) return 5201;
					else if (Shape == Shape::InnerLeft) return 5203;
					else if (Shape == Shape::InnerRight) return 5205;
					else if (Shape == Shape::OuterLeft) return 5207;
					else return 5209;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5211;
					else if (Shape == Shape::InnerLeft) return 5213;
					else if (Shape == Shape::InnerRight) return 5215;
					else if (Shape == Shape::OuterLeft) return 5217;
					else return 5219;
				else
					if (Shape == Shape::Straight) return 5221;
					else if (Shape == Shape::InnerLeft) return 5223;
					else if (Shape == Shape::InnerRight) return 5225;
					else if (Shape == Shape::OuterLeft) return 5227;
					else return 5229;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5231;
					else if (Shape == Shape::InnerLeft) return 5233;
					else if (Shape == Shape::InnerRight) return 5235;
					else if (Shape == Shape::OuterLeft) return 5237;
					else return 5239;
				else
					if (Shape == Shape::Straight) return 5241;
					else if (Shape == Shape::InnerLeft) return 5243;
					else if (Shape == Shape::InnerRight) return 5245;
					else if (Shape == Shape::OuterLeft) return 5247;
					else return 5249;
		}
		BlockState SandstoneStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState SandstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13786;
							else if (West == West::Low) return 13787;
							else return 13788;
						else
							if (West == West::None) return 13792;
							else if (West == West::Low) return 13793;
							else return 13794;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13798;
							else if (West == West::Low) return 13799;
							else return 13800;
						else
							if (West == West::None) return 13804;
							else if (West == West::Low) return 13805;
							else return 13806;
					else
						if (Up)
							if (West == West::None) return 13810;
							else if (West == West::Low) return 13811;
							else return 13812;
						else
							if (West == West::None) return 13816;
							else if (West == West::Low) return 13817;
							else return 13818;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13822;
							else if (West == West::Low) return 13823;
							else return 13824;
						else
							if (West == West::None) return 13828;
							else if (West == West::Low) return 13829;
							else return 13830;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13834;
							else if (West == West::Low) return 13835;
							else return 13836;
						else
							if (West == West::None) return 13840;
							else if (West == West::Low) return 13841;
							else return 13842;
					else
						if (Up)
							if (West == West::None) return 13846;
							else if (West == West::Low) return 13847;
							else return 13848;
						else
							if (West == West::None) return 13852;
							else if (West == West::Low) return 13853;
							else return 13854;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13858;
							else if (West == West::Low) return 13859;
							else return 13860;
						else
							if (West == West::None) return 13864;
							else if (West == West::Low) return 13865;
							else return 13866;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13870;
							else if (West == West::Low) return 13871;
							else return 13872;
						else
							if (West == West::None) return 13876;
							else if (West == West::Low) return 13877;
							else return 13878;
					else
						if (Up)
							if (West == West::None) return 13882;
							else if (West == West::Low) return 13883;
							else return 13884;
						else
							if (West == West::None) return 13888;
							else if (West == West::Low) return 13889;
							else return 13890;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13894;
							else if (West == West::Low) return 13895;
							else return 13896;
						else
							if (West == West::None) return 13900;
							else if (West == West::Low) return 13901;
							else return 13902;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13906;
							else if (West == West::Low) return 13907;
							else return 13908;
						else
							if (West == West::None) return 13912;
							else if (West == West::Low) return 13913;
							else return 13914;
					else
						if (Up)
							if (West == West::None) return 13918;
							else if (West == West::Low) return 13919;
							else return 13920;
						else
							if (West == West::None) return 13924;
							else if (West == West::Low) return 13925;
							else return 13926;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13930;
							else if (West == West::Low) return 13931;
							else return 13932;
						else
							if (West == West::None) return 13936;
							else if (West == West::Low) return 13937;
							else return 13938;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13942;
							else if (West == West::Low) return 13943;
							else return 13944;
						else
							if (West == West::None) return 13948;
							else if (West == West::Low) return 13949;
							else return 13950;
					else
						if (Up)
							if (West == West::None) return 13954;
							else if (West == West::Low) return 13955;
							else return 13956;
						else
							if (West == West::None) return 13960;
							else if (West == West::Low) return 13961;
							else return 13962;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 13966;
							else if (West == West::Low) return 13967;
							else return 13968;
						else
							if (West == West::None) return 13972;
							else if (West == West::Low) return 13973;
							else return 13974;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 13978;
							else if (West == West::Low) return 13979;
							else return 13980;
						else
							if (West == West::None) return 13984;
							else if (West == West::Low) return 13985;
							else return 13986;
					else
						if (Up)
							if (West == West::None) return 13990;
							else if (West == West::Low) return 13991;
							else return 13992;
						else
							if (West == West::None) return 13996;
							else if (West == West::Low) return 13997;
							else return 13998;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14002;
							else if (West == West::Low) return 14003;
							else return 14004;
						else
							if (West == West::None) return 14008;
							else if (West == West::Low) return 14009;
							else return 14010;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14014;
							else if (West == West::Low) return 14015;
							else return 14016;
						else
							if (West == West::None) return 14020;
							else if (West == West::Low) return 14021;
							else return 14022;
					else
						if (Up)
							if (West == West::None) return 14026;
							else if (West == West::Low) return 14027;
							else return 14028;
						else
							if (West == West::None) return 14032;
							else if (West == West::Low) return 14033;
							else return 14034;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14038;
							else if (West == West::Low) return 14039;
							else return 14040;
						else
							if (West == West::None) return 14044;
							else if (West == West::Low) return 14045;
							else return 14046;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14050;
							else if (West == West::Low) return 14051;
							else return 14052;
						else
							if (West == West::None) return 14056;
							else if (West == West::Low) return 14057;
							else return 14058;
					else
						if (Up)
							if (West == West::None) return 14062;
							else if (West == West::Low) return 14063;
							else return 14064;
						else
							if (West == West::None) return 14068;
							else if (West == West::Low) return 14069;
							else return 14070;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 14074;
							else if (West == West::Low) return 14075;
							else return 14076;
						else
							if (West == West::None) return 14080;
							else if (West == West::Low) return 14081;
							else return 14082;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 14086;
							else if (West == West::Low) return 14087;
							else return 14088;
						else
							if (West == West::None) return 14092;
							else if (West == West::Low) return 14093;
							else return 14094;
					else
						if (Up)
							if (West == West::None) return 14098;
							else if (West == West::Low) return 14099;
							else return 14100;
						else
							if (West == West::None) return 14104;
							else if (West == West::Low) return 14105;
							else return 14106;
		}
		BlockState SandstoneWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace Scaffolding
	{
		constexpr BlockState Scaffolding(const bool Bottom, const unsigned char Distance)
		{
			if (Bottom)
				if (Distance == 0) return 14756;
				else if (Distance == 1) return 14758;
				else if (Distance == 2) return 14760;
				else if (Distance == 3) return 14762;
				else if (Distance == 4) return 14764;
				else if (Distance == 5) return 14766;
				else if (Distance == 6) return 14768;
				else return 14770;
			else
				if (Distance == 0) return 14772;
				else if (Distance == 1) return 14774;
				else if (Distance == 2) return 14776;
				else if (Distance == 3) return 14778;
				else if (Distance == 4) return 14780;
				else if (Distance == 5) return 14782;
				else if (Distance == 6) return 14784;
				else return 14786;
		}
		BlockState Scaffolding();
		bool Bottom(BlockState Block);
		unsigned char Distance(BlockState Block);
	}
	namespace SeaLantern
	{
		constexpr BlockState SeaLantern()
		{
			return 7862;
		}
	}
	namespace SeaPickle
	{
		constexpr BlockState SeaPickle(const unsigned char Pickles)
		{
			if (Pickles == 1) return 9641;
			else if (Pickles == 2) return 9643;
			else if (Pickles == 3) return 9645;
			else return 9647;
		}
		BlockState SeaPickle();
		unsigned char Pickles(BlockState Block);
	}
	namespace Seagrass
	{
		constexpr BlockState Seagrass()
		{
			return 1345;
		}
	}
	namespace Shroomlight
	{
		constexpr BlockState Shroomlight()
		{
			return 14989;
		}
	}
	namespace ShulkerBox
	{
		constexpr BlockState ShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9272;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9273;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9274;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9275;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9276;
			else return 9277;
		}
		BlockState ShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace SkeletonSkull
	{
		constexpr BlockState SkeletonSkull(const unsigned char Rotation)
		{
			if (Rotation == 0) return 6490;
			else if (Rotation == 1) return 6491;
			else if (Rotation == 2) return 6492;
			else if (Rotation == 3) return 6493;
			else if (Rotation == 4) return 6494;
			else if (Rotation == 5) return 6495;
			else if (Rotation == 6) return 6496;
			else if (Rotation == 7) return 6497;
			else if (Rotation == 8) return 6498;
			else if (Rotation == 9) return 6499;
			else if (Rotation == 10) return 6500;
			else if (Rotation == 11) return 6501;
			else if (Rotation == 12) return 6502;
			else if (Rotation == 13) return 6503;
			else if (Rotation == 14) return 6504;
			else return 6505;
		}
		BlockState SkeletonSkull();
		unsigned char Rotation(BlockState Block);
	}
	namespace SkeletonWallSkull
	{
		constexpr BlockState SkeletonWallSkull(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6506;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6507;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6508;
			else return 6509;
		}
		BlockState SkeletonWallSkull();
		eBlockFace Facing(BlockState Block);
	}
	namespace SlimeBlock
	{
		constexpr BlockState SlimeBlock()
		{
			return 7535;
		}
	}
	namespace SmithingTable
	{
		constexpr BlockState SmithingTable()
		{
			return 14849;
		}
	}
	namespace Smoker
	{
		constexpr BlockState Smoker(const eBlockFace Facing, const bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Lit) return 14803;
				else return 14804;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Lit) return 14805;
				else return 14806;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Lit) return 14807;
				else return 14808;
			else
				if (Lit) return 14809;
				else return 14810;
		}
		BlockState Smoker();
		eBlockFace Facing(BlockState Block);
		bool Lit(BlockState Block);
	}
	namespace SmoothQuartz
	{
		constexpr BlockState SmoothQuartz()
		{
			return 8416;
		}
	}
	namespace SmoothQuartzSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState SmoothQuartzSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10832;
			else if (Type == Type::Bottom) return 10834;
			else return 10836;
		}
		BlockState SmoothQuartzSlab();
		enum Type Type(BlockState Block);
	}
	namespace SmoothQuartzStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState SmoothQuartzStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10310;
					else if (Shape == Shape::InnerLeft) return 10312;
					else if (Shape == Shape::InnerRight) return 10314;
					else if (Shape == Shape::OuterLeft) return 10316;
					else return 10318;
				else
					if (Shape == Shape::Straight) return 10320;
					else if (Shape == Shape::InnerLeft) return 10322;
					else if (Shape == Shape::InnerRight) return 10324;
					else if (Shape == Shape::OuterLeft) return 10326;
					else return 10328;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10330;
					else if (Shape == Shape::InnerLeft) return 10332;
					else if (Shape == Shape::InnerRight) return 10334;
					else if (Shape == Shape::OuterLeft) return 10336;
					else return 10338;
				else
					if (Shape == Shape::Straight) return 10340;
					else if (Shape == Shape::InnerLeft) return 10342;
					else if (Shape == Shape::InnerRight) return 10344;
					else if (Shape == Shape::OuterLeft) return 10346;
					else return 10348;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10350;
					else if (Shape == Shape::InnerLeft) return 10352;
					else if (Shape == Shape::InnerRight) return 10354;
					else if (Shape == Shape::OuterLeft) return 10356;
					else return 10358;
				else
					if (Shape == Shape::Straight) return 10360;
					else if (Shape == Shape::InnerLeft) return 10362;
					else if (Shape == Shape::InnerRight) return 10364;
					else if (Shape == Shape::OuterLeft) return 10366;
					else return 10368;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10370;
					else if (Shape == Shape::InnerLeft) return 10372;
					else if (Shape == Shape::InnerRight) return 10374;
					else if (Shape == Shape::OuterLeft) return 10376;
					else return 10378;
				else
					if (Shape == Shape::Straight) return 10380;
					else if (Shape == Shape::InnerLeft) return 10382;
					else if (Shape == Shape::InnerRight) return 10384;
					else if (Shape == Shape::OuterLeft) return 10386;
					else return 10388;
		}
		BlockState SmoothQuartzStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace SmoothRedSandstone
	{
		constexpr BlockState SmoothRedSandstone()
		{
			return 8417;
		}
	}
	namespace SmoothRedSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState SmoothRedSandstoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10796;
			else if (Type == Type::Bottom) return 10798;
			else return 10800;
		}
		BlockState SmoothRedSandstoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace SmoothRedSandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState SmoothRedSandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9750;
					else if (Shape == Shape::InnerLeft) return 9752;
					else if (Shape == Shape::InnerRight) return 9754;
					else if (Shape == Shape::OuterLeft) return 9756;
					else return 9758;
				else
					if (Shape == Shape::Straight) return 9760;
					else if (Shape == Shape::InnerLeft) return 9762;
					else if (Shape == Shape::InnerRight) return 9764;
					else if (Shape == Shape::OuterLeft) return 9766;
					else return 9768;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9770;
					else if (Shape == Shape::InnerLeft) return 9772;
					else if (Shape == Shape::InnerRight) return 9774;
					else if (Shape == Shape::OuterLeft) return 9776;
					else return 9778;
				else
					if (Shape == Shape::Straight) return 9780;
					else if (Shape == Shape::InnerLeft) return 9782;
					else if (Shape == Shape::InnerRight) return 9784;
					else if (Shape == Shape::OuterLeft) return 9786;
					else return 9788;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9790;
					else if (Shape == Shape::InnerLeft) return 9792;
					else if (Shape == Shape::InnerRight) return 9794;
					else if (Shape == Shape::OuterLeft) return 9796;
					else return 9798;
				else
					if (Shape == Shape::Straight) return 9800;
					else if (Shape == Shape::InnerLeft) return 9802;
					else if (Shape == Shape::InnerRight) return 9804;
					else if (Shape == Shape::OuterLeft) return 9806;
					else return 9808;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 9810;
					else if (Shape == Shape::InnerLeft) return 9812;
					else if (Shape == Shape::InnerRight) return 9814;
					else if (Shape == Shape::OuterLeft) return 9816;
					else return 9818;
				else
					if (Shape == Shape::Straight) return 9820;
					else if (Shape == Shape::InnerLeft) return 9822;
					else if (Shape == Shape::InnerRight) return 9824;
					else if (Shape == Shape::OuterLeft) return 9826;
					else return 9828;
		}
		BlockState SmoothRedSandstoneStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace SmoothSandstone
	{
		constexpr BlockState SmoothSandstone()
		{
			return 8415;
		}
	}
	namespace SmoothSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState SmoothSandstoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 10826;
			else if (Type == Type::Bottom) return 10828;
			else return 10830;
		}
		BlockState SmoothSandstoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace SmoothSandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState SmoothSandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10230;
					else if (Shape == Shape::InnerLeft) return 10232;
					else if (Shape == Shape::InnerRight) return 10234;
					else if (Shape == Shape::OuterLeft) return 10236;
					else return 10238;
				else
					if (Shape == Shape::Straight) return 10240;
					else if (Shape == Shape::InnerLeft) return 10242;
					else if (Shape == Shape::InnerRight) return 10244;
					else if (Shape == Shape::OuterLeft) return 10246;
					else return 10248;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10250;
					else if (Shape == Shape::InnerLeft) return 10252;
					else if (Shape == Shape::InnerRight) return 10254;
					else if (Shape == Shape::OuterLeft) return 10256;
					else return 10258;
				else
					if (Shape == Shape::Straight) return 10260;
					else if (Shape == Shape::InnerLeft) return 10262;
					else if (Shape == Shape::InnerRight) return 10264;
					else if (Shape == Shape::OuterLeft) return 10266;
					else return 10268;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10270;
					else if (Shape == Shape::InnerLeft) return 10272;
					else if (Shape == Shape::InnerRight) return 10274;
					else if (Shape == Shape::OuterLeft) return 10276;
					else return 10278;
				else
					if (Shape == Shape::Straight) return 10280;
					else if (Shape == Shape::InnerLeft) return 10282;
					else if (Shape == Shape::InnerRight) return 10284;
					else if (Shape == Shape::OuterLeft) return 10286;
					else return 10288;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10290;
					else if (Shape == Shape::InnerLeft) return 10292;
					else if (Shape == Shape::InnerRight) return 10294;
					else if (Shape == Shape::OuterLeft) return 10296;
					else return 10298;
				else
					if (Shape == Shape::Straight) return 10300;
					else if (Shape == Shape::InnerLeft) return 10302;
					else if (Shape == Shape::InnerRight) return 10304;
					else if (Shape == Shape::OuterLeft) return 10306;
					else return 10308;
		}
		BlockState SmoothSandstoneStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace SmoothStone
	{
		constexpr BlockState SmoothStone()
		{
			return 8414;
		}
	}
	namespace SmoothStoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState SmoothStoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8343;
			else if (Type == Type::Bottom) return 8345;
			else return 8347;
		}
		BlockState SmoothStoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace Snow
	{
		constexpr BlockState Snow(const unsigned char Layers)
		{
			if (Layers == 1) return 3921;
			else if (Layers == 2) return 3922;
			else if (Layers == 3) return 3923;
			else if (Layers == 4) return 3924;
			else if (Layers == 5) return 3925;
			else if (Layers == 6) return 3926;
			else if (Layers == 7) return 3927;
			else return 3928;
		}
		BlockState Snow();
		unsigned char Layers(BlockState Block);
	}
	namespace SnowBlock
	{
		constexpr BlockState SnowBlock()
		{
			return 3930;
		}
	}
	namespace SoulCampfire
	{
		constexpr BlockState SoulCampfire(const eBlockFace Facing, const bool Lit, const bool SignalFire)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Lit)
					if (SignalFire) return 14923;
					else return 14925;
				else
					if (SignalFire) return 14927;
					else return 14929;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Lit)
					if (SignalFire) return 14931;
					else return 14933;
				else
					if (SignalFire) return 14935;
					else return 14937;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Lit)
					if (SignalFire) return 14939;
					else return 14941;
				else
					if (SignalFire) return 14943;
					else return 14945;
			else
				if (Lit)
					if (SignalFire) return 14947;
					else return 14949;
				else
					if (SignalFire) return 14951;
					else return 14953;
		}
		BlockState SoulCampfire();
		eBlockFace Facing(BlockState Block);
		bool Lit(BlockState Block);
		bool SignalFire(BlockState Block);
	}
	namespace SoulFire
	{
		constexpr BlockState SoulFire()
		{
			return 1952;
		}
	}
	namespace SoulLantern
	{
		constexpr BlockState SoulLantern(const bool Hanging)
		{
			if (Hanging) return 14888;
			else return 14889;
		}
		BlockState SoulLantern();
		bool Hanging(BlockState Block);
	}
	namespace SoulSand
	{
		constexpr BlockState SoulSand()
		{
			return 4000;
		}
	}
	namespace SoulSoil
	{
		constexpr BlockState SoulSoil()
		{
			return 4001;
		}
	}
	namespace SoulTorch
	{
		constexpr BlockState SoulTorch()
		{
			return 4008;
		}
	}
	namespace SoulWallTorch
	{
		constexpr BlockState SoulWallTorch(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4009;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4010;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4011;
			else return 4012;
		}
		BlockState SoulWallTorch();
		eBlockFace Facing(BlockState Block);
	}
	namespace Spawner
	{
		constexpr BlockState Spawner()
		{
			return 1953;
		}
	}
	namespace Sponge
	{
		constexpr BlockState Sponge()
		{
			return 229;
		}
	}
	namespace SpruceButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState SpruceButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6370;
					else return 6371;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6372;
					else return 6373;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6374;
					else return 6375;
				else
					if (Powered) return 6376;
					else return 6377;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6378;
					else return 6379;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6380;
					else return 6381;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6382;
					else return 6383;
				else
					if (Powered) return 6384;
					else return 6385;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 6386;
					else return 6387;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 6388;
					else return 6389;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 6390;
					else return 6391;
				else
					if (Powered) return 6392;
					else return 6393;
		}
		BlockState SpruceButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace SpruceDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr BlockState SpruceDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8738;
							else return 8739;
						else
							if (Powered) return 8740;
							else return 8741;
					else
						if (Open)
							if (Powered) return 8742;
							else return 8743;
						else
							if (Powered) return 8744;
							else return 8745;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8746;
							else return 8747;
						else
							if (Powered) return 8748;
							else return 8749;
					else
						if (Open)
							if (Powered) return 8750;
							else return 8751;
						else
							if (Powered) return 8752;
							else return 8753;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8754;
							else return 8755;
						else
							if (Powered) return 8756;
							else return 8757;
					else
						if (Open)
							if (Powered) return 8758;
							else return 8759;
						else
							if (Powered) return 8760;
							else return 8761;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8762;
							else return 8763;
						else
							if (Powered) return 8764;
							else return 8765;
					else
						if (Open)
							if (Powered) return 8766;
							else return 8767;
						else
							if (Powered) return 8768;
							else return 8769;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8770;
							else return 8771;
						else
							if (Powered) return 8772;
							else return 8773;
					else
						if (Open)
							if (Powered) return 8774;
							else return 8775;
						else
							if (Powered) return 8776;
							else return 8777;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8778;
							else return 8779;
						else
							if (Powered) return 8780;
							else return 8781;
					else
						if (Open)
							if (Powered) return 8782;
							else return 8783;
						else
							if (Powered) return 8784;
							else return 8785;
			else
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8786;
							else return 8787;
						else
							if (Powered) return 8788;
							else return 8789;
					else
						if (Open)
							if (Powered) return 8790;
							else return 8791;
						else
							if (Powered) return 8792;
							else return 8793;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 8794;
							else return 8795;
						else
							if (Powered) return 8796;
							else return 8797;
					else
						if (Open)
							if (Powered) return 8798;
							else return 8799;
						else
							if (Powered) return 8800;
							else return 8801;
		}
		BlockState SpruceDoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Hinge Hinge(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace SpruceFence
	{
		constexpr BlockState SpruceFence(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 8580;
						else return 8581;
					else
						if (West) return 8584;
						else return 8585;
				else
					if (South)
						if (West) return 8588;
						else return 8589;
					else
						if (West) return 8592;
						else return 8593;
			else
				if (North)
					if (South)
						if (West) return 8596;
						else return 8597;
					else
						if (West) return 8600;
						else return 8601;
				else
					if (South)
						if (West) return 8604;
						else return 8605;
					else
						if (West) return 8608;
						else return 8609;
		}
		BlockState SpruceFence();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace SpruceFenceGate
	{
		constexpr BlockState SpruceFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (InWall)
					if (Open)
						if (Powered) return 8418;
						else return 8419;
					else
						if (Powered) return 8420;
						else return 8421;
				else
					if (Open)
						if (Powered) return 8422;
						else return 8423;
					else
						if (Powered) return 8424;
						else return 8425;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (InWall)
					if (Open)
						if (Powered) return 8426;
						else return 8427;
					else
						if (Powered) return 8428;
						else return 8429;
				else
					if (Open)
						if (Powered) return 8430;
						else return 8431;
					else
						if (Powered) return 8432;
						else return 8433;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (InWall)
					if (Open)
						if (Powered) return 8434;
						else return 8435;
					else
						if (Powered) return 8436;
						else return 8437;
				else
					if (Open)
						if (Powered) return 8438;
						else return 8439;
					else
						if (Powered) return 8440;
						else return 8441;
			else
				if (InWall)
					if (Open)
						if (Powered) return 8442;
						else return 8443;
					else
						if (Powered) return 8444;
						else return 8445;
				else
					if (Open)
						if (Powered) return 8446;
						else return 8447;
					else
						if (Powered) return 8448;
						else return 8449;
		}
		BlockState SpruceFenceGate();
		eBlockFace Facing(BlockState Block);
		bool InWall(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace SpruceLeaves
	{
		constexpr BlockState SpruceLeaves(const unsigned char Distance, const bool Persistent)
		{
			if (Distance == 1)
				if (Persistent) return 159;
				else return 160;
			else if (Distance == 2)
				if (Persistent) return 161;
				else return 162;
			else if (Distance == 3)
				if (Persistent) return 163;
				else return 164;
			else if (Distance == 4)
				if (Persistent) return 165;
				else return 166;
			else if (Distance == 5)
				if (Persistent) return 167;
				else return 168;
			else if (Distance == 6)
				if (Persistent) return 169;
				else return 170;
			else
				if (Persistent) return 171;
				else return 172;
		}
		BlockState SpruceLeaves();
		unsigned char Distance(BlockState Block);
		bool Persistent(BlockState Block);
	}
	namespace SpruceLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState SpruceLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 76;
			else if (Axis == Axis::Y) return 77;
			else return 78;
		}
		BlockState SpruceLog();
		enum Axis Axis(BlockState Block);
	}
	namespace SprucePlanks
	{
		constexpr BlockState SprucePlanks()
		{
			return 16;
		}
	}
	namespace SprucePressurePlate
	{
		constexpr BlockState SprucePressurePlate(const bool Powered)
		{
			if (Powered) return 3875;
			else return 3876;
		}
		BlockState SprucePressurePlate();
		bool Powered(BlockState Block);
	}
	namespace SpruceSapling
	{
		constexpr BlockState SpruceSapling(const unsigned char Stage)
		{
			if (Stage == 0) return 23;
			else return 24;
		}
		BlockState SpruceSapling();
		unsigned char Stage(BlockState Block);
	}
	namespace SpruceSign
	{
		constexpr BlockState SpruceSign(const unsigned char Rotation)
		{
			if (Rotation == 0) return 3414;
			else if (Rotation == 1) return 3416;
			else if (Rotation == 2) return 3418;
			else if (Rotation == 3) return 3420;
			else if (Rotation == 4) return 3422;
			else if (Rotation == 5) return 3424;
			else if (Rotation == 6) return 3426;
			else if (Rotation == 7) return 3428;
			else if (Rotation == 8) return 3430;
			else if (Rotation == 9) return 3432;
			else if (Rotation == 10) return 3434;
			else if (Rotation == 11) return 3436;
			else if (Rotation == 12) return 3438;
			else if (Rotation == 13) return 3440;
			else if (Rotation == 14) return 3442;
			else return 3444;
		}
		BlockState SpruceSign();
		unsigned char Rotation(BlockState Block);
	}
	namespace SpruceSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState SpruceSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8307;
			else if (Type == Type::Bottom) return 8309;
			else return 8311;
		}
		BlockState SpruceSlab();
		enum Type Type(BlockState Block);
	}
	namespace SpruceStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState SpruceStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5405;
					else if (Shape == Shape::InnerLeft) return 5407;
					else if (Shape == Shape::InnerRight) return 5409;
					else if (Shape == Shape::OuterLeft) return 5411;
					else return 5413;
				else
					if (Shape == Shape::Straight) return 5415;
					else if (Shape == Shape::InnerLeft) return 5417;
					else if (Shape == Shape::InnerRight) return 5419;
					else if (Shape == Shape::OuterLeft) return 5421;
					else return 5423;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5425;
					else if (Shape == Shape::InnerLeft) return 5427;
					else if (Shape == Shape::InnerRight) return 5429;
					else if (Shape == Shape::OuterLeft) return 5431;
					else return 5433;
				else
					if (Shape == Shape::Straight) return 5435;
					else if (Shape == Shape::InnerLeft) return 5437;
					else if (Shape == Shape::InnerRight) return 5439;
					else if (Shape == Shape::OuterLeft) return 5441;
					else return 5443;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5445;
					else if (Shape == Shape::InnerLeft) return 5447;
					else if (Shape == Shape::InnerRight) return 5449;
					else if (Shape == Shape::OuterLeft) return 5451;
					else return 5453;
				else
					if (Shape == Shape::Straight) return 5455;
					else if (Shape == Shape::InnerLeft) return 5457;
					else if (Shape == Shape::InnerRight) return 5459;
					else if (Shape == Shape::OuterLeft) return 5461;
					else return 5463;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 5465;
					else if (Shape == Shape::InnerLeft) return 5467;
					else if (Shape == Shape::InnerRight) return 5469;
					else if (Shape == Shape::OuterLeft) return 5471;
					else return 5473;
				else
					if (Shape == Shape::Straight) return 5475;
					else if (Shape == Shape::InnerLeft) return 5477;
					else if (Shape == Shape::InnerRight) return 5479;
					else if (Shape == Shape::OuterLeft) return 5481;
					else return 5483;
		}
		BlockState SpruceStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace SpruceTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr BlockState SpruceTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4176;
						else return 4178;
					else
						if (Powered) return 4180;
						else return 4182;
				else
					if (Open)
						if (Powered) return 4184;
						else return 4186;
					else
						if (Powered) return 4188;
						else return 4190;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4192;
						else return 4194;
					else
						if (Powered) return 4196;
						else return 4198;
				else
					if (Open)
						if (Powered) return 4200;
						else return 4202;
					else
						if (Powered) return 4204;
						else return 4206;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4208;
						else return 4210;
					else
						if (Powered) return 4212;
						else return 4214;
				else
					if (Open)
						if (Powered) return 4216;
						else return 4218;
					else
						if (Powered) return 4220;
						else return 4222;
			else
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 4224;
						else return 4226;
					else
						if (Powered) return 4228;
						else return 4230;
				else
					if (Open)
						if (Powered) return 4232;
						else return 4234;
					else
						if (Powered) return 4236;
						else return 4238;
		}
		BlockState SpruceTrapdoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace SpruceWallSign
	{
		constexpr BlockState SpruceWallSign(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3744;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3746;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3748;
			else return 3750;
		}
		BlockState SpruceWallSign();
		eBlockFace Facing(BlockState Block);
	}
	namespace SpruceWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState SpruceWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 112;
			else if (Axis == Axis::Y) return 113;
			else return 114;
		}
		BlockState SpruceWood();
		enum Axis Axis(BlockState Block);
	}
	namespace StickyPiston
	{
		constexpr BlockState StickyPiston(const bool Extended, const eBlockFace Facing)
		{
			if (Extended)
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1329;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1330;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1331;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1332;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1333;
				else return 1334;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1335;
				else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1336;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1337;
				else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1338;
				else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1339;
				else return 1340;
		}
		BlockState StickyPiston();
		bool Extended(BlockState Block);
		eBlockFace Facing(BlockState Block);
	}
	namespace Stone
	{
		constexpr BlockState Stone()
		{
			return 1;
		}
	}
	namespace StoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState StoneBrickSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8379;
			else if (Type == Type::Bottom) return 8381;
			else return 8383;
		}
		BlockState StoneBrickSlab();
		enum Type Type(BlockState Block);
	}
	namespace StoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState StoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 4933;
					else if (Shape == Shape::InnerLeft) return 4935;
					else if (Shape == Shape::InnerRight) return 4937;
					else if (Shape == Shape::OuterLeft) return 4939;
					else return 4941;
				else
					if (Shape == Shape::Straight) return 4943;
					else if (Shape == Shape::InnerLeft) return 4945;
					else if (Shape == Shape::InnerRight) return 4947;
					else if (Shape == Shape::OuterLeft) return 4949;
					else return 4951;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 4953;
					else if (Shape == Shape::InnerLeft) return 4955;
					else if (Shape == Shape::InnerRight) return 4957;
					else if (Shape == Shape::OuterLeft) return 4959;
					else return 4961;
				else
					if (Shape == Shape::Straight) return 4963;
					else if (Shape == Shape::InnerLeft) return 4965;
					else if (Shape == Shape::InnerRight) return 4967;
					else if (Shape == Shape::OuterLeft) return 4969;
					else return 4971;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 4973;
					else if (Shape == Shape::InnerLeft) return 4975;
					else if (Shape == Shape::InnerRight) return 4977;
					else if (Shape == Shape::OuterLeft) return 4979;
					else return 4981;
				else
					if (Shape == Shape::Straight) return 4983;
					else if (Shape == Shape::InnerLeft) return 4985;
					else if (Shape == Shape::InnerRight) return 4987;
					else if (Shape == Shape::OuterLeft) return 4989;
					else return 4991;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 4993;
					else if (Shape == Shape::InnerLeft) return 4995;
					else if (Shape == Shape::InnerRight) return 4997;
					else if (Shape == Shape::OuterLeft) return 4999;
					else return 5001;
				else
					if (Shape == Shape::Straight) return 5003;
					else if (Shape == Shape::InnerLeft) return 5005;
					else if (Shape == Shape::InnerRight) return 5007;
					else if (Shape == Shape::OuterLeft) return 5009;
					else return 5011;
		}
		BlockState StoneBrickStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	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 BlockState StoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West)
		{
			if (East == East::None)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12490;
							else if (West == West::Low) return 12491;
							else return 12492;
						else
							if (West == West::None) return 12496;
							else if (West == West::Low) return 12497;
							else return 12498;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12502;
							else if (West == West::Low) return 12503;
							else return 12504;
						else
							if (West == West::None) return 12508;
							else if (West == West::Low) return 12509;
							else return 12510;
					else
						if (Up)
							if (West == West::None) return 12514;
							else if (West == West::Low) return 12515;
							else return 12516;
						else
							if (West == West::None) return 12520;
							else if (West == West::Low) return 12521;
							else return 12522;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12526;
							else if (West == West::Low) return 12527;
							else return 12528;
						else
							if (West == West::None) return 12532;
							else if (West == West::Low) return 12533;
							else return 12534;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12538;
							else if (West == West::Low) return 12539;
							else return 12540;
						else
							if (West == West::None) return 12544;
							else if (West == West::Low) return 12545;
							else return 12546;
					else
						if (Up)
							if (West == West::None) return 12550;
							else if (West == West::Low) return 12551;
							else return 12552;
						else
							if (West == West::None) return 12556;
							else if (West == West::Low) return 12557;
							else return 12558;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12562;
							else if (West == West::Low) return 12563;
							else return 12564;
						else
							if (West == West::None) return 12568;
							else if (West == West::Low) return 12569;
							else return 12570;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12574;
							else if (West == West::Low) return 12575;
							else return 12576;
						else
							if (West == West::None) return 12580;
							else if (West == West::Low) return 12581;
							else return 12582;
					else
						if (Up)
							if (West == West::None) return 12586;
							else if (West == West::Low) return 12587;
							else return 12588;
						else
							if (West == West::None) return 12592;
							else if (West == West::Low) return 12593;
							else return 12594;
			else if (East == East::Low)
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12598;
							else if (West == West::Low) return 12599;
							else return 12600;
						else
							if (West == West::None) return 12604;
							else if (West == West::Low) return 12605;
							else return 12606;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12610;
							else if (West == West::Low) return 12611;
							else return 12612;
						else
							if (West == West::None) return 12616;
							else if (West == West::Low) return 12617;
							else return 12618;
					else
						if (Up)
							if (West == West::None) return 12622;
							else if (West == West::Low) return 12623;
							else return 12624;
						else
							if (West == West::None) return 12628;
							else if (West == West::Low) return 12629;
							else return 12630;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12634;
							else if (West == West::Low) return 12635;
							else return 12636;
						else
							if (West == West::None) return 12640;
							else if (West == West::Low) return 12641;
							else return 12642;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12646;
							else if (West == West::Low) return 12647;
							else return 12648;
						else
							if (West == West::None) return 12652;
							else if (West == West::Low) return 12653;
							else return 12654;
					else
						if (Up)
							if (West == West::None) return 12658;
							else if (West == West::Low) return 12659;
							else return 12660;
						else
							if (West == West::None) return 12664;
							else if (West == West::Low) return 12665;
							else return 12666;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12670;
							else if (West == West::Low) return 12671;
							else return 12672;
						else
							if (West == West::None) return 12676;
							else if (West == West::Low) return 12677;
							else return 12678;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12682;
							else if (West == West::Low) return 12683;
							else return 12684;
						else
							if (West == West::None) return 12688;
							else if (West == West::Low) return 12689;
							else return 12690;
					else
						if (Up)
							if (West == West::None) return 12694;
							else if (West == West::Low) return 12695;
							else return 12696;
						else
							if (West == West::None) return 12700;
							else if (West == West::Low) return 12701;
							else return 12702;
			else
				if (North == North::None)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12706;
							else if (West == West::Low) return 12707;
							else return 12708;
						else
							if (West == West::None) return 12712;
							else if (West == West::Low) return 12713;
							else return 12714;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12718;
							else if (West == West::Low) return 12719;
							else return 12720;
						else
							if (West == West::None) return 12724;
							else if (West == West::Low) return 12725;
							else return 12726;
					else
						if (Up)
							if (West == West::None) return 12730;
							else if (West == West::Low) return 12731;
							else return 12732;
						else
							if (West == West::None) return 12736;
							else if (West == West::Low) return 12737;
							else return 12738;
				else if (North == North::Low)
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12742;
							else if (West == West::Low) return 12743;
							else return 12744;
						else
							if (West == West::None) return 12748;
							else if (West == West::Low) return 12749;
							else return 12750;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12754;
							else if (West == West::Low) return 12755;
							else return 12756;
						else
							if (West == West::None) return 12760;
							else if (West == West::Low) return 12761;
							else return 12762;
					else
						if (Up)
							if (West == West::None) return 12766;
							else if (West == West::Low) return 12767;
							else return 12768;
						else
							if (West == West::None) return 12772;
							else if (West == West::Low) return 12773;
							else return 12774;
				else
					if (South == South::None)
						if (Up)
							if (West == West::None) return 12778;
							else if (West == West::Low) return 12779;
							else return 12780;
						else
							if (West == West::None) return 12784;
							else if (West == West::Low) return 12785;
							else return 12786;
					else if (South == South::Low)
						if (Up)
							if (West == West::None) return 12790;
							else if (West == West::Low) return 12791;
							else return 12792;
						else
							if (West == West::None) return 12796;
							else if (West == West::Low) return 12797;
							else return 12798;
					else
						if (Up)
							if (West == West::None) return 12802;
							else if (West == West::Low) return 12803;
							else return 12804;
						else
							if (West == West::None) return 12808;
							else if (West == West::Low) return 12809;
							else return 12810;
		}
		BlockState StoneBrickWall();
		enum East East(BlockState Block);
		enum North North(BlockState Block);
		enum South South(BlockState Block);
		bool Up(BlockState Block);
		enum West West(BlockState Block);
	}
	namespace StoneBricks
	{
		constexpr BlockState StoneBricks()
		{
			return 4495;
		}
	}
	namespace StoneButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState StoneButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 3897;
					else return 3898;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 3899;
					else return 3900;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 3901;
					else return 3902;
				else
					if (Powered) return 3903;
					else return 3904;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 3905;
					else return 3906;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 3907;
					else return 3908;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 3909;
					else return 3910;
				else
					if (Powered) return 3911;
					else return 3912;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 3913;
					else return 3914;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 3915;
					else return 3916;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 3917;
					else return 3918;
				else
					if (Powered) return 3919;
					else return 3920;
		}
		BlockState StoneButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace StonePressurePlate
	{
		constexpr BlockState StonePressurePlate(const bool Powered)
		{
			if (Powered) return 3807;
			else return 3808;
		}
		BlockState StonePressurePlate();
		bool Powered(BlockState Block);
	}
	namespace StoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState StoneSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 8337;
			else if (Type == Type::Bottom) return 8339;
			else return 8341;
		}
		BlockState StoneSlab();
		enum Type Type(BlockState Block);
	}
	namespace StoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState StoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10150;
					else if (Shape == Shape::InnerLeft) return 10152;
					else if (Shape == Shape::InnerRight) return 10154;
					else if (Shape == Shape::OuterLeft) return 10156;
					else return 10158;
				else
					if (Shape == Shape::Straight) return 10160;
					else if (Shape == Shape::InnerLeft) return 10162;
					else if (Shape == Shape::InnerRight) return 10164;
					else if (Shape == Shape::OuterLeft) return 10166;
					else return 10168;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10170;
					else if (Shape == Shape::InnerLeft) return 10172;
					else if (Shape == Shape::InnerRight) return 10174;
					else if (Shape == Shape::OuterLeft) return 10176;
					else return 10178;
				else
					if (Shape == Shape::Straight) return 10180;
					else if (Shape == Shape::InnerLeft) return 10182;
					else if (Shape == Shape::InnerRight) return 10184;
					else if (Shape == Shape::OuterLeft) return 10186;
					else return 10188;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10190;
					else if (Shape == Shape::InnerLeft) return 10192;
					else if (Shape == Shape::InnerRight) return 10194;
					else if (Shape == Shape::OuterLeft) return 10196;
					else return 10198;
				else
					if (Shape == Shape::Straight) return 10200;
					else if (Shape == Shape::InnerLeft) return 10202;
					else if (Shape == Shape::InnerRight) return 10204;
					else if (Shape == Shape::OuterLeft) return 10206;
					else return 10208;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 10210;
					else if (Shape == Shape::InnerLeft) return 10212;
					else if (Shape == Shape::InnerRight) return 10214;
					else if (Shape == Shape::OuterLeft) return 10216;
					else return 10218;
				else
					if (Shape == Shape::Straight) return 10220;
					else if (Shape == Shape::InnerLeft) return 10222;
					else if (Shape == Shape::InnerRight) return 10224;
					else if (Shape == Shape::OuterLeft) return 10226;
					else return 10228;
		}
		BlockState StoneStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace Stonecutter
	{
		constexpr BlockState Stonecutter(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14850;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14851;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14852;
			else return 14853;
		}
		BlockState Stonecutter();
		eBlockFace Facing(BlockState Block);
	}
	namespace StrippedAcaciaLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedAcaciaLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 100;
			else if (Axis == Axis::Y) return 101;
			else return 102;
		}
		BlockState StrippedAcaciaLog();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedAcaciaWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedAcaciaWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 139;
			else if (Axis == Axis::Y) return 140;
			else return 141;
		}
		BlockState StrippedAcaciaWood();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedBirchLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedBirchLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 94;
			else if (Axis == Axis::Y) return 95;
			else return 96;
		}
		BlockState StrippedBirchLog();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedBirchWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedBirchWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 133;
			else if (Axis == Axis::Y) return 134;
			else return 135;
		}
		BlockState StrippedBirchWood();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedCrimsonHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedCrimsonHyphae(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 14984;
			else if (Axis == Axis::Y) return 14985;
			else return 14986;
		}
		BlockState StrippedCrimsonHyphae();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedCrimsonStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedCrimsonStem(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 14978;
			else if (Axis == Axis::Y) return 14979;
			else return 14980;
		}
		BlockState StrippedCrimsonStem();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedDarkOakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedDarkOakLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 103;
			else if (Axis == Axis::Y) return 104;
			else return 105;
		}
		BlockState StrippedDarkOakLog();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedDarkOakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedDarkOakWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 142;
			else if (Axis == Axis::Y) return 143;
			else return 144;
		}
		BlockState StrippedDarkOakWood();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedJungleLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedJungleLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 97;
			else if (Axis == Axis::Y) return 98;
			else return 99;
		}
		BlockState StrippedJungleLog();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedJungleWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedJungleWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 136;
			else if (Axis == Axis::Y) return 137;
			else return 138;
		}
		BlockState StrippedJungleWood();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedOakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedOakLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 106;
			else if (Axis == Axis::Y) return 107;
			else return 108;
		}
		BlockState StrippedOakLog();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedOakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedOakWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 127;
			else if (Axis == Axis::Y) return 128;
			else return 129;
		}
		BlockState StrippedOakWood();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedSpruceLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedSpruceLog(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 91;
			else if (Axis == Axis::Y) return 92;
			else return 93;
		}
		BlockState StrippedSpruceLog();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedSpruceWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedSpruceWood(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 130;
			else if (Axis == Axis::Y) return 131;
			else return 132;
		}
		BlockState StrippedSpruceWood();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedWarpedHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedWarpedHyphae(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 14967;
			else if (Axis == Axis::Y) return 14968;
			else return 14969;
		}
		BlockState StrippedWarpedHyphae();
		enum Axis Axis(BlockState Block);
	}
	namespace StrippedWarpedStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState StrippedWarpedStem(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 14961;
			else if (Axis == Axis::Y) return 14962;
			else return 14963;
		}
		BlockState StrippedWarpedStem();
		enum Axis Axis(BlockState Block);
	}
	namespace StructureBlock
	{
		enum class Mode
		{
			Save,
			Load,
			Corner,
			Data
		};
		constexpr BlockState StructureBlock(const enum Mode Mode)
		{
			if (Mode == Mode::Save) return 15735;
			else if (Mode == Mode::Load) return 15736;
			else if (Mode == Mode::Corner) return 15737;
			else return 15738;
		}
		BlockState StructureBlock();
		enum Mode Mode(BlockState Block);
	}
	namespace StructureVoid
	{
		constexpr BlockState StructureVoid()
		{
			return 9259;
		}
	}
	namespace SugarCane
	{
		constexpr BlockState SugarCane(const unsigned char Age)
		{
			if (Age == 0) return 3948;
			else if (Age == 1) return 3949;
			else if (Age == 2) return 3950;
			else if (Age == 3) return 3951;
			else if (Age == 4) return 3952;
			else if (Age == 5) return 3953;
			else if (Age == 6) return 3954;
			else if (Age == 7) return 3955;
			else if (Age == 8) return 3956;
			else if (Age == 9) return 3957;
			else if (Age == 10) return 3958;
			else if (Age == 11) return 3959;
			else if (Age == 12) return 3960;
			else if (Age == 13) return 3961;
			else if (Age == 14) return 3962;
			else return 3963;
		}
		BlockState SugarCane();
		unsigned char Age(BlockState Block);
	}
	namespace Sunflower
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr BlockState Sunflower(const enum Half Half)
		{
			if (Half == Half::Upper) return 7885;
			else return 7886;
		}
		BlockState Sunflower();
		enum Half Half(BlockState Block);
	}
	namespace SweetBerryBush
	{
		constexpr BlockState SweetBerryBush(const unsigned char Age)
		{
			if (Age == 0) return 14954;
			else if (Age == 1) return 14955;
			else if (Age == 2) return 14956;
			else return 14957;
		}
		BlockState SweetBerryBush();
		unsigned char Age(BlockState Block);
	}
	namespace TNT
	{
		constexpr BlockState TNT(const bool Unstable)
		{
			if (Unstable) return 1430;
			else return 1431;
		}
		BlockState TNT();
		bool Unstable(BlockState Block);
	}
	namespace TallGrass
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr BlockState TallGrass(const enum Half Half)
		{
			if (Half == Half::Upper) return 7893;
			else return 7894;
		}
		BlockState TallGrass();
		enum Half Half(BlockState Block);
	}
	namespace TallSeagrass
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr BlockState TallSeagrass(const enum Half Half)
		{
			if (Half == Half::Upper) return 1346;
			else return 1347;
		}
		BlockState TallSeagrass();
		enum Half Half(BlockState Block);
	}
	namespace Target
	{
		constexpr BlockState Target(const unsigned char Power)
		{
			if (Power == 0) return 15760;
			else if (Power == 1) return 15761;
			else if (Power == 2) return 15762;
			else if (Power == 3) return 15763;
			else if (Power == 4) return 15764;
			else if (Power == 5) return 15765;
			else if (Power == 6) return 15766;
			else if (Power == 7) return 15767;
			else if (Power == 8) return 15768;
			else if (Power == 9) return 15769;
			else if (Power == 10) return 15770;
			else if (Power == 11) return 15771;
			else if (Power == 12) return 15772;
			else if (Power == 13) return 15773;
			else if (Power == 14) return 15774;
			else return 15775;
		}
		BlockState Target();
		unsigned char Power(BlockState Block);
	}
	namespace Terracotta
	{
		constexpr BlockState Terracotta()
		{
			return 7882;
		}
	}
	namespace Torch
	{
		constexpr BlockState Torch()
		{
			return 1435;
		}
	}
	namespace TrappedChest
	{
		enum class Type
		{
			Single,
			Left,
			Right
		};
		constexpr BlockState TrappedChest(const eBlockFace Facing, const enum Type Type)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Type == Type::Single) return 6623;
				else if (Type == Type::Left) return 6625;
				else return 6627;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Type == Type::Single) return 6629;
				else if (Type == Type::Left) return 6631;
				else return 6633;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Type == Type::Single) return 6635;
				else if (Type == Type::Left) return 6637;
				else return 6639;
			else
				if (Type == Type::Single) return 6641;
				else if (Type == Type::Left) return 6643;
				else return 6645;
		}
		BlockState TrappedChest();
		eBlockFace Facing(BlockState Block);
		enum Type Type(BlockState Block);
	}
	namespace Tripwire
	{
		constexpr BlockState Tripwire(const bool Attached, const bool Disarmed, const bool East, const bool North, const bool Powered, const bool South, const bool West)
		{
			if (Attached)
				if (Disarmed)
					if (East)
						if (North)
							if (Powered)
								if (South)
									if (West) return 5275;
									else return 5276;
								else
									if (West) return 5277;
									else return 5278;
							else
								if (South)
									if (West) return 5279;
									else return 5280;
								else
									if (West) return 5281;
									else return 5282;
						else
							if (Powered)
								if (South)
									if (West) return 5283;
									else return 5284;
								else
									if (West) return 5285;
									else return 5286;
							else
								if (South)
									if (West) return 5287;
									else return 5288;
								else
									if (West) return 5289;
									else return 5290;
					else
						if (North)
							if (Powered)
								if (South)
									if (West) return 5291;
									else return 5292;
								else
									if (West) return 5293;
									else return 5294;
							else
								if (South)
									if (West) return 5295;
									else return 5296;
								else
									if (West) return 5297;
									else return 5298;
						else
							if (Powered)
								if (South)
									if (West) return 5299;
									else return 5300;
								else
									if (West) return 5301;
									else return 5302;
							else
								if (South)
									if (West) return 5303;
									else return 5304;
								else
									if (West) return 5305;
									else return 5306;
				else
					if (East)
						if (North)
							if (Powered)
								if (South)
									if (West) return 5307;
									else return 5308;
								else
									if (West) return 5309;
									else return 5310;
							else
								if (South)
									if (West) return 5311;
									else return 5312;
								else
									if (West) return 5313;
									else return 5314;
						else
							if (Powered)
								if (South)
									if (West) return 5315;
									else return 5316;
								else
									if (West) return 5317;
									else return 5318;
							else
								if (South)
									if (West) return 5319;
									else return 5320;
								else
									if (West) return 5321;
									else return 5322;
					else
						if (North)
							if (Powered)
								if (South)
									if (West) return 5323;
									else return 5324;
								else
									if (West) return 5325;
									else return 5326;
							else
								if (South)
									if (West) return 5327;
									else return 5328;
								else
									if (West) return 5329;
									else return 5330;
						else
							if (Powered)
								if (South)
									if (West) return 5331;
									else return 5332;
								else
									if (West) return 5333;
									else return 5334;
							else
								if (South)
									if (West) return 5335;
									else return 5336;
								else
									if (West) return 5337;
									else return 5338;
			else
				if (Disarmed)
					if (East)
						if (North)
							if (Powered)
								if (South)
									if (West) return 5339;
									else return 5340;
								else
									if (West) return 5341;
									else return 5342;
							else
								if (South)
									if (West) return 5343;
									else return 5344;
								else
									if (West) return 5345;
									else return 5346;
						else
							if (Powered)
								if (South)
									if (West) return 5347;
									else return 5348;
								else
									if (West) return 5349;
									else return 5350;
							else
								if (South)
									if (West) return 5351;
									else return 5352;
								else
									if (West) return 5353;
									else return 5354;
					else
						if (North)
							if (Powered)
								if (South)
									if (West) return 5355;
									else return 5356;
								else
									if (West) return 5357;
									else return 5358;
							else
								if (South)
									if (West) return 5359;
									else return 5360;
								else
									if (West) return 5361;
									else return 5362;
						else
							if (Powered)
								if (South)
									if (West) return 5363;
									else return 5364;
								else
									if (West) return 5365;
									else return 5366;
							else
								if (South)
									if (West) return 5367;
									else return 5368;
								else
									if (West) return 5369;
									else return 5370;
				else
					if (East)
						if (North)
							if (Powered)
								if (South)
									if (West) return 5371;
									else return 5372;
								else
									if (West) return 5373;
									else return 5374;
							else
								if (South)
									if (West) return 5375;
									else return 5376;
								else
									if (West) return 5377;
									else return 5378;
						else
							if (Powered)
								if (South)
									if (West) return 5379;
									else return 5380;
								else
									if (West) return 5381;
									else return 5382;
							else
								if (South)
									if (West) return 5383;
									else return 5384;
								else
									if (West) return 5385;
									else return 5386;
					else
						if (North)
							if (Powered)
								if (South)
									if (West) return 5387;
									else return 5388;
								else
									if (West) return 5389;
									else return 5390;
							else
								if (South)
									if (West) return 5391;
									else return 5392;
								else
									if (West) return 5393;
									else return 5394;
						else
							if (Powered)
								if (South)
									if (West) return 5395;
									else return 5396;
								else
									if (West) return 5397;
									else return 5398;
							else
								if (South)
									if (West) return 5399;
									else return 5400;
								else
									if (West) return 5401;
									else return 5402;
		}
		BlockState Tripwire();
		bool Attached(BlockState Block);
		bool Disarmed(BlockState Block);
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool Powered(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace TripwireHook
	{
		constexpr BlockState TripwireHook(const bool Attached, const eBlockFace Facing, const bool Powered)
		{
			if (Attached)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 5259;
					else return 5260;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 5261;
					else return 5262;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 5263;
					else return 5264;
				else
					if (Powered) return 5265;
					else return 5266;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 5267;
					else return 5268;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 5269;
					else return 5270;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 5271;
					else return 5272;
				else
					if (Powered) return 5273;
					else return 5274;
		}
		BlockState TripwireHook();
		bool Attached(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace TubeCoral
	{
		constexpr BlockState TubeCoral()
		{
			return 9531;
		}
	}
	namespace TubeCoralBlock
	{
		constexpr BlockState TubeCoralBlock()
		{
			return 9515;
		}
	}
	namespace TubeCoralFan
	{
		constexpr BlockState TubeCoralFan()
		{
			return 9551;
		}
	}
	namespace TubeCoralWallFan
	{
		constexpr BlockState TubeCoralWallFan(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9601;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9603;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9605;
			else return 9607;
		}
		BlockState TubeCoralWallFan();
		eBlockFace Facing(BlockState Block);
	}
	namespace TurtleEgg
	{
		constexpr BlockState TurtleEgg(const unsigned char Eggs, const unsigned char Hatch)
		{
			if (Eggs == 1)
				if (Hatch == 0) return 9498;
				else if (Hatch == 1) return 9499;
				else return 9500;
			else if (Eggs == 2)
				if (Hatch == 0) return 9501;
				else if (Hatch == 1) return 9502;
				else return 9503;
			else if (Eggs == 3)
				if (Hatch == 0) return 9504;
				else if (Hatch == 1) return 9505;
				else return 9506;
			else
				if (Hatch == 0) return 9507;
				else if (Hatch == 1) return 9508;
				else return 9509;
		}
		BlockState TurtleEgg();
		unsigned char Eggs(BlockState Block);
		unsigned char Hatch(BlockState Block);
	}
	namespace TwistingVines
	{
		constexpr BlockState TwistingVines(const unsigned char Age)
		{
			if (Age == 0) return 15017;
			else if (Age == 1) return 15018;
			else if (Age == 2) return 15019;
			else if (Age == 3) return 15020;
			else if (Age == 4) return 15021;
			else if (Age == 5) return 15022;
			else if (Age == 6) return 15023;
			else if (Age == 7) return 15024;
			else if (Age == 8) return 15025;
			else if (Age == 9) return 15026;
			else if (Age == 10) return 15027;
			else if (Age == 11) return 15028;
			else if (Age == 12) return 15029;
			else if (Age == 13) return 15030;
			else if (Age == 14) return 15031;
			else if (Age == 15) return 15032;
			else if (Age == 16) return 15033;
			else if (Age == 17) return 15034;
			else if (Age == 18) return 15035;
			else if (Age == 19) return 15036;
			else if (Age == 20) return 15037;
			else if (Age == 21) return 15038;
			else if (Age == 22) return 15039;
			else if (Age == 23) return 15040;
			else if (Age == 24) return 15041;
			else return 15042;
		}
		BlockState TwistingVines();
		unsigned char Age(BlockState Block);
	}
	namespace TwistingVinesPlant
	{
		constexpr BlockState TwistingVinesPlant()
		{
			return 15043;
		}
	}
	namespace Vine
	{
		constexpr BlockState Vine(const bool East, const bool North, const bool South, const bool Up, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (Up)
							if (West) return 4788;
							else return 4789;
						else
							if (West) return 4790;
							else return 4791;
					else
						if (Up)
							if (West) return 4792;
							else return 4793;
						else
							if (West) return 4794;
							else return 4795;
				else
					if (South)
						if (Up)
							if (West) return 4796;
							else return 4797;
						else
							if (West) return 4798;
							else return 4799;
					else
						if (Up)
							if (West) return 4800;
							else return 4801;
						else
							if (West) return 4802;
							else return 4803;
			else
				if (North)
					if (South)
						if (Up)
							if (West) return 4804;
							else return 4805;
						else
							if (West) return 4806;
							else return 4807;
					else
						if (Up)
							if (West) return 4808;
							else return 4809;
						else
							if (West) return 4810;
							else return 4811;
				else
					if (South)
						if (Up)
							if (West) return 4812;
							else return 4813;
						else
							if (West) return 4814;
							else return 4815;
					else
						if (Up)
							if (West) return 4816;
							else return 4817;
						else
							if (West) return 4818;
							else return 4819;
		}
		BlockState Vine();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool Up(BlockState Block);
		bool West(BlockState Block);
	}
	namespace VoidAir
	{
		constexpr BlockState VoidAir()
		{
			return 9665;
		}
	}
	namespace WallTorch
	{
		constexpr BlockState WallTorch(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1436;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1437;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1438;
			else return 1439;
		}
		BlockState WallTorch();
		eBlockFace Facing(BlockState Block);
	}
	namespace WarpedButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr BlockState WarpedButton(const enum Face Face, const eBlockFace Facing, const bool Powered)
		{
			if (Face == Face::Floor)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 15503;
					else return 15504;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 15505;
					else return 15506;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 15507;
					else return 15508;
				else
					if (Powered) return 15509;
					else return 15510;
			else if (Face == Face::Wall)
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 15511;
					else return 15512;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 15513;
					else return 15514;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 15515;
					else return 15516;
				else
					if (Powered) return 15517;
					else return 15518;
			else
				if (Facing == eBlockFace::BLOCK_FACE_ZM)
					if (Powered) return 15519;
					else return 15520;
				else if (Facing == eBlockFace::BLOCK_FACE_ZP)
					if (Powered) return 15521;
					else return 15522;
				else if (Facing == eBlockFace::BLOCK_FACE_XM)
					if (Powered) return 15523;
					else return 15524;
				else
					if (Powered) return 15525;
					else return 15526;
		}
		BlockState WarpedButton();
		enum Face Face(BlockState Block);
		eBlockFace Facing(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace WarpedDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr BlockState WarpedDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15591;
							else return 15592;
						else
							if (Powered) return 15593;
							else return 15594;
					else
						if (Open)
							if (Powered) return 15595;
							else return 15596;
						else
							if (Powered) return 15597;
							else return 15598;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15599;
							else return 15600;
						else
							if (Powered) return 15601;
							else return 15602;
					else
						if (Open)
							if (Powered) return 15603;
							else return 15604;
						else
							if (Powered) return 15605;
							else return 15606;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15607;
							else return 15608;
						else
							if (Powered) return 15609;
							else return 15610;
					else
						if (Open)
							if (Powered) return 15611;
							else return 15612;
						else
							if (Powered) return 15613;
							else return 15614;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15615;
							else return 15616;
						else
							if (Powered) return 15617;
							else return 15618;
					else
						if (Open)
							if (Powered) return 15619;
							else return 15620;
						else
							if (Powered) return 15621;
							else return 15622;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15623;
							else return 15624;
						else
							if (Powered) return 15625;
							else return 15626;
					else
						if (Open)
							if (Powered) return 15627;
							else return 15628;
						else
							if (Powered) return 15629;
							else return 15630;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15631;
							else return 15632;
						else
							if (Powered) return 15633;
							else return 15634;
					else
						if (Open)
							if (Powered) return 15635;
							else return 15636;
						else
							if (Powered) return 15637;
							else return 15638;
			else
				if (Half == Half::Upper)
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15639;
							else return 15640;
						else
							if (Powered) return 15641;
							else return 15642;
					else
						if (Open)
							if (Powered) return 15643;
							else return 15644;
						else
							if (Powered) return 15645;
							else return 15646;
				else
					if (Hinge == Hinge::Left)
						if (Open)
							if (Powered) return 15647;
							else return 15648;
						else
							if (Powered) return 15649;
							else return 15650;
					else
						if (Open)
							if (Powered) return 15651;
							else return 15652;
						else
							if (Powered) return 15653;
							else return 15654;
		}
		BlockState WarpedDoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Hinge Hinge(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace WarpedFence
	{
		constexpr BlockState WarpedFence(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 15097;
						else return 15098;
					else
						if (West) return 15101;
						else return 15102;
				else
					if (South)
						if (West) return 15105;
						else return 15106;
					else
						if (West) return 15109;
						else return 15110;
			else
				if (North)
					if (South)
						if (West) return 15113;
						else return 15114;
					else
						if (West) return 15117;
						else return 15118;
				else
					if (South)
						if (West) return 15121;
						else return 15122;
					else
						if (West) return 15125;
						else return 15126;
		}
		BlockState WarpedFence();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace WarpedFenceGate
	{
		constexpr BlockState WarpedFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (InWall)
					if (Open)
						if (Powered) return 15287;
						else return 15288;
					else
						if (Powered) return 15289;
						else return 15290;
				else
					if (Open)
						if (Powered) return 15291;
						else return 15292;
					else
						if (Powered) return 15293;
						else return 15294;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (InWall)
					if (Open)
						if (Powered) return 15295;
						else return 15296;
					else
						if (Powered) return 15297;
						else return 15298;
				else
					if (Open)
						if (Powered) return 15299;
						else return 15300;
					else
						if (Powered) return 15301;
						else return 15302;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (InWall)
					if (Open)
						if (Powered) return 15303;
						else return 15304;
					else
						if (Powered) return 15305;
						else return 15306;
				else
					if (Open)
						if (Powered) return 15307;
						else return 15308;
					else
						if (Powered) return 15309;
						else return 15310;
			else
				if (InWall)
					if (Open)
						if (Powered) return 15311;
						else return 15312;
					else
						if (Powered) return 15313;
						else return 15314;
				else
					if (Open)
						if (Powered) return 15315;
						else return 15316;
					else
						if (Powered) return 15317;
						else return 15318;
		}
		BlockState WarpedFenceGate();
		eBlockFace Facing(BlockState Block);
		bool InWall(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace WarpedFungus
	{
		constexpr BlockState WarpedFungus()
		{
			return 14971;
		}
	}
	namespace WarpedHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState WarpedHyphae(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 14964;
			else if (Axis == Axis::Y) return 14965;
			else return 14966;
		}
		BlockState WarpedHyphae();
		enum Axis Axis(BlockState Block);
	}
	namespace WarpedNylium
	{
		constexpr BlockState WarpedNylium()
		{
			return 14970;
		}
	}
	namespace WarpedPlanks
	{
		constexpr BlockState WarpedPlanks()
		{
			return 15046;
		}
	}
	namespace WarpedPressurePlate
	{
		constexpr BlockState WarpedPressurePlate(const bool Powered)
		{
			if (Powered) return 15061;
			else return 15062;
		}
		BlockState WarpedPressurePlate();
		bool Powered(BlockState Block);
	}
	namespace WarpedRoots
	{
		constexpr BlockState WarpedRoots()
		{
			return 14973;
		}
	}
	namespace WarpedSign
	{
		constexpr BlockState WarpedSign(const unsigned char Rotation)
		{
			if (Rotation == 0) return 15688;
			else if (Rotation == 1) return 15690;
			else if (Rotation == 2) return 15692;
			else if (Rotation == 3) return 15694;
			else if (Rotation == 4) return 15696;
			else if (Rotation == 5) return 15698;
			else if (Rotation == 6) return 15700;
			else if (Rotation == 7) return 15702;
			else if (Rotation == 8) return 15704;
			else if (Rotation == 9) return 15706;
			else if (Rotation == 10) return 15708;
			else if (Rotation == 11) return 15710;
			else if (Rotation == 12) return 15712;
			else if (Rotation == 13) return 15714;
			else if (Rotation == 14) return 15716;
			else return 15718;
		}
		BlockState WarpedSign();
		unsigned char Rotation(BlockState Block);
	}
	namespace WarpedSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr BlockState WarpedSlab(const enum Type Type)
		{
			if (Type == Type::Top) return 15054;
			else if (Type == Type::Bottom) return 15056;
			else return 15058;
		}
		BlockState WarpedSlab();
		enum Type Type(BlockState Block);
	}
	namespace WarpedStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr BlockState WarpedStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15400;
					else if (Shape == Shape::InnerLeft) return 15402;
					else if (Shape == Shape::InnerRight) return 15404;
					else if (Shape == Shape::OuterLeft) return 15406;
					else return 15408;
				else
					if (Shape == Shape::Straight) return 15410;
					else if (Shape == Shape::InnerLeft) return 15412;
					else if (Shape == Shape::InnerRight) return 15414;
					else if (Shape == Shape::OuterLeft) return 15416;
					else return 15418;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15420;
					else if (Shape == Shape::InnerLeft) return 15422;
					else if (Shape == Shape::InnerRight) return 15424;
					else if (Shape == Shape::OuterLeft) return 15426;
					else return 15428;
				else
					if (Shape == Shape::Straight) return 15430;
					else if (Shape == Shape::InnerLeft) return 15432;
					else if (Shape == Shape::InnerRight) return 15434;
					else if (Shape == Shape::OuterLeft) return 15436;
					else return 15438;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15440;
					else if (Shape == Shape::InnerLeft) return 15442;
					else if (Shape == Shape::InnerRight) return 15444;
					else if (Shape == Shape::OuterLeft) return 15446;
					else return 15448;
				else
					if (Shape == Shape::Straight) return 15450;
					else if (Shape == Shape::InnerLeft) return 15452;
					else if (Shape == Shape::InnerRight) return 15454;
					else if (Shape == Shape::OuterLeft) return 15456;
					else return 15458;
			else
				if (Half == Half::Top)
					if (Shape == Shape::Straight) return 15460;
					else if (Shape == Shape::InnerLeft) return 15462;
					else if (Shape == Shape::InnerRight) return 15464;
					else if (Shape == Shape::OuterLeft) return 15466;
					else return 15468;
				else
					if (Shape == Shape::Straight) return 15470;
					else if (Shape == Shape::InnerLeft) return 15472;
					else if (Shape == Shape::InnerRight) return 15474;
					else if (Shape == Shape::OuterLeft) return 15476;
					else return 15478;
		}
		BlockState WarpedStairs();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		enum Shape Shape(BlockState Block);
	}
	namespace WarpedStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr BlockState WarpedStem(const enum Axis Axis)
		{
			if (Axis == Axis::X) return 14958;
			else if (Axis == Axis::Y) return 14959;
			else return 14960;
		}
		BlockState WarpedStem();
		enum Axis Axis(BlockState Block);
	}
	namespace WarpedTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr BlockState WarpedTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 15192;
						else return 15194;
					else
						if (Powered) return 15196;
						else return 15198;
				else
					if (Open)
						if (Powered) return 15200;
						else return 15202;
					else
						if (Powered) return 15204;
						else return 15206;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 15208;
						else return 15210;
					else
						if (Powered) return 15212;
						else return 15214;
				else
					if (Open)
						if (Powered) return 15216;
						else return 15218;
					else
						if (Powered) return 15220;
						else return 15222;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 15224;
						else return 15226;
					else
						if (Powered) return 15228;
						else return 15230;
				else
					if (Open)
						if (Powered) return 15232;
						else return 15234;
					else
						if (Powered) return 15236;
						else return 15238;
			else
				if (Half == Half::Top)
					if (Open)
						if (Powered) return 15240;
						else return 15242;
					else
						if (Powered) return 15244;
						else return 15246;
				else
					if (Open)
						if (Powered) return 15248;
						else return 15250;
					else
						if (Powered) return 15252;
						else return 15254;
		}
		BlockState WarpedTrapdoor();
		eBlockFace Facing(BlockState Block);
		enum Half Half(BlockState Block);
		bool Open(BlockState Block);
		bool Powered(BlockState Block);
	}
	namespace WarpedWallSign
	{
		constexpr BlockState WarpedWallSign(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 15728;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 15730;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 15732;
			else return 15734;
		}
		BlockState WarpedWallSign();
		eBlockFace Facing(BlockState Block);
	}
	namespace WarpedWartBlock
	{
		constexpr BlockState WarpedWartBlock()
		{
			return 14972;
		}
	}
	namespace Water
	{
		constexpr BlockState Water(const unsigned char Level)
		{
			if (Level == 0) return 34;
			else if (Level == 1) return 35;
			else if (Level == 2) return 36;
			else if (Level == 3) return 37;
			else if (Level == 4) return 38;
			else if (Level == 5) return 39;
			else if (Level == 6) return 40;
			else if (Level == 7) return 41;
			else if (Level == 8) return 42;
			else if (Level == 9) return 43;
			else if (Level == 10) return 44;
			else if (Level == 11) return 45;
			else if (Level == 12) return 46;
			else if (Level == 13) return 47;
			else if (Level == 14) return 48;
			else return 49;
		}
		BlockState Water();
		unsigned char Level(BlockState Block);
	}
	namespace WeepingVines
	{
		constexpr BlockState WeepingVines(const unsigned char Age)
		{
			if (Age == 0) return 14990;
			else if (Age == 1) return 14991;
			else if (Age == 2) return 14992;
			else if (Age == 3) return 14993;
			else if (Age == 4) return 14994;
			else if (Age == 5) return 14995;
			else if (Age == 6) return 14996;
			else if (Age == 7) return 14997;
			else if (Age == 8) return 14998;
			else if (Age == 9) return 14999;
			else if (Age == 10) return 15000;
			else if (Age == 11) return 15001;
			else if (Age == 12) return 15002;
			else if (Age == 13) return 15003;
			else if (Age == 14) return 15004;
			else if (Age == 15) return 15005;
			else if (Age == 16) return 15006;
			else if (Age == 17) return 15007;
			else if (Age == 18) return 15008;
			else if (Age == 19) return 15009;
			else if (Age == 20) return 15010;
			else if (Age == 21) return 15011;
			else if (Age == 22) return 15012;
			else if (Age == 23) return 15013;
			else if (Age == 24) return 15014;
			else return 15015;
		}
		BlockState WeepingVines();
		unsigned char Age(BlockState Block);
	}
	namespace WeepingVinesPlant
	{
		constexpr BlockState WeepingVinesPlant()
		{
			return 15016;
		}
	}
	namespace WetSponge
	{
		constexpr BlockState WetSponge()
		{
			return 230;
		}
	}
	namespace Wheat
	{
		constexpr BlockState Wheat(const unsigned char Age)
		{
			if (Age == 0) return 3357;
			else if (Age == 1) return 3358;
			else if (Age == 2) return 3359;
			else if (Age == 3) return 3360;
			else if (Age == 4) return 3361;
			else if (Age == 5) return 3362;
			else if (Age == 6) return 3363;
			else return 3364;
		}
		BlockState Wheat();
		unsigned char Age(BlockState Block);
	}
	namespace WhiteBanner
	{
		constexpr BlockState WhiteBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 7897;
			else if (Rotation == 1) return 7898;
			else if (Rotation == 2) return 7899;
			else if (Rotation == 3) return 7900;
			else if (Rotation == 4) return 7901;
			else if (Rotation == 5) return 7902;
			else if (Rotation == 6) return 7903;
			else if (Rotation == 7) return 7904;
			else if (Rotation == 8) return 7905;
			else if (Rotation == 9) return 7906;
			else if (Rotation == 10) return 7907;
			else if (Rotation == 11) return 7908;
			else if (Rotation == 12) return 7909;
			else if (Rotation == 13) return 7910;
			else if (Rotation == 14) return 7911;
			else return 7912;
		}
		BlockState WhiteBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace WhiteBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState WhiteBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1049;
					else return 1050;
				else
					if (Part == Part::Head) return 1051;
					else return 1052;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1053;
					else return 1054;
				else
					if (Part == Part::Head) return 1055;
					else return 1056;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1057;
					else return 1058;
				else
					if (Part == Part::Head) return 1059;
					else return 1060;
			else
				if (Occupied)
					if (Part == Part::Head) return 1061;
					else return 1062;
				else
					if (Part == Part::Head) return 1063;
					else return 1064;
		}
		BlockState WhiteBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace WhiteCarpet
	{
		constexpr BlockState WhiteCarpet()
		{
			return 7866;
		}
	}
	namespace WhiteConcrete
	{
		constexpr BlockState WhiteConcrete()
		{
			return 9438;
		}
	}
	namespace WhiteConcretePowder
	{
		constexpr BlockState WhiteConcretePowder()
		{
			return 9454;
		}
	}
	namespace WhiteGlazedTerracotta
	{
		constexpr BlockState WhiteGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9374;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9375;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9376;
			else return 9377;
		}
		BlockState WhiteGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace WhiteShulkerBox
	{
		constexpr BlockState WhiteShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9278;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9279;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9280;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9281;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9282;
			else return 9283;
		}
		BlockState WhiteShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace WhiteStainedGlass
	{
		constexpr BlockState WhiteStainedGlass()
		{
			return 4095;
		}
	}
	namespace WhiteStainedGlassPane
	{
		constexpr BlockState WhiteStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 6865;
						else return 6866;
					else
						if (West) return 6869;
						else return 6870;
				else
					if (South)
						if (West) return 6873;
						else return 6874;
					else
						if (West) return 6877;
						else return 6878;
			else
				if (North)
					if (South)
						if (West) return 6881;
						else return 6882;
					else
						if (West) return 6885;
						else return 6886;
				else
					if (South)
						if (West) return 6889;
						else return 6890;
					else
						if (West) return 6893;
						else return 6894;
		}
		BlockState WhiteStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace WhiteTerracotta
	{
		constexpr BlockState WhiteTerracotta()
		{
			return 6847;
		}
	}
	namespace WhiteTulip
	{
		constexpr BlockState WhiteTulip()
		{
			return 1419;
		}
	}
	namespace WhiteWallBanner
	{
		constexpr BlockState WhiteWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8153;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8154;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8155;
			else return 8156;
		}
		BlockState WhiteWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace WhiteWool
	{
		constexpr BlockState WhiteWool()
		{
			return 1384;
		}
	}
	namespace WitherRose
	{
		constexpr BlockState WitherRose()
		{
			return 1423;
		}
	}
	namespace WitherSkeletonSkull
	{
		constexpr BlockState WitherSkeletonSkull(const unsigned char Rotation)
		{
			if (Rotation == 0) return 6510;
			else if (Rotation == 1) return 6511;
			else if (Rotation == 2) return 6512;
			else if (Rotation == 3) return 6513;
			else if (Rotation == 4) return 6514;
			else if (Rotation == 5) return 6515;
			else if (Rotation == 6) return 6516;
			else if (Rotation == 7) return 6517;
			else if (Rotation == 8) return 6518;
			else if (Rotation == 9) return 6519;
			else if (Rotation == 10) return 6520;
			else if (Rotation == 11) return 6521;
			else if (Rotation == 12) return 6522;
			else if (Rotation == 13) return 6523;
			else if (Rotation == 14) return 6524;
			else return 6525;
		}
		BlockState WitherSkeletonSkull();
		unsigned char Rotation(BlockState Block);
	}
	namespace WitherSkeletonWallSkull
	{
		constexpr BlockState WitherSkeletonWallSkull(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6526;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6527;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6528;
			else return 6529;
		}
		BlockState WitherSkeletonWallSkull();
		eBlockFace Facing(BlockState Block);
	}
	namespace YellowBanner
	{
		constexpr BlockState YellowBanner(const unsigned char Rotation)
		{
			if (Rotation == 0) return 7961;
			else if (Rotation == 1) return 7962;
			else if (Rotation == 2) return 7963;
			else if (Rotation == 3) return 7964;
			else if (Rotation == 4) return 7965;
			else if (Rotation == 5) return 7966;
			else if (Rotation == 6) return 7967;
			else if (Rotation == 7) return 7968;
			else if (Rotation == 8) return 7969;
			else if (Rotation == 9) return 7970;
			else if (Rotation == 10) return 7971;
			else if (Rotation == 11) return 7972;
			else if (Rotation == 12) return 7973;
			else if (Rotation == 13) return 7974;
			else if (Rotation == 14) return 7975;
			else return 7976;
		}
		BlockState YellowBanner();
		unsigned char Rotation(BlockState Block);
	}
	namespace YellowBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr BlockState YellowBed(const eBlockFace Facing, const bool Occupied, const enum Part Part)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM)
				if (Occupied)
					if (Part == Part::Head) return 1113;
					else return 1114;
				else
					if (Part == Part::Head) return 1115;
					else return 1116;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP)
				if (Occupied)
					if (Part == Part::Head) return 1117;
					else return 1118;
				else
					if (Part == Part::Head) return 1119;
					else return 1120;
			else if (Facing == eBlockFace::BLOCK_FACE_XM)
				if (Occupied)
					if (Part == Part::Head) return 1121;
					else return 1122;
				else
					if (Part == Part::Head) return 1123;
					else return 1124;
			else
				if (Occupied)
					if (Part == Part::Head) return 1125;
					else return 1126;
				else
					if (Part == Part::Head) return 1127;
					else return 1128;
		}
		BlockState YellowBed();
		eBlockFace Facing(BlockState Block);
		bool Occupied(BlockState Block);
		enum Part Part(BlockState Block);
	}
	namespace YellowCarpet
	{
		constexpr BlockState YellowCarpet()
		{
			return 7870;
		}
	}
	namespace YellowConcrete
	{
		constexpr BlockState YellowConcrete()
		{
			return 9442;
		}
	}
	namespace YellowConcretePowder
	{
		constexpr BlockState YellowConcretePowder()
		{
			return 9458;
		}
	}
	namespace YellowGlazedTerracotta
	{
		constexpr BlockState YellowGlazedTerracotta(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9390;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9391;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9392;
			else return 9393;
		}
		BlockState YellowGlazedTerracotta();
		eBlockFace Facing(BlockState Block);
	}
	namespace YellowShulkerBox
	{
		constexpr BlockState YellowShulkerBox(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9302;
			else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9303;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9304;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9305;
			else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9306;
			else return 9307;
		}
		BlockState YellowShulkerBox();
		eBlockFace Facing(BlockState Block);
	}
	namespace YellowStainedGlass
	{
		constexpr BlockState YellowStainedGlass()
		{
			return 4099;
		}
	}
	namespace YellowStainedGlassPane
	{
		constexpr BlockState YellowStainedGlassPane(const bool East, const bool North, const bool South, const bool West)
		{
			if (East)
				if (North)
					if (South)
						if (West) return 6993;
						else return 6994;
					else
						if (West) return 6997;
						else return 6998;
				else
					if (South)
						if (West) return 7001;
						else return 7002;
					else
						if (West) return 7005;
						else return 7006;
			else
				if (North)
					if (South)
						if (West) return 7009;
						else return 7010;
					else
						if (West) return 7013;
						else return 7014;
				else
					if (South)
						if (West) return 7017;
						else return 7018;
					else
						if (West) return 7021;
						else return 7022;
		}
		BlockState YellowStainedGlassPane();
		bool East(BlockState Block);
		bool North(BlockState Block);
		bool South(BlockState Block);
		bool West(BlockState Block);
	}
	namespace YellowTerracotta
	{
		constexpr BlockState YellowTerracotta()
		{
			return 6851;
		}
	}
	namespace YellowWallBanner
	{
		constexpr BlockState YellowWallBanner(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8169;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8170;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8171;
			else return 8172;
		}
		BlockState YellowWallBanner();
		eBlockFace Facing(BlockState Block);
	}
	namespace YellowWool
	{
		constexpr BlockState YellowWool()
		{
			return 1388;
		}
	}
	namespace ZombieHead
	{
		constexpr BlockState ZombieHead(const unsigned char Rotation)
		{
			if (Rotation == 0) return 6530;
			else if (Rotation == 1) return 6531;
			else if (Rotation == 2) return 6532;
			else if (Rotation == 3) return 6533;
			else if (Rotation == 4) return 6534;
			else if (Rotation == 5) return 6535;
			else if (Rotation == 6) return 6536;
			else if (Rotation == 7) return 6537;
			else if (Rotation == 8) return 6538;
			else if (Rotation == 9) return 6539;
			else if (Rotation == 10) return 6540;
			else if (Rotation == 11) return 6541;
			else if (Rotation == 12) return 6542;
			else if (Rotation == 13) return 6543;
			else if (Rotation == 14) return 6544;
			else return 6545;
		}
		BlockState ZombieHead();
		unsigned char Rotation(BlockState Block);
	}
	namespace ZombieWallHead
	{
		constexpr BlockState ZombieWallHead(const eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6546;
			else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6547;
			else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6548;
			else return 6549;
		}
		BlockState ZombieWallHead();
		eBlockFace Facing(BlockState Block);
	}
}
