#pragma once

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

namespace Block
{
	enum class Type
	{
		AcaciaButton,
		AcaciaDoor,
		AcaciaFence,
		AcaciaFenceGate,
		AcaciaLeaves,
		AcaciaLog,
		AcaciaPlanks,
		AcaciaPressurePlate,
		AcaciaSapling,
		AcaciaSign,
		AcaciaSlab,
		AcaciaStairs,
		AcaciaTrapdoor,
		AcaciaWallSign,
		AcaciaWood,
		ActivatorRail,
		Air,
		Allium,
		AncientDebris,
		Andesite,
		AndesiteSlab,
		AndesiteStairs,
		AndesiteWall,
		Anvil,
		AttachedMelonStem,
		AttachedPumpkinStem,
		AzureBluet,
		Bamboo,
		BambooSapling,
		Barrel,
		Barrier,
		Basalt,
		Beacon,
		Bedrock,
		BeeNest,
		Beehive,
		Beetroots,
		Bell,
		BirchButton,
		BirchDoor,
		BirchFence,
		BirchFenceGate,
		BirchLeaves,
		BirchLog,
		BirchPlanks,
		BirchPressurePlate,
		BirchSapling,
		BirchSign,
		BirchSlab,
		BirchStairs,
		BirchTrapdoor,
		BirchWallSign,
		BirchWood,
		BlackBanner,
		BlackBed,
		BlackCarpet,
		BlackConcrete,
		BlackConcretePowder,
		BlackGlazedTerracotta,
		BlackShulkerBox,
		BlackStainedGlass,
		BlackStainedGlassPane,
		BlackTerracotta,
		BlackWallBanner,
		BlackWool,
		Blackstone,
		BlackstoneSlab,
		BlackstoneStairs,
		BlackstoneWall,
		BlastFurnace,
		BlueBanner,
		BlueBed,
		BlueCarpet,
		BlueConcrete,
		BlueConcretePowder,
		BlueGlazedTerracotta,
		BlueIce,
		BlueOrchid,
		BlueShulkerBox,
		BlueStainedGlass,
		BlueStainedGlassPane,
		BlueTerracotta,
		BlueWallBanner,
		BlueWool,
		BoneBlock,
		Bookshelf,
		BrainCoral,
		BrainCoralBlock,
		BrainCoralFan,
		BrainCoralWallFan,
		BrewingStand,
		BrickSlab,
		BrickStairs,
		BrickWall,
		Bricks,
		BrownBanner,
		BrownBed,
		BrownCarpet,
		BrownConcrete,
		BrownConcretePowder,
		BrownGlazedTerracotta,
		BrownMushroom,
		BrownMushroomBlock,
		BrownShulkerBox,
		BrownStainedGlass,
		BrownStainedGlassPane,
		BrownTerracotta,
		BrownWallBanner,
		BrownWool,
		BubbleColumn,
		BubbleCoral,
		BubbleCoralBlock,
		BubbleCoralFan,
		BubbleCoralWallFan,
		Cactus,
		Cake,
		Campfire,
		Carrots,
		CartographyTable,
		CarvedPumpkin,
		Cauldron,
		CaveAir,
		Chain,
		ChainCommandBlock,
		Chest,
		ChippedAnvil,
		ChiseledNetherBricks,
		ChiseledPolishedBlackstone,
		ChiseledQuartzBlock,
		ChiseledRedSandstone,
		ChiseledSandstone,
		ChiseledStoneBricks,
		ChorusFlower,
		ChorusPlant,
		Clay,
		CoalBlock,
		CoalOre,
		CoarseDirt,
		Cobblestone,
		CobblestoneSlab,
		CobblestoneStairs,
		CobblestoneWall,
		Cobweb,
		Cocoa,
		CommandBlock,
		Comparator,
		Composter,
		Conduit,
		Cornflower,
		CrackedNetherBricks,
		CrackedPolishedBlackstoneBricks,
		CrackedStoneBricks,
		CraftingTable,
		CreeperHead,
		CreeperWallHead,
		CrimsonButton,
		CrimsonDoor,
		CrimsonFence,
		CrimsonFenceGate,
		CrimsonFungus,
		CrimsonHyphae,
		CrimsonNylium,
		CrimsonPlanks,
		CrimsonPressurePlate,
		CrimsonRoots,
		CrimsonSign,
		CrimsonSlab,
		CrimsonStairs,
		CrimsonStem,
		CrimsonTrapdoor,
		CrimsonWallSign,
		CryingObsidian,
		CutRedSandstone,
		CutRedSandstoneSlab,
		CutSandstone,
		CutSandstoneSlab,
		CyanBanner,
		CyanBed,
		CyanCarpet,
		CyanConcrete,
		CyanConcretePowder,
		CyanGlazedTerracotta,
		CyanShulkerBox,
		CyanStainedGlass,
		CyanStainedGlassPane,
		CyanTerracotta,
		CyanWallBanner,
		CyanWool,
		DamagedAnvil,
		Dandelion,
		DarkOakButton,
		DarkOakDoor,
		DarkOakFence,
		DarkOakFenceGate,
		DarkOakLeaves,
		DarkOakLog,
		DarkOakPlanks,
		DarkOakPressurePlate,
		DarkOakSapling,
		DarkOakSign,
		DarkOakSlab,
		DarkOakStairs,
		DarkOakTrapdoor,
		DarkOakWallSign,
		DarkOakWood,
		DarkPrismarine,
		DarkPrismarineSlab,
		DarkPrismarineStairs,
		DaylightDetector,
		DeadBrainCoral,
		DeadBrainCoralBlock,
		DeadBrainCoralFan,
		DeadBrainCoralWallFan,
		DeadBubbleCoral,
		DeadBubbleCoralBlock,
		DeadBubbleCoralFan,
		DeadBubbleCoralWallFan,
		DeadBush,
		DeadFireCoral,
		DeadFireCoralBlock,
		DeadFireCoralFan,
		DeadFireCoralWallFan,
		DeadHornCoral,
		DeadHornCoralBlock,
		DeadHornCoralFan,
		DeadHornCoralWallFan,
		DeadTubeCoral,
		DeadTubeCoralBlock,
		DeadTubeCoralFan,
		DeadTubeCoralWallFan,
		DetectorRail,
		DiamondBlock,
		DiamondOre,
		Diorite,
		DioriteSlab,
		DioriteStairs,
		DioriteWall,
		Dirt,
		Dispenser,
		DragonEgg,
		DragonHead,
		DragonWallHead,
		DriedKelpBlock,
		Dropper,
		EmeraldBlock,
		EmeraldOre,
		EnchantingTable,
		EndGateway,
		EndPortal,
		EndPortalFrame,
		EndRod,
		EndStone,
		EndStoneBrickSlab,
		EndStoneBrickStairs,
		EndStoneBrickWall,
		EndStoneBricks,
		EnderChest,
		Farmland,
		Fern,
		Fire,
		FireCoral,
		FireCoralBlock,
		FireCoralFan,
		FireCoralWallFan,
		FletchingTable,
		FlowerPot,
		FrostedIce,
		Furnace,
		GildedBlackstone,
		Glass,
		GlassPane,
		Glowstone,
		GoldBlock,
		GoldOre,
		Granite,
		GraniteSlab,
		GraniteStairs,
		GraniteWall,
		Grass,
		GrassBlock,
		GrassPath,
		Gravel,
		GrayBanner,
		GrayBed,
		GrayCarpet,
		GrayConcrete,
		GrayConcretePowder,
		GrayGlazedTerracotta,
		GrayShulkerBox,
		GrayStainedGlass,
		GrayStainedGlassPane,
		GrayTerracotta,
		GrayWallBanner,
		GrayWool,
		GreenBanner,
		GreenBed,
		GreenCarpet,
		GreenConcrete,
		GreenConcretePowder,
		GreenGlazedTerracotta,
		GreenShulkerBox,
		GreenStainedGlass,
		GreenStainedGlassPane,
		GreenTerracotta,
		GreenWallBanner,
		GreenWool,
		Grindstone,
		HayBale,
		HeavyWeightedPressurePlate,
		HoneyBlock,
		HoneycombBlock,
		Hopper,
		HornCoral,
		HornCoralBlock,
		HornCoralFan,
		HornCoralWallFan,
		Ice,
		InfestedChiseledStoneBricks,
		InfestedCobblestone,
		InfestedCrackedStoneBricks,
		InfestedMossyStoneBricks,
		InfestedStone,
		InfestedStoneBricks,
		IronBars,
		IronBlock,
		IronDoor,
		IronOre,
		IronTrapdoor,
		JackOLantern,
		Jigsaw,
		Jukebox,
		JungleButton,
		JungleDoor,
		JungleFence,
		JungleFenceGate,
		JungleLeaves,
		JungleLog,
		JunglePlanks,
		JunglePressurePlate,
		JungleSapling,
		JungleSign,
		JungleSlab,
		JungleStairs,
		JungleTrapdoor,
		JungleWallSign,
		JungleWood,
		Kelp,
		KelpPlant,
		Ladder,
		Lantern,
		LapisBlock,
		LapisOre,
		LargeFern,
		Lava,
		Lectern,
		Lever,
		LightBlueBanner,
		LightBlueBed,
		LightBlueCarpet,
		LightBlueConcrete,
		LightBlueConcretePowder,
		LightBlueGlazedTerracotta,
		LightBlueShulkerBox,
		LightBlueStainedGlass,
		LightBlueStainedGlassPane,
		LightBlueTerracotta,
		LightBlueWallBanner,
		LightBlueWool,
		LightGrayBanner,
		LightGrayBed,
		LightGrayCarpet,
		LightGrayConcrete,
		LightGrayConcretePowder,
		LightGrayGlazedTerracotta,
		LightGrayShulkerBox,
		LightGrayStainedGlass,
		LightGrayStainedGlassPane,
		LightGrayTerracotta,
		LightGrayWallBanner,
		LightGrayWool,
		LightWeightedPressurePlate,
		Lilac,
		LilyOfTheValley,
		LilyPad,
		LimeBanner,
		LimeBed,
		LimeCarpet,
		LimeConcrete,
		LimeConcretePowder,
		LimeGlazedTerracotta,
		LimeShulkerBox,
		LimeStainedGlass,
		LimeStainedGlassPane,
		LimeTerracotta,
		LimeWallBanner,
		LimeWool,
		Lodestone,
		Loom,
		MagentaBanner,
		MagentaBed,
		MagentaCarpet,
		MagentaConcrete,
		MagentaConcretePowder,
		MagentaGlazedTerracotta,
		MagentaShulkerBox,
		MagentaStainedGlass,
		MagentaStainedGlassPane,
		MagentaTerracotta,
		MagentaWallBanner,
		MagentaWool,
		MagmaBlock,
		Melon,
		MelonStem,
		MossyCobblestone,
		MossyCobblestoneSlab,
		MossyCobblestoneStairs,
		MossyCobblestoneWall,
		MossyStoneBrickSlab,
		MossyStoneBrickStairs,
		MossyStoneBrickWall,
		MossyStoneBricks,
		MovingPiston,
		MushroomStem,
		Mycelium,
		NetherBrickFence,
		NetherBrickSlab,
		NetherBrickStairs,
		NetherBrickWall,
		NetherBricks,
		NetherGoldOre,
		NetherPortal,
		NetherQuartzOre,
		NetherSprouts,
		NetherWart,
		NetherWartBlock,
		NetheriteBlock,
		Netherrack,
		NoteBlock,
		OakButton,
		OakDoor,
		OakFence,
		OakFenceGate,
		OakLeaves,
		OakLog,
		OakPlanks,
		OakPressurePlate,
		OakSapling,
		OakSign,
		OakSlab,
		OakStairs,
		OakTrapdoor,
		OakWallSign,
		OakWood,
		Observer,
		Obsidian,
		OrangeBanner,
		OrangeBed,
		OrangeCarpet,
		OrangeConcrete,
		OrangeConcretePowder,
		OrangeGlazedTerracotta,
		OrangeShulkerBox,
		OrangeStainedGlass,
		OrangeStainedGlassPane,
		OrangeTerracotta,
		OrangeTulip,
		OrangeWallBanner,
		OrangeWool,
		OxeyeDaisy,
		PackedIce,
		Peony,
		PetrifiedOakSlab,
		PinkBanner,
		PinkBed,
		PinkCarpet,
		PinkConcrete,
		PinkConcretePowder,
		PinkGlazedTerracotta,
		PinkShulkerBox,
		PinkStainedGlass,
		PinkStainedGlassPane,
		PinkTerracotta,
		PinkTulip,
		PinkWallBanner,
		PinkWool,
		Piston,
		PistonHead,
		PlayerHead,
		PlayerWallHead,
		Podzol,
		PolishedAndesite,
		PolishedAndesiteSlab,
		PolishedAndesiteStairs,
		PolishedBasalt,
		PolishedBlackstone,
		PolishedBlackstoneBrickSlab,
		PolishedBlackstoneBrickStairs,
		PolishedBlackstoneBrickWall,
		PolishedBlackstoneBricks,
		PolishedBlackstoneButton,
		PolishedBlackstonePressurePlate,
		PolishedBlackstoneSlab,
		PolishedBlackstoneStairs,
		PolishedBlackstoneWall,
		PolishedDiorite,
		PolishedDioriteSlab,
		PolishedDioriteStairs,
		PolishedGranite,
		PolishedGraniteSlab,
		PolishedGraniteStairs,
		Poppy,
		Potatoes,
		PottedAcaciaSapling,
		PottedAllium,
		PottedAzureBluet,
		PottedBamboo,
		PottedBirchSapling,
		PottedBlueOrchid,
		PottedBrownMushroom,
		PottedCactus,
		PottedCornflower,
		PottedCrimsonFungus,
		PottedCrimsonRoots,
		PottedDandelion,
		PottedDarkOakSapling,
		PottedDeadBush,
		PottedFern,
		PottedJungleSapling,
		PottedLilyOfTheValley,
		PottedOakSapling,
		PottedOrangeTulip,
		PottedOxeyeDaisy,
		PottedPinkTulip,
		PottedPoppy,
		PottedRedMushroom,
		PottedRedTulip,
		PottedSpruceSapling,
		PottedWarpedFungus,
		PottedWarpedRoots,
		PottedWhiteTulip,
		PottedWitherRose,
		PoweredRail,
		Prismarine,
		PrismarineBrickSlab,
		PrismarineBrickStairs,
		PrismarineBricks,
		PrismarineSlab,
		PrismarineStairs,
		PrismarineWall,
		Pumpkin,
		PumpkinStem,
		PurpleBanner,
		PurpleBed,
		PurpleCarpet,
		PurpleConcrete,
		PurpleConcretePowder,
		PurpleGlazedTerracotta,
		PurpleShulkerBox,
		PurpleStainedGlass,
		PurpleStainedGlassPane,
		PurpleTerracotta,
		PurpleWallBanner,
		PurpleWool,
		PurpurBlock,
		PurpurPillar,
		PurpurSlab,
		PurpurStairs,
		QuartzBlock,
		QuartzBricks,
		QuartzPillar,
		QuartzSlab,
		QuartzStairs,
		Rail,
		RedBanner,
		RedBed,
		RedCarpet,
		RedConcrete,
		RedConcretePowder,
		RedGlazedTerracotta,
		RedMushroom,
		RedMushroomBlock,
		RedNetherBrickSlab,
		RedNetherBrickStairs,
		RedNetherBrickWall,
		RedNetherBricks,
		RedSand,
		RedSandstone,
		RedSandstoneSlab,
		RedSandstoneStairs,
		RedSandstoneWall,
		RedShulkerBox,
		RedStainedGlass,
		RedStainedGlassPane,
		RedTerracotta,
		RedTulip,
		RedWallBanner,
		RedWool,
		RedstoneBlock,
		RedstoneLamp,
		RedstoneOre,
		RedstoneTorch,
		RedstoneWallTorch,
		RedstoneWire,
		Repeater,
		RepeatingCommandBlock,
		RespawnAnchor,
		RoseBush,
		Sand,
		Sandstone,
		SandstoneSlab,
		SandstoneStairs,
		SandstoneWall,
		Scaffolding,
		SeaLantern,
		SeaPickle,
		Seagrass,
		Shroomlight,
		ShulkerBox,
		SkeletonSkull,
		SkeletonWallSkull,
		SlimeBlock,
		SmithingTable,
		Smoker,
		SmoothQuartz,
		SmoothQuartzSlab,
		SmoothQuartzStairs,
		SmoothRedSandstone,
		SmoothRedSandstoneSlab,
		SmoothRedSandstoneStairs,
		SmoothSandstone,
		SmoothSandstoneSlab,
		SmoothSandstoneStairs,
		SmoothStone,
		SmoothStoneSlab,
		Snow,
		SnowBlock,
		SoulCampfire,
		SoulFire,
		SoulLantern,
		SoulSand,
		SoulSoil,
		SoulTorch,
		SoulWallTorch,
		Spawner,
		Sponge,
		SpruceButton,
		SpruceDoor,
		SpruceFence,
		SpruceFenceGate,
		SpruceLeaves,
		SpruceLog,
		SprucePlanks,
		SprucePressurePlate,
		SpruceSapling,
		SpruceSign,
		SpruceSlab,
		SpruceStairs,
		SpruceTrapdoor,
		SpruceWallSign,
		SpruceWood,
		StickyPiston,
		Stone,
		StoneBrickSlab,
		StoneBrickStairs,
		StoneBrickWall,
		StoneBricks,
		StoneButton,
		StonePressurePlate,
		StoneSlab,
		StoneStairs,
		Stonecutter,
		StrippedAcaciaLog,
		StrippedAcaciaWood,
		StrippedBirchLog,
		StrippedBirchWood,
		StrippedCrimsonHyphae,
		StrippedCrimsonStem,
		StrippedDarkOakLog,
		StrippedDarkOakWood,
		StrippedJungleLog,
		StrippedJungleWood,
		StrippedOakLog,
		StrippedOakWood,
		StrippedSpruceLog,
		StrippedSpruceWood,
		StrippedWarpedHyphae,
		StrippedWarpedStem,
		StructureBlock,
		StructureVoid,
		SugarCane,
		Sunflower,
		SweetBerryBush,
		TallGrass,
		TallSeagrass,
		Target,
		Terracotta,
		Tnt,
		Torch,
		TrappedChest,
		Tripwire,
		TripwireHook,
		TubeCoral,
		TubeCoralBlock,
		TubeCoralFan,
		TubeCoralWallFan,
		TurtleEgg,
		TwistingVines,
		TwistingVinesPlant,
		Vine,
		VoidAir,
		WallTorch,
		WarpedButton,
		WarpedDoor,
		WarpedFence,
		WarpedFenceGate,
		WarpedFungus,
		WarpedHyphae,
		WarpedNylium,
		WarpedPlanks,
		WarpedPressurePlate,
		WarpedRoots,
		WarpedSign,
		WarpedSlab,
		WarpedStairs,
		WarpedStem,
		WarpedTrapdoor,
		WarpedWallSign,
		WarpedWartBlock,
		Water,
		WeepingVines,
		WeepingVinesPlant,
		WetSponge,
		Wheat,
		WhiteBanner,
		WhiteBed,
		WhiteCarpet,
		WhiteConcrete,
		WhiteConcretePowder,
		WhiteGlazedTerracotta,
		WhiteShulkerBox,
		WhiteStainedGlass,
		WhiteStainedGlassPane,
		WhiteTerracotta,
		WhiteTulip,
		WhiteWallBanner,
		WhiteWool,
		WitherRose,
		WitherSkeletonSkull,
		WitherSkeletonWallSkull,
		YellowBanner,
		YellowBed,
		YellowCarpet,
		YellowConcrete,
		YellowConcretePowder,
		YellowGlazedTerracotta,
		YellowShulkerBox,
		YellowStainedGlass,
		YellowStainedGlassPane,
		YellowTerracotta,
		YellowWallBanner,
		YellowWool,
		ZombieHead,
		ZombieWallHead
	};
	enum Type Type(short ID);
	bool Is(short ID, enum Type Type);
	namespace AcaciaButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short AcaciaButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6443;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6447;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6451;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6455;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6459;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6463;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6444;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6448;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6452;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6456;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6460;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6464;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6445;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6449;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6453;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6457;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6461;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6465;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6442;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6446;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6450;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6454;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6458;
			return 6462;
		}
		short AcaciaButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace AcaciaDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short AcaciaDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 8955;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 8987;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 8956;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 8988;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 8957;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 8989;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 8958;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 8990;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 8959;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 8991;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 8960;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 8992;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 8961;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 8930;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 8962;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 8931;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 8963;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 8932;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 8964;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 8933;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 8965;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 8934;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 8966;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 8935;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 8967;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 8936;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 8968;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 8937;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 8969;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 8938;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 8970;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 8939;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 8971;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 8940;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 8972;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 8941;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 8973;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 8942;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 8974;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 8943;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 8975;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 8944;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 8976;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 8945;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 8977;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 8946;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 8978;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 8947;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 8979;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 8948;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 8980;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 8949;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 8981;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 8950;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 8982;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 8951;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 8983;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 8952;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 8984;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 8953;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Right) return 8985;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 8954;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 8986;
			return 8993;
		}
		short AcaciaDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace AcaciaFence
	{
		constexpr short AcaciaFence(bool East, bool North, bool South, bool West)
		{
			if (!false && South && !West && East && North) return 8677;
			if (!false && South && !West && East && !North) return 8685;
			if (!false && South && !West && !East && North) return 8693;
			if (!false && South && !West && !East && !North) return 8701;
			if (false && !South && West && East && North) return 8678;
			if (false && !South && West && East && !North) return 8686;
			if (false && !South && West && !East && North) return 8694;
			if (false && !South && West && !East && !North) return 8702;
			if (false && !South && !West && East && North) return 8679;
			if (false && !South && !West && East && !North) return 8687;
			if (false && !South && !West && !East && North) return 8695;
			if (false && !South && !West && !East && !North) return 8703;
			if (!false && !South && West && East && North) return 8680;
			if (!false && !South && West && East && !North) return 8688;
			if (!false && !South && West && !East && North) return 8696;
			if (!false && !South && West && !East && !North) return 8704;
			if (!false && !South && !West && East && North) return 8681;
			if (!false && !South && !West && East && !North) return 8689;
			if (!false && !South && !West && !East && North) return 8697;
			if (false && South && West && East && North) return 8674;
			if (false && South && West && East && !North) return 8682;
			if (false && South && West && !East && North) return 8690;
			if (false && South && West && !East && !North) return 8698;
			if (false && South && !West && East && North) return 8675;
			if (false && South && !West && East && !North) return 8683;
			if (false && South && !West && !East && North) return 8691;
			if (false && South && !West && !East && !North) return 8699;
			if (!false && South && West && East && North) return 8676;
			if (!false && South && West && East && !North) return 8684;
			if (!false && South && West && !East && North) return 8692;
			if (!false && South && West && !East && !North) return 8700;
			return 8705;
		}
		short AcaciaFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace AcaciaFenceGate
	{
		constexpr short AcaciaFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8522;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8530;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8538;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8515;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8523;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8531;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8539;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8516;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8524;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8532;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8540;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8517;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8525;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8533;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8541;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8518;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8526;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8534;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8542;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8519;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8527;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8535;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8543;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8520;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8528;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8536;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8544;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8521;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8529;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8537;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8514;
			return 8545;
		}
		short AcaciaFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace AcaciaLeaves
	{
		constexpr short AcaciaLeaves(unsigned char Distance, bool Persistent)
		{
			if (Persistent && Distance == 7) return 213;
			if (!Persistent && Distance == 3) return 206;
			if (!Persistent && Distance == 7) return 214;
			if (Persistent && Distance == 4) return 207;
			if (!Persistent && Distance == 4) return 208;
			if (Persistent && Distance == 1) return 201;
			if (Persistent && Distance == 5) return 209;
			if (!Persistent && Distance == 1) return 202;
			if (!Persistent && Distance == 5) return 210;
			if (Persistent && Distance == 2) return 203;
			if (Persistent && Distance == 6) return 211;
			if (!Persistent && Distance == 2) return 204;
			if (!Persistent && Distance == 6) return 212;
			return 205;
		}
		short AcaciaLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace AcaciaLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short AcaciaLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 85;
			if (Axis == Axis::Y) return 86;
			return 87;
		}
		short AcaciaLog();
		enum Axis Axis(short ID);
	}
	namespace AcaciaPlanks
	{
		constexpr short AcaciaPlanks()
		{
			return 19;
		}
	}
	namespace AcaciaPressurePlate
	{
		constexpr short AcaciaPressurePlate(bool Powered)
		{
			if (Powered) return 3881;
			return 3882;
		}
		short AcaciaPressurePlate();
		bool Powered(short ID);
	}
	namespace AcaciaSapling
	{
		constexpr short AcaciaSapling(unsigned char Stage)
		{
			if (Stage == 0) return 29;
			return 30;
		}
		short AcaciaSapling();
		unsigned char Stage(short ID);
	}
	namespace AcaciaSign
	{
		constexpr short AcaciaSign(unsigned char Rotation)
		{
			if (Rotation == 3 && false) return 3483;
			if (Rotation == 4 && false) return 3485;
			if (Rotation == 5 && false) return 3487;
			if (Rotation == 6 && false) return 3489;
			if (Rotation == 7 && false) return 3491;
			if (Rotation == 8 && false) return 3493;
			if (Rotation == 9 && false) return 3495;
			if (Rotation == 10 && false) return 3497;
			if (Rotation == 11 && false) return 3499;
			if (Rotation == 12 && false) return 3501;
			if (Rotation == 13 && false) return 3503;
			if (Rotation == 14 && false) return 3505;
			if (Rotation == 15 && false) return 3507;
			if (Rotation == 0 && !false) return 3478;
			if (Rotation == 1 && !false) return 3480;
			if (Rotation == 2 && !false) return 3482;
			if (Rotation == 3 && !false) return 3484;
			if (Rotation == 4 && !false) return 3486;
			if (Rotation == 5 && !false) return 3488;
			if (Rotation == 6 && !false) return 3490;
			if (Rotation == 7 && !false) return 3492;
			if (Rotation == 8 && !false) return 3494;
			if (Rotation == 9 && !false) return 3496;
			if (Rotation == 10 && !false) return 3498;
			if (Rotation == 11 && !false) return 3500;
			if (Rotation == 12 && !false) return 3502;
			if (Rotation == 13 && !false) return 3504;
			if (Rotation == 14 && !false) return 3506;
			if (Rotation == 0 && false) return 3477;
			if (Rotation == 1 && false) return 3479;
			if (Rotation == 2 && false) return 3481;
			return 3508;
		}
		short AcaciaSign();
		unsigned char Rotation(short ID);
		bool Waterlogged(short ID);
	}
	namespace AcaciaSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short AcaciaSlab(enum Type Type)
		{
			if (Type == Type::Top && !false) return 8325;
			if (Type == Type::Double && !false) return 8329;
			if (Type == Type::Bottom && false) return 8326;
			if (Type == Type::Bottom && !false) return 8327;
			if (Type == Type::Top && false) return 8324;
			return 8328;
		}
		short AcaciaSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace AcaciaStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short AcaciaStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7425;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7426;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7427;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7428;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7429;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7430;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7431;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7432;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7433;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7434;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7435;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7436;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7437;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7438;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7375;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7439;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7376;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7440;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7377;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7441;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7378;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7442;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7379;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7443;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7380;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7444;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7381;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7445;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7382;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7446;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7383;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7447;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7384;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7448;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7385;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7449;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7386;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7450;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7387;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7451;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7388;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7452;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7389;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7453;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7390;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7454;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7391;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7392;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7393;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7394;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7395;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7396;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7397;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7398;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7399;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7400;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7401;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7402;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7403;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7404;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7405;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7406;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7407;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7408;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7409;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7410;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7411;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7412;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7413;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7414;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7415;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7416;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7417;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7418;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7419;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7420;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7421;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7422;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7423;
			return 7424;
		}
		short AcaciaStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace AcaciaTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short AcaciaTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4384;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4400;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4416;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4369;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4385;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4401;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4417;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4370;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4386;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4402;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4418;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4371;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4387;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4403;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4419;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4372;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4388;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4404;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4420;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4373;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4389;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4405;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4421;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4374;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4390;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4406;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4422;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4375;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4391;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4407;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4423;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4376;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4392;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4408;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4424;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4377;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4393;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4409;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4425;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4378;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4394;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4410;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4426;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4379;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4395;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4411;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4427;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4380;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4396;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4412;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4428;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4381;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4397;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4413;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4429;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4382;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4398;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4414;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4367;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4383;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4399;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4415;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4368;
			return 4430;
		}
		short AcaciaTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
		bool Waterlogged(short ID);
	}
	namespace AcaciaWallSign
	{
		constexpr short AcaciaWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 3764;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 3765;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 3759;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 3760;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 3761;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 3762;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 3763;
			return 3766;
		}
		short AcaciaWallSign();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace AcaciaWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short AcaciaWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 121;
			if (Axis == Axis::Y) return 122;
			return 123;
		}
		short AcaciaWood();
		enum Axis Axis(short ID);
	}
	namespace ActivatorRail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth
		};
		constexpr short ActivatorRail(bool Powered, enum Shape Shape)
		{
			if (Shape == Shape::AscendingWest && Powered) return 6826;
			if (Shape == Shape::AscendingNorth && Powered) return 6827;
			if (Shape == Shape::AscendingSouth && Powered) return 6828;
			if (Shape == Shape::NorthSouth && !Powered) return 6829;
			if (Shape == Shape::EastWest && !Powered) return 6830;
			if (Shape == Shape::AscendingEast && !Powered) return 6831;
			if (Shape == Shape::AscendingWest && !Powered) return 6832;
			if (Shape == Shape::AscendingNorth && !Powered) return 6833;
			if (Shape == Shape::AscendingSouth && !Powered) return 6834;
			if (Shape == Shape::NorthSouth && Powered) return 6823;
			if (Shape == Shape::EastWest && Powered) return 6824;
			return 6825;
		}
		short ActivatorRail();
		bool Powered(short ID);
		enum Shape Shape(short ID);
	}
	namespace Air
	{
		constexpr short Air()
		{
			return -0;
		}
	}
	namespace Allium
	{
		constexpr short Allium()
		{
			return 1415;
		}
	}
	namespace AncientDebris
	{
		constexpr short AncientDebris()
		{
			return 15827;
		}
	}
	namespace Andesite
	{
		constexpr short Andesite()
		{
			return 6;
		}
	}
	namespace AndesiteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short AndesiteSlab(enum Type Type)
		{
			if (Type == Type::Bottom && false) return 10845;
			if (Type == Type::Bottom && !false) return 10846;
			if (Type == Type::Top && false) return 10843;
			if (Type == Type::Double && false) return 10847;
			if (Type == Type::Top && !false) return 10844;
			return 10848;
		}
		short AndesiteSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace AndesiteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short AndesiteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10469;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10470;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10471;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10472;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10473;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10474;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10475;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10476;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10477;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10478;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10479;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10480;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10481;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10482;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10483;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10484;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10485;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10486;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10487;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10488;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10489;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10490;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10491;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10492;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10493;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10494;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10495;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10496;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10497;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10498;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10499;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10500;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10501;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10502;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10503;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10504;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10505;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10506;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10507;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10508;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10509;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10510;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10511;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10512;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10513;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10514;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10515;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10516;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10517;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10518;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10519;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10520;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10521;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10522;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10523;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10524;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10525;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10526;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10527;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10528;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10529;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10530;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10531;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10532;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10533;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10534;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10535;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10536;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10537;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10538;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10539;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10540;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10541;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10542;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10543;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10544;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10545;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10546;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10547;
			return 10548;
		}
		short AndesiteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace AndesiteWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short AndesiteWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 13138;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 13142;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 13146;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 13150;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 13154;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 13158;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 13162;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 13166;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 13170;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 13174;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 13178;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 13182;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 13186;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 13190;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 13194;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 13198;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 13202;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 13206;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 13210;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 13214;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13218;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 13222;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 13226;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13230;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 13234;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 13238;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13242;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 13246;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 13250;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 13254;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 13258;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 13262;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 13266;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 13270;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 13274;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 13278;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 13282;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 13286;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13290;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 13294;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 13298;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13302;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 13306;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 13310;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13314;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 13318;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13322;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13326;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 13330;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13334;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13338;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 13342;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13346;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13350;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 13354;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 13358;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13362;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 13366;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 13370;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13374;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 13378;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 13382;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13386;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 13390;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13394;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13398;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 13402;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13406;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13410;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 13414;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13418;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13422;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 13426;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13430;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13434;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 13438;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13442;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13446;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 13450;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13454;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13458;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 13135;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 13139;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 13143;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 13147;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 13151;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 13155;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 13159;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 13163;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 13167;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 13171;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 13175;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 13179;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 13183;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 13187;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 13191;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 13195;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 13199;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 13203;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 13207;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 13211;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13215;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 13219;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 13223;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13227;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 13231;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 13235;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13239;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 13243;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 13247;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 13251;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 13255;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 13259;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 13263;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 13267;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 13271;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 13275;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 13279;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 13283;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13287;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 13291;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 13295;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13299;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 13303;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 13307;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13311;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 13315;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 13319;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13323;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 13327;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 13331;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13335;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 13339;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 13343;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13347;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 13351;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 13355;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13359;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 13363;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 13367;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13371;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 13375;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 13379;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13383;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 13387;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 13391;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13395;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 13399;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 13403;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13407;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 13411;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 13415;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13419;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 13423;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13427;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13431;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 13435;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13439;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13443;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 13447;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13451;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13455;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 13136;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 13140;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 13144;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 13148;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 13152;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 13156;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 13160;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 13164;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 13168;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 13172;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 13176;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 13180;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 13184;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 13188;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 13192;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 13196;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 13200;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 13204;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 13208;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 13212;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 13216;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 13220;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 13224;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 13228;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 13232;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 13236;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 13240;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 13244;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 13248;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 13252;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 13256;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 13260;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 13264;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 13268;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 13272;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 13276;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 13280;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 13284;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 13288;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 13292;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 13296;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 13300;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 13304;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 13308;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 13312;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 13316;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13320;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 13324;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 13328;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13332;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 13336;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 13340;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13344;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 13348;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 13352;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 13356;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 13360;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 13364;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 13368;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 13372;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 13376;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 13380;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 13384;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 13388;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13392;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 13396;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 13400;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13404;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 13408;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 13412;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13416;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 13420;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13424;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13428;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13432;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13436;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13440;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13444;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13448;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13452;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13456;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 13137;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 13141;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 13145;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 13149;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 13153;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 13157;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 13161;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 13165;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 13169;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 13173;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 13177;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 13181;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 13185;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 13189;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 13193;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 13197;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 13201;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 13205;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 13209;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 13213;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 13217;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 13221;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 13225;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 13229;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 13233;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 13237;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 13241;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 13245;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 13249;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 13253;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 13257;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 13261;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 13265;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 13269;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 13273;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 13277;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 13281;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 13285;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 13289;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 13293;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 13297;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 13301;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 13305;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 13309;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 13313;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13317;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 13321;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13325;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13329;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 13333;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13337;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13341;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 13345;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13349;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 13353;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 13357;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 13361;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 13365;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 13369;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 13373;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 13377;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 13381;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 13385;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13389;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 13393;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13397;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13401;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 13405;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13409;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13413;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 13417;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13421;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13425;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13429;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13433;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13437;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13441;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13445;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13449;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13453;
			return 13457;
		}
		short AndesiteWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace Anvil
	{
		constexpr short Anvil(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6610;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6611;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6612;
			return 6613;
		}
		short Anvil();
		eBlockFace Facing(short ID);
	}
	namespace AttachedMelonStem
	{
		constexpr short AttachedMelonStem(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4768;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4769;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4770;
			return 4771;
		}
		short AttachedMelonStem();
		eBlockFace Facing(short ID);
	}
	namespace AttachedPumpkinStem
	{
		constexpr short AttachedPumpkinStem(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4765;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4766;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4764;
			return 4767;
		}
		short AttachedPumpkinStem();
		eBlockFace Facing(short ID);
	}
	namespace AzureBluet
	{
		constexpr short AzureBluet()
		{
			return 1416;
		}
	}
	namespace Bamboo
	{
		enum class Leaves
		{
			None,
			Small,
			Large
		};
		constexpr short Bamboo(unsigned char Age, enum Leaves Leaves, unsigned char Stage)
		{
			if (Leaves == Leaves::Small && Age == 1 && Stage == 0) return 9660;
			if (Leaves == Leaves::Large && Age == 1 && Stage == 0) return 9662;
			if (Leaves == Leaves::None && Age == 0 && Stage == 1) return 9653;
			if (Leaves == Leaves::Small && Age == 0 && Stage == 1) return 9655;
			if (Leaves == Leaves::Large && Age == 0 && Stage == 1) return 9657;
			if (Leaves == Leaves::None && Age == 1 && Stage == 1) return 9659;
			if (Leaves == Leaves::Small && Age == 1 && Stage == 1) return 9661;
			if (Leaves == Leaves::Large && Age == 1 && Stage == 1) return 9663;
			if (Leaves == Leaves::None && Age == 0 && Stage == 0) return 9652;
			if (Leaves == Leaves::Small && Age == 0 && Stage == 0) return 9654;
			if (Leaves == Leaves::Large && Age == 0 && Stage == 0) return 9656;
			return 9658;
		}
		short Bamboo();
		unsigned char Age(short ID);
		enum Leaves Leaves(short ID);
		unsigned char Stage(short ID);
	}
	namespace BambooSapling
	{
		constexpr short BambooSapling()
		{
			return 9651;
		}
	}
	namespace Barrel
	{
		constexpr short Barrel(eBlockFace Facing, bool Open)
		{
			if (!Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 14792;
			if (!Open && Facing == eBlockFace::BLOCK_FACE_XP) return 14794;
			if (!Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 14796;
			if (!Open && Facing == eBlockFace::BLOCK_FACE_XM) return 14798;
			if (!Open && Facing == eBlockFace::BLOCK_FACE_YP) return 14800;
			if (!Open && Facing == eBlockFace::BLOCK_FACE_YM) return 14802;
			if (Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 14791;
			if (Open && Facing == eBlockFace::BLOCK_FACE_XP) return 14793;
			if (Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 14795;
			if (Open && Facing == eBlockFace::BLOCK_FACE_XM) return 14797;
			if (Open && Facing == eBlockFace::BLOCK_FACE_YP) return 14799;
			return 14801;
		}
		short Barrel();
		eBlockFace Facing(short ID);
		bool Open(short ID);
	}
	namespace Barrier
	{
		constexpr short Barrier()
		{
			return 7536;
		}
	}
	namespace Basalt
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short Basalt(enum Axis Axis)
		{
			if (Axis == Axis::Y) return 4003;
			if (Axis == Axis::X) return 4002;
			return 4004;
		}
		short Basalt();
		enum Axis Axis(short ID);
	}
	namespace Beacon
	{
		constexpr short Beacon()
		{
			return 5656;
		}
	}
	namespace Bedrock
	{
		constexpr short Bedrock()
		{
			return 33;
		}
	}
	namespace BeeNest
	{
		constexpr short BeeNest(eBlockFace Facing, unsigned char HoneyLevel)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 0) return 15776;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 2) return 15784;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 4) return 15792;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 1) return 15777;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 3) return 15785;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 5) return 15793;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 2) return 15778;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 4) return 15786;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 0) return 15794;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 3) return 15779;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 5) return 15787;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 1) return 15795;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 4) return 15780;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 0) return 15788;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 2) return 15796;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 5) return 15781;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 1) return 15789;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 3) return 15797;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 0) return 15782;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 2) return 15790;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 4) return 15798;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 1) return 15783;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 3) return 15791;
			return 15799;
		}
		short BeeNest();
		eBlockFace Facing(short ID);
		unsigned char HoneyLevel(short ID);
	}
	namespace Beehive
	{
		constexpr short Beehive(eBlockFace Facing, unsigned char HoneyLevel)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 1) return 15807;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 3) return 15815;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 5) return 15823;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 0) return 15800;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 2) return 15808;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 4) return 15816;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 1) return 15801;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 3) return 15809;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 5) return 15817;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 2) return 15802;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 4) return 15810;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 0) return 15818;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 3) return 15803;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 5) return 15811;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 1) return 15819;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 4) return 15804;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 0) return 15812;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 2) return 15820;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && HoneyLevel == 5) return 15805;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 1) return 15813;
			if (Facing == eBlockFace::BLOCK_FACE_XP && HoneyLevel == 3) return 15821;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && HoneyLevel == 0) return 15806;
			if (Facing == eBlockFace::BLOCK_FACE_XM && HoneyLevel == 2) return 15814;
			return 15822;
		}
		short Beehive();
		eBlockFace Facing(short ID);
		unsigned char HoneyLevel(short ID);
	}
	namespace Beetroots
	{
		constexpr short Beetroots(unsigned char Age)
		{
			if (Age == 0) return 9219;
			if (Age == 2) return 9221;
			if (Age == 1) return 9220;
			return 9222;
		}
		short Beetroots();
		unsigned char Age(short ID);
	}
	namespace Bell
	{
		enum class Attachment
		{
			Floor,
			Ceiling,
			SingleWall,
			DoubleWall
		};
		constexpr short Bell(enum Attachment Attachment, eBlockFace Facing, bool Powered)
		{
			if (Attachment == Attachment::SingleWall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14877;
			if (Attachment == Attachment::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14854;
			if (Attachment == Attachment::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14862;
			if (Attachment == Attachment::SingleWall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14870;
			if (Attachment == Attachment::DoubleWall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14878;
			if (Attachment == Attachment::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14855;
			if (Attachment == Attachment::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14863;
			if (Attachment == Attachment::SingleWall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14871;
			if (Attachment == Attachment::DoubleWall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14879;
			if (Attachment == Attachment::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14856;
			if (Attachment == Attachment::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14864;
			if (Attachment == Attachment::SingleWall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14872;
			if (Attachment == Attachment::DoubleWall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14880;
			if (Attachment == Attachment::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14857;
			if (Attachment == Attachment::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14865;
			if (Attachment == Attachment::SingleWall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14873;
			if (Attachment == Attachment::DoubleWall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14881;
			if (Attachment == Attachment::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14858;
			if (Attachment == Attachment::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14866;
			if (Attachment == Attachment::SingleWall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14874;
			if (Attachment == Attachment::DoubleWall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14882;
			if (Attachment == Attachment::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14859;
			if (Attachment == Attachment::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14867;
			if (Attachment == Attachment::SingleWall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14875;
			if (Attachment == Attachment::DoubleWall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14883;
			if (Attachment == Attachment::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14860;
			if (Attachment == Attachment::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14868;
			if (Attachment == Attachment::SingleWall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14876;
			if (Attachment == Attachment::DoubleWall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14884;
			if (Attachment == Attachment::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14861;
			if (Attachment == Attachment::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14869;
			return 14885;
		}
		short Bell();
		enum Attachment Attachment(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace BirchButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short BirchButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6404;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6408;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6412;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6416;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6397;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6401;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6405;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6409;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6413;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6417;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6394;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6398;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6402;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6406;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6410;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6414;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6395;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6399;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6403;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6407;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6411;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6415;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6396;
			return 6400;
		}
		short BirchButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace BirchDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short BirchDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 8829;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 8861;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 8830;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 8862;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 8831;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 8863;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 8832;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 8864;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 8833;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 8802;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 8834;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 8803;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 8835;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 8804;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 8836;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 8805;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 8837;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 8806;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 8838;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 8807;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 8839;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 8808;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 8840;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 8809;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 8841;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 8810;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 8842;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 8811;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 8843;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 8812;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 8844;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 8813;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 8845;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 8814;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 8846;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 8815;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 8847;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 8816;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 8848;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 8817;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 8849;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 8818;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 8850;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 8819;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 8851;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 8820;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 8852;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 8821;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 8853;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 8822;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 8854;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 8823;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 8855;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 8824;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 8856;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 8825;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Right) return 8857;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 8826;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 8858;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 8827;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 8859;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 8828;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 8860;
			return 8865;
		}
		short BirchDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace BirchFence
	{
		constexpr short BirchFence(bool East, bool North, bool South, bool West)
		{
			if (false && !South && !West && East && North) return 8615;
			if (false && !South && !West && East && !North) return 8623;
			if (false && !South && !West && !East && North) return 8631;
			if (false && !South && !West && !East && !North) return 8639;
			if (!false && !South && West && East && North) return 8616;
			if (!false && !South && West && East && !North) return 8624;
			if (!false && !South && West && !East && North) return 8632;
			if (!false && !South && West && !East && !North) return 8640;
			if (!false && !South && !West && East && North) return 8617;
			if (!false && !South && !West && East && !North) return 8625;
			if (!false && !South && !West && !East && North) return 8633;
			if (false && South && West && East && North) return 8610;
			if (false && South && West && East && !North) return 8618;
			if (false && South && West && !East && North) return 8626;
			if (false && South && West && !East && !North) return 8634;
			if (false && South && !West && East && North) return 8611;
			if (false && South && !West && East && !North) return 8619;
			if (false && South && !West && !East && North) return 8627;
			if (false && South && !West && !East && !North) return 8635;
			if (!false && South && West && East && North) return 8612;
			if (!false && South && West && East && !North) return 8620;
			if (!false && South && West && !East && North) return 8628;
			if (!false && South && West && !East && !North) return 8636;
			if (!false && South && !West && East && North) return 8613;
			if (!false && South && !West && East && !North) return 8621;
			if (!false && South && !West && !East && North) return 8629;
			if (!false && South && !West && !East && !North) return 8637;
			if (false && !South && West && East && North) return 8614;
			if (false && !South && West && East && !North) return 8622;
			if (false && !South && West && !East && North) return 8630;
			if (false && !South && West && !East && !North) return 8638;
			return 8641;
		}
		short BirchFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace BirchFenceGate
	{
		constexpr short BirchFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8460;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8468;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8476;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8453;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8461;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8469;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8477;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8454;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8462;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8470;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8478;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8455;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8463;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8471;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8479;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8456;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8464;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8472;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8480;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8457;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8465;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8473;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8450;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8458;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8466;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8474;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8451;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8459;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8467;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8475;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8452;
			return 8481;
		}
		short BirchFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace BirchLeaves
	{
		constexpr short BirchLeaves(unsigned char Distance, bool Persistent)
		{
			if (Persistent && Distance == 6) return 183;
			if (!Persistent && Distance == 2) return 176;
			if (!Persistent && Distance == 6) return 184;
			if (Persistent && Distance == 3) return 177;
			if (Persistent && Distance == 7) return 185;
			if (!Persistent && Distance == 3) return 178;
			if (!Persistent && Distance == 7) return 186;
			if (Persistent && Distance == 4) return 179;
			if (!Persistent && Distance == 4) return 180;
			if (Persistent && Distance == 1) return 173;
			if (Persistent && Distance == 5) return 181;
			if (!Persistent && Distance == 1) return 174;
			if (!Persistent && Distance == 5) return 182;
			return 175;
		}
		short BirchLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace BirchLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short BirchLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 79;
			if (Axis == Axis::Y) return 80;
			return 81;
		}
		short BirchLog();
		enum Axis Axis(short ID);
	}
	namespace BirchPlanks
	{
		constexpr short BirchPlanks()
		{
			return 17;
		}
	}
	namespace BirchPressurePlate
	{
		constexpr short BirchPressurePlate(bool Powered)
		{
			if (Powered) return 3877;
			return 3878;
		}
		short BirchPressurePlate();
		bool Powered(short ID);
	}
	namespace BirchSapling
	{
		constexpr short BirchSapling(unsigned char Stage)
		{
			if (Stage == 0) return 25;
			return 26;
		}
		short BirchSapling();
		unsigned char Stage(short ID);
	}
	namespace BirchSign
	{
		constexpr short BirchSign(unsigned char Rotation)
		{
			if (Rotation == 3 && !false) return 3452;
			if (Rotation == 4 && !false) return 3454;
			if (Rotation == 5 && !false) return 3456;
			if (Rotation == 6 && !false) return 3458;
			if (Rotation == 7 && !false) return 3460;
			if (Rotation == 8 && !false) return 3462;
			if (Rotation == 9 && !false) return 3464;
			if (Rotation == 10 && !false) return 3466;
			if (Rotation == 11 && !false) return 3468;
			if (Rotation == 12 && !false) return 3470;
			if (Rotation == 13 && !false) return 3472;
			if (Rotation == 14 && !false) return 3474;
			if (Rotation == 0 && false) return 3445;
			if (Rotation == 1 && false) return 3447;
			if (Rotation == 2 && false) return 3449;
			if (Rotation == 3 && false) return 3451;
			if (Rotation == 4 && false) return 3453;
			if (Rotation == 5 && false) return 3455;
			if (Rotation == 6 && false) return 3457;
			if (Rotation == 7 && false) return 3459;
			if (Rotation == 8 && false) return 3461;
			if (Rotation == 9 && false) return 3463;
			if (Rotation == 10 && false) return 3465;
			if (Rotation == 11 && false) return 3467;
			if (Rotation == 12 && false) return 3469;
			if (Rotation == 13 && false) return 3471;
			if (Rotation == 14 && false) return 3473;
			if (Rotation == 15 && false) return 3475;
			if (Rotation == 0 && !false) return 3446;
			if (Rotation == 1 && !false) return 3448;
			if (Rotation == 2 && !false) return 3450;
			return 3476;
		}
		short BirchSign();
		unsigned char Rotation(short ID);
		bool Waterlogged(short ID);
	}
	namespace BirchSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short BirchSlab(enum Type Type)
		{
			if (Type == Type::Bottom && !false) return 8315;
			if (Type == Type::Top && false) return 8312;
			if (Type == Type::Double && false) return 8316;
			if (Type == Type::Top && !false) return 8313;
			if (Type == Type::Double && !false) return 8317;
			return 8314;
		}
		short BirchSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace BirchStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short BirchStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5520;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5521;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5522;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5523;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5524;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5525;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5526;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5527;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5528;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5529;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5530;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5531;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5532;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5533;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5534;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5535;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5536;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5537;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5538;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5539;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5540;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5541;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5542;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5543;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5544;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5545;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5546;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5547;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5484;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5548;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5485;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5549;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5486;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5550;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5487;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5551;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5488;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5552;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5489;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5553;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5490;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5554;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5491;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5555;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5492;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5556;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5493;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5557;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5494;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5558;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5495;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5559;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5496;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5560;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5497;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5561;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5498;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5562;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5499;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5563;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5500;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5501;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5502;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5503;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5504;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5505;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5506;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5507;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5508;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5509;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5510;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5511;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5512;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5513;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5514;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5515;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5516;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5517;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5518;
			return 5519;
		}
		short BirchStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace BirchTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short BirchTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4258;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4274;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4290;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4243;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4259;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4275;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4291;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4244;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4260;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4276;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4292;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4245;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4261;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4277;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4293;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4246;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4262;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4278;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4294;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4247;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4263;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4279;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4295;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4248;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4264;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4280;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4296;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4249;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4265;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4281;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4297;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4250;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4266;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4282;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4298;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4251;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4267;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4283;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4299;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4252;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4268;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4284;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4300;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4253;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4269;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4285;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4301;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4254;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4270;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4286;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4239;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4255;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4271;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4287;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4240;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4256;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4272;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4288;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4241;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4257;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4273;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4289;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4242;
			return 4302;
		}
		short BirchTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
		bool Waterlogged(short ID);
	}
	namespace BirchWallSign
	{
		constexpr short BirchWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 3757;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 3751;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 3752;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 3753;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 3754;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 3755;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 3756;
			return 3758;
		}
		short BirchWallSign();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace BirchWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short BirchWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 115;
			if (Axis == Axis::Y) return 116;
			return 117;
		}
		short BirchWood();
		enum Axis Axis(short ID);
	}
	namespace BlackBanner
	{
		constexpr short BlackBanner(unsigned char Rotation)
		{
			if (Rotation == 9) return 8146;
			if (Rotation == 10) return 8147;
			if (Rotation == 11) return 8148;
			if (Rotation == 12) return 8149;
			if (Rotation == 13) return 8150;
			if (Rotation == 14) return 8151;
			if (Rotation == 0) return 8137;
			if (Rotation == 1) return 8138;
			if (Rotation == 2) return 8139;
			if (Rotation == 3) return 8140;
			if (Rotation == 4) return 8141;
			if (Rotation == 5) return 8142;
			if (Rotation == 6) return 8143;
			if (Rotation == 7) return 8144;
			if (Rotation == 8) return 8145;
			return 8152;
		}
		short BlackBanner();
		unsigned char Rotation(short ID);
	}
	namespace BlackBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short BlackBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1302;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1291;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1295;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1299;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1303;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1292;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1296;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1300;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1289;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1293;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1297;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1301;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1290;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1294;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1298;
			return 1304;
		}
		short BlackBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace BlackCarpet
	{
		constexpr short BlackCarpet()
		{
			return 7881;
		}
	}
	namespace BlackConcrete
	{
		constexpr short BlackConcrete()
		{
			return 9453;
		}
	}
	namespace BlackConcretePowder
	{
		constexpr short BlackConcretePowder()
		{
			return 9469;
		}
	}
	namespace BlackGlazedTerracotta
	{
		constexpr short BlackGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9435;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9434;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9436;
			return 9437;
		}
		short BlackGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace BlackShulkerBox
	{
		constexpr short BlackShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9368;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9372;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9369;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9373;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9370;
			return 9371;
		}
		short BlackShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace BlackStainedGlass
	{
		constexpr short BlackStainedGlass()
		{
			return 4110;
		}
	}
	namespace BlackStainedGlassPane
	{
		constexpr short BlackStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (!false && !South && West && !East && North) return 7365;
			if (!false && South && West && !East && !North) return 7369;
			if (!false && !South && West && !East && !North) return 7373;
			if (!false && South && !West && East && North) return 7346;
			if (!false && !South && !West && East && North) return 7350;
			if (!false && South && !West && East && !North) return 7354;
			if (!false && !South && !West && East && !North) return 7358;
			if (!false && South && !West && !East && North) return 7362;
			if (!false && !South && !West && !East && North) return 7366;
			if (!false && South && !West && !East && !North) return 7370;
			if (false && South && West && East && North) return 7343;
			if (false && !South && West && East && North) return 7347;
			if (false && South && West && East && !North) return 7351;
			if (false && !South && West && East && !North) return 7355;
			if (false && South && West && !East && North) return 7359;
			if (false && !South && West && !East && North) return 7363;
			if (false && South && West && !East && !North) return 7367;
			if (false && !South && West && !East && !North) return 7371;
			if (false && South && !West && East && North) return 7344;
			if (false && !South && !West && East && North) return 7348;
			if (false && South && !West && East && !North) return 7352;
			if (false && !South && !West && East && !North) return 7356;
			if (false && South && !West && !East && North) return 7360;
			if (false && !South && !West && !East && North) return 7364;
			if (false && South && !West && !East && !North) return 7368;
			if (false && !South && !West && !East && !North) return 7372;
			if (!false && South && West && East && North) return 7345;
			if (!false && !South && West && East && North) return 7349;
			if (!false && South && West && East && !North) return 7353;
			if (!false && !South && West && East && !North) return 7357;
			if (!false && South && West && !East && North) return 7361;
			return 7374;
		}
		short BlackStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace BlackTerracotta
	{
		constexpr short BlackTerracotta()
		{
			return 6862;
		}
	}
	namespace BlackWallBanner
	{
		constexpr short BlackWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8214;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8213;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8215;
			return 8216;
		}
		short BlackWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace BlackWool
	{
		constexpr short BlackWool()
		{
			return 1399;
		}
	}
	namespace Blackstone
	{
		constexpr short Blackstone()
		{
			return 15839;
		}
	}
	namespace BlackstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short BlackstoneSlab(enum Type Type)
		{
			if (Type == Type::Double && !false) return 16249;
			if (Type == Type::Bottom && false) return 16246;
			if (Type == Type::Bottom && !false) return 16247;
			if (Type == Type::Top && false) return 16244;
			if (Type == Type::Double && false) return 16248;
			return 16245;
		}
		short BlackstoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace BlackstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short BlackstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15840;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15841;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15842;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15843;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15844;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15845;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15846;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15847;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15848;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15849;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15850;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15851;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15852;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15853;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15854;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15855;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15856;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15857;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15858;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15859;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15860;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15861;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15862;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15863;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15864;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15865;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15866;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15867;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15868;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15869;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15870;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15871;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15872;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15873;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15874;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15875;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15876;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15877;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15878;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15879;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15880;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15881;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15882;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15883;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15884;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15885;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15886;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15887;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15888;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15889;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15890;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15891;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15892;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15893;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15894;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15895;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15896;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15897;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15898;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15899;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15900;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15901;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15902;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15903;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15904;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15905;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15906;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15907;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15908;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15909;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15910;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15911;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15912;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15913;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15914;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15915;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15916;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15917;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15918;
			return 15919;
		}
		short BlackstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace BlackstoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short BlackstoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16144;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 16148;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 16152;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16156;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 16160;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 16164;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16168;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 16172;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 16176;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16180;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 16184;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 16188;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16192;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 16196;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 16200;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16204;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 16208;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16212;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16216;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 16220;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16224;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16228;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 16232;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16236;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16240;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 15921;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 15925;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 15929;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 15933;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 15937;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 15941;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 15945;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 15949;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 15953;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 15957;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 15961;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 15965;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 15969;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 15973;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 15977;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 15981;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 15985;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 15989;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 15993;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 15997;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 16001;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 16005;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 16009;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 16013;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 16017;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 16021;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 16025;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 16029;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 16033;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 16037;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 16041;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 16045;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 16049;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 16053;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 16057;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 16061;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 16065;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 16069;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 16073;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 16077;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 16081;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 16085;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 16089;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 16093;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 16097;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 16101;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16105;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 16109;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 16113;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16117;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 16121;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 16125;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16129;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 16133;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 16137;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 16141;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 16145;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 16149;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 16153;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 16157;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 16161;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 16165;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 16169;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 16173;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16177;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 16181;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 16185;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16189;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 16193;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 16197;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16201;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 16205;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16209;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16213;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16217;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16221;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16225;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16229;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16233;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16237;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16241;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 15922;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 15926;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 15930;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 15934;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 15938;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 15942;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 15946;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 15950;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 15954;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 15958;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 15962;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 15966;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 15970;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 15974;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 15978;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 15982;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 15986;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 15990;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 15994;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 15998;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 16002;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 16006;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 16010;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 16014;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 16018;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 16022;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 16026;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 16030;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 16034;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 16038;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 16042;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 16046;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 16050;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 16054;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 16058;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 16062;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 16066;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 16070;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 16074;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 16078;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 16082;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 16086;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 16090;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 16094;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 16098;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16102;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 16106;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16110;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16114;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 16118;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16122;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16126;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 16130;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16134;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 16138;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 16142;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 16146;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 16150;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 16154;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 16158;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 16162;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 16166;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 16170;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16174;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 16178;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16182;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16186;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 16190;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16194;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16198;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 16202;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16206;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16210;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16214;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16218;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16222;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16226;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16230;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16234;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16238;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16242;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 15923;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 15927;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 15931;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 15935;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 15939;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 15943;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 15947;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 15951;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 15955;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 15959;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 15963;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 15967;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 15971;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 15975;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 15979;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 15983;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 15987;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 15991;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 15995;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 15999;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16003;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 16007;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 16011;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16015;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 16019;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 16023;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16027;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 16031;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 16035;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 16039;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 16043;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 16047;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 16051;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 16055;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 16059;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 16063;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 16067;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 16071;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16075;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 16079;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 16083;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16087;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 16091;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 16095;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16099;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 16103;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16107;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16111;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 16115;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16119;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16123;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 16127;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16131;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16135;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 16139;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 16143;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16147;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 16151;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 16155;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16159;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 16163;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 16167;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16171;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 16175;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16179;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16183;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 16187;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16191;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16195;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 16199;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16203;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16207;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 16211;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16215;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16219;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 16223;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16227;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16231;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 16235;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16239;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16243;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 15920;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 15924;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 15928;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 15932;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 15936;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 15940;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 15944;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 15948;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 15952;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 15956;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 15960;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 15964;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 15968;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 15972;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 15976;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 15980;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 15984;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 15988;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 15992;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 15996;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16000;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 16004;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 16008;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16012;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 16016;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 16020;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16024;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 16028;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 16032;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 16036;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 16040;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 16044;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 16048;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 16052;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 16056;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 16060;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 16064;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 16068;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16072;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 16076;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 16080;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16084;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 16088;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 16092;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16096;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 16100;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 16104;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16108;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 16112;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 16116;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16120;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 16124;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 16128;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16132;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 16136;
			return 16140;
		}
		short BlackstoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace BlastFurnace
	{
		constexpr short BlastFurnace(eBlockFace Facing, bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit) return 14814;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit) return 14811;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit) return 14815;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit) return 14812;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit) return 14816;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit) return 14813;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit) return 14817;
			return 14818;
		}
		short BlastFurnace();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
	}
	namespace BlueBanner
	{
		constexpr short BlueBanner(unsigned char Rotation)
		{
			if (Rotation == 13) return 8086;
			if (Rotation == 14) return 8087;
			if (Rotation == 0) return 8073;
			if (Rotation == 1) return 8074;
			if (Rotation == 2) return 8075;
			if (Rotation == 3) return 8076;
			if (Rotation == 4) return 8077;
			if (Rotation == 5) return 8078;
			if (Rotation == 6) return 8079;
			if (Rotation == 7) return 8080;
			if (Rotation == 8) return 8081;
			if (Rotation == 9) return 8082;
			if (Rotation == 10) return 8083;
			if (Rotation == 11) return 8084;
			if (Rotation == 12) return 8085;
			return 8088;
		}
		short BlueBanner();
		unsigned char Rotation(short ID);
	}
	namespace BlueBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short BlueBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1227;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1231;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1235;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1239;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1228;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1232;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1236;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1225;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1229;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1233;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1237;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1226;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1230;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1234;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1238;
			return 1240;
		}
		short BlueBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace BlueCarpet
	{
		constexpr short BlueCarpet()
		{
			return 7877;
		}
	}
	namespace BlueConcrete
	{
		constexpr short BlueConcrete()
		{
			return 9449;
		}
	}
	namespace BlueConcretePowder
	{
		constexpr short BlueConcretePowder()
		{
			return 9465;
		}
	}
	namespace BlueGlazedTerracotta
	{
		constexpr short BlueGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9420;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9419;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9418;
			return 9421;
		}
		short BlueGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace BlueIce
	{
		constexpr short BlueIce()
		{
			return 9648;
		}
	}
	namespace BlueOrchid
	{
		constexpr short BlueOrchid()
		{
			return 1414;
		}
	}
	namespace BlueShulkerBox
	{
		constexpr short BlueShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9347;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9344;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9348;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9345;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9349;
			return 9346;
		}
		short BlueShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace BlueStainedGlass
	{
		constexpr short BlueStainedGlass()
		{
			return 4106;
		}
	}
	namespace BlueStainedGlassPane
	{
		constexpr short BlueStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (!false && South && West && !East && !North) return 7241;
			if (!false && !South && West && !East && !North) return 7245;
			if (!false && South && !West && East && North) return 7218;
			if (!false && !South && !West && East && North) return 7222;
			if (!false && South && !West && East && !North) return 7226;
			if (!false && !South && !West && East && !North) return 7230;
			if (!false && South && !West && !East && North) return 7234;
			if (!false && !South && !West && !East && North) return 7238;
			if (!false && South && !West && !East && !North) return 7242;
			if (false && South && West && East && North) return 7215;
			if (false && !South && West && East && North) return 7219;
			if (false && South && West && East && !North) return 7223;
			if (false && !South && West && East && !North) return 7227;
			if (false && South && West && !East && North) return 7231;
			if (false && !South && West && !East && North) return 7235;
			if (false && South && West && !East && !North) return 7239;
			if (false && !South && West && !East && !North) return 7243;
			if (false && South && !West && East && North) return 7216;
			if (false && !South && !West && East && North) return 7220;
			if (false && South && !West && East && !North) return 7224;
			if (false && !South && !West && East && !North) return 7228;
			if (false && South && !West && !East && North) return 7232;
			if (false && !South && !West && !East && North) return 7236;
			if (false && South && !West && !East && !North) return 7240;
			if (false && !South && !West && !East && !North) return 7244;
			if (!false && South && West && East && North) return 7217;
			if (!false && !South && West && East && North) return 7221;
			if (!false && South && West && East && !North) return 7225;
			if (!false && !South && West && East && !North) return 7229;
			if (!false && South && West && !East && North) return 7233;
			if (!false && !South && West && !East && North) return 7237;
			return 7246;
		}
		short BlueStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace BlueTerracotta
	{
		constexpr short BlueTerracotta()
		{
			return 6858;
		}
	}
	namespace BlueWallBanner
	{
		constexpr short BlueWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8199;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8198;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8197;
			return 8200;
		}
		short BlueWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace BlueWool
	{
		constexpr short BlueWool()
		{
			return 1395;
		}
	}
	namespace BoneBlock
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short BoneBlock(enum Axis Axis)
		{
			if (Axis == Axis::Z) return 9258;
			if (Axis == Axis::Y) return 9257;
			return 9256;
		}
		short BoneBlock();
		enum Axis Axis(short ID);
	}
	namespace Bookshelf
	{
		constexpr short Bookshelf()
		{
			return 1432;
		}
	}
	namespace BrainCoral
	{
		constexpr short BrainCoral()
		{
			if (false) return 9532;
			return 9533;
		}
		bool Waterlogged(short ID);
	}
	namespace BrainCoralBlock
	{
		constexpr short BrainCoralBlock()
		{
			return 9516;
		}
	}
	namespace BrainCoralFan
	{
		constexpr short BrainCoralFan()
		{
			if (false) return 9552;
			return 9553;
		}
		bool Waterlogged(short ID);
	}
	namespace BrainCoralWallFan
	{
		constexpr short BrainCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9613;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9610;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9614;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9611;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9608;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9612;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9609;
			return 9615;
		}
		short BrainCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace BrewingStand
	{
		constexpr short BrewingStand(bool HasBottle_0, bool HasBottle_1, bool HasBottle_2)
		{
			if (HasBottle_0 && HasBottle_1 && HasBottle_2) return 5133;
			if (HasBottle_0 && !HasBottle_1 && HasBottle_2) return 5135;
			if (!HasBottle_0 && HasBottle_1 && HasBottle_2) return 5137;
			if (!HasBottle_0 && !HasBottle_1 && HasBottle_2) return 5139;
			if (HasBottle_0 && HasBottle_1 && !HasBottle_2) return 5134;
			if (HasBottle_0 && !HasBottle_1 && !HasBottle_2) return 5136;
			if (!HasBottle_0 && HasBottle_1 && !HasBottle_2) return 5138;
			return 5140;
		}
		short BrewingStand();
		bool HasBottle_0(short ID);
		bool HasBottle_1(short ID);
		bool HasBottle_2(short ID);
	}
	namespace BrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short BrickSlab(enum Type Type)
		{
			if (Type == Type::Bottom && false) return 8374;
			if (Type == Type::Bottom && !false) return 8375;
			if (Type == Type::Top && false) return 8372;
			if (Type == Type::Double && false) return 8376;
			if (Type == Type::Top && !false) return 8373;
			return 8377;
		}
		short BrickSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace BrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short BrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4885;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4886;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4887;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4888;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4889;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4890;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4891;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 4892;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 4893;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4894;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4895;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4896;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4897;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4898;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4899;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4900;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4901;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 4902;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 4903;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4904;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4905;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4906;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4907;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4908;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4909;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4910;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4911;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 4912;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 4913;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4914;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4915;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4852;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4916;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4853;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4917;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4854;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4918;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4855;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4919;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4856;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4920;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4857;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4921;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4858;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 4922;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4859;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 4923;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4860;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4924;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4861;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4925;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4862;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4926;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4863;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4927;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4864;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4928;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4865;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4929;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4866;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4930;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4867;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4931;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4868;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4869;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4870;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4871;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4872;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4873;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4874;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4875;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4876;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4877;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4878;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4879;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4880;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4881;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4882;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4883;
			return 4884;
		}
		short BrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace BrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short BrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11034;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 11038;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 11042;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11046;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 11050;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11054;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11058;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 11062;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11066;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11070;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 11074;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11078;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11082;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 11086;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 11090;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11094;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 11098;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 11102;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11106;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 11110;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 11114;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11118;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 11122;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11126;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11130;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 11134;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11138;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11142;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 11146;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11150;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11154;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 11158;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11162;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11166;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 11170;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11174;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11178;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 11182;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11186;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11190;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 10867;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 10871;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 10875;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 10879;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 10883;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 10887;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 10891;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 10895;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 10899;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 10903;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 10907;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 10911;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 10915;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 10919;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 10923;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 10927;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 10931;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 10935;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 10939;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 10943;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 10947;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 10951;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 10955;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 10959;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 10963;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 10967;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 10971;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 10975;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 10979;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 10983;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 10987;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 10991;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 10995;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 10999;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 11003;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 11007;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 11011;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 11015;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11019;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 11023;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 11027;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11031;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 11035;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 11039;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11043;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 11047;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 11051;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11055;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 11059;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 11063;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11067;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 11071;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 11075;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11079;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 11083;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 11087;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11091;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 11095;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 11099;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11103;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 11107;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 11111;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11115;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 11119;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 11123;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11127;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 11131;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 11135;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11139;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 11143;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 11147;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11151;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 11155;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11159;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11163;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 11167;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11171;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11175;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 11179;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11183;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11187;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 10868;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 10872;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 10876;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 10880;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 10884;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 10888;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 10892;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 10896;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 10900;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 10904;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 10908;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 10912;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 10916;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 10920;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 10924;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 10928;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 10932;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 10936;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 10940;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 10944;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 10948;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 10952;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 10956;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 10960;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 10964;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 10968;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 10972;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 10976;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 10980;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 10984;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 10988;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 10992;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 10996;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 11000;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 11004;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 11008;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 11012;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 11016;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 11020;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 11024;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 11028;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 11032;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 11036;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 11040;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 11044;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 11048;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11052;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 11056;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 11060;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11064;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 11068;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 11072;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11076;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 11080;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 11084;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 11088;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 11092;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 11096;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 11100;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 11104;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 11108;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 11112;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 11116;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 11120;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11124;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 11128;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 11132;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11136;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 11140;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 11144;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11148;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 11152;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11156;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11160;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11164;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11168;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11172;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11176;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11180;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11184;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11188;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 10869;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 10873;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 10877;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 10881;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 10885;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 10889;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 10893;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 10897;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 10901;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 10905;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 10909;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 10913;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 10917;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 10921;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 10925;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 10929;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 10933;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 10937;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 10941;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 10945;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 10949;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 10953;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 10957;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 10961;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 10965;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 10969;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 10973;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 10977;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 10981;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 10985;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 10989;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 10993;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 10997;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 11001;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 11005;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 11009;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 11013;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 11017;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 11021;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 11025;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 11029;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 11033;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 11037;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 11041;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 11045;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11049;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 11053;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11057;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11061;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 11065;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11069;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11073;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 11077;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11081;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 11085;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 11089;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 11093;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 11097;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 11101;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 11105;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 11109;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 11113;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 11117;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11121;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 11125;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11129;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11133;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 11137;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11141;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11145;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 11149;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11153;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11157;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11161;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11165;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11169;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11173;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11177;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11181;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11185;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11189;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 10870;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 10874;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 10878;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 10882;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 10886;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 10890;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 10894;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 10898;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 10902;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 10906;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 10910;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 10914;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 10918;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 10922;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 10926;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 10930;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 10934;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 10938;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 10942;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 10946;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 10950;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 10954;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 10958;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 10962;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 10966;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 10970;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 10974;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 10978;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 10982;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 10986;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 10990;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 10994;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 10998;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 11002;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 11006;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 11010;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 11014;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 11018;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11022;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 11026;
			return 11030;
		}
		short BrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace Bricks
	{
		constexpr short Bricks()
		{
			return 1429;
		}
	}
	namespace BrownBanner
	{
		constexpr short BrownBanner(unsigned char Rotation)
		{
			if (Rotation == 12) return 8101;
			if (Rotation == 13) return 8102;
			if (Rotation == 14) return 8103;
			if (Rotation == 0) return 8089;
			if (Rotation == 1) return 8090;
			if (Rotation == 2) return 8091;
			if (Rotation == 3) return 8092;
			if (Rotation == 4) return 8093;
			if (Rotation == 5) return 8094;
			if (Rotation == 6) return 8095;
			if (Rotation == 7) return 8096;
			if (Rotation == 8) return 8097;
			if (Rotation == 9) return 8098;
			if (Rotation == 10) return 8099;
			if (Rotation == 11) return 8100;
			return 8104;
		}
		short BrownBanner();
		unsigned char Rotation(short ID);
	}
	namespace BrownBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short BrownBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1242;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1246;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1250;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1254;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1243;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1247;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1251;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1255;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1244;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1248;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1252;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1241;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1245;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1249;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1253;
			return 1256;
		}
		short BrownBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace BrownCarpet
	{
		constexpr short BrownCarpet()
		{
			return 7878;
		}
	}
	namespace BrownConcrete
	{
		constexpr short BrownConcrete()
		{
			return 9450;
		}
	}
	namespace BrownConcretePowder
	{
		constexpr short BrownConcretePowder()
		{
			return 9466;
		}
	}
	namespace BrownGlazedTerracotta
	{
		constexpr short BrownGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9423;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9422;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9424;
			return 9425;
		}
		short BrownGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace BrownMushroom
	{
		constexpr short BrownMushroom()
		{
			return 1425;
		}
	}
	namespace BrownMushroomBlock
	{
		constexpr short BrownMushroomBlock(bool Down, bool East, bool North, bool South, bool Up, bool West)
		{
			if (Up && !West && East && !South && Down && North) return 4510;
			if (Up && !West && !East && !South && Down && North) return 4526;
			if (Up && !West && East && !South && !Down && North) return 4542;
			if (Up && !West && !East && !South && !Down && North) return 4558;
			if (!Up && West && East && !South && Down && North) return 4511;
			if (!Up && West && !East && !South && Down && North) return 4527;
			if (!Up && West && East && !South && !Down && North) return 4543;
			if (!Up && West && !East && !South && !Down && North) return 4559;
			if (!Up && !West && East && !South && Down && North) return 4512;
			if (!Up && !West && !East && !South && Down && North) return 4528;
			if (!Up && !West && East && !South && !Down && North) return 4544;
			if (!Up && !West && !East && !South && !Down && North) return 4560;
			if (Up && West && East && South && Down && !North) return 4513;
			if (Up && West && !East && South && Down && !North) return 4529;
			if (Up && West && East && South && !Down && !North) return 4545;
			if (Up && West && !East && South && !Down && !North) return 4561;
			if (Up && !West && East && South && Down && !North) return 4514;
			if (Up && !West && !East && South && Down && !North) return 4530;
			if (Up && !West && East && South && !Down && !North) return 4546;
			if (Up && !West && !East && South && !Down && !North) return 4562;
			if (!Up && West && East && South && Down && !North) return 4515;
			if (!Up && West && !East && South && Down && !North) return 4531;
			if (!Up && West && East && South && !Down && !North) return 4547;
			if (!Up && West && !East && South && !Down && !North) return 4563;
			if (!Up && !West && East && South && Down && !North) return 4516;
			if (!Up && !West && !East && South && Down && !North) return 4532;
			if (!Up && !West && East && South && !Down && !North) return 4548;
			if (!Up && !West && !East && South && !Down && !North) return 4564;
			if (Up && West && East && !South && Down && !North) return 4517;
			if (Up && West && !East && !South && Down && !North) return 4533;
			if (Up && West && East && !South && !Down && !North) return 4549;
			if (Up && West && !East && !South && !Down && !North) return 4565;
			if (Up && !West && East && !South && Down && !North) return 4518;
			if (Up && !West && !East && !South && Down && !North) return 4534;
			if (Up && !West && East && !South && !Down && !North) return 4550;
			if (Up && !West && !East && !South && !Down && !North) return 4566;
			if (!Up && West && East && !South && Down && !North) return 4519;
			if (!Up && West && !East && !South && Down && !North) return 4535;
			if (!Up && West && East && !South && !Down && !North) return 4551;
			if (!Up && West && !East && !South && !Down && !North) return 4567;
			if (!Up && !West && East && !South && Down && !North) return 4520;
			if (!Up && !West && !East && !South && Down && !North) return 4536;
			if (!Up && !West && East && !South && !Down && !North) return 4552;
			if (Up && West && East && South && Down && North) return 4505;
			if (Up && West && !East && South && Down && North) return 4521;
			if (Up && West && East && South && !Down && North) return 4537;
			if (Up && West && !East && South && !Down && North) return 4553;
			if (Up && !West && East && South && Down && North) return 4506;
			if (Up && !West && !East && South && Down && North) return 4522;
			if (Up && !West && East && South && !Down && North) return 4538;
			if (Up && !West && !East && South && !Down && North) return 4554;
			if (!Up && West && East && South && Down && North) return 4507;
			if (!Up && West && !East && South && Down && North) return 4523;
			if (!Up && West && East && South && !Down && North) return 4539;
			if (!Up && West && !East && South && !Down && North) return 4555;
			if (!Up && !West && East && South && Down && North) return 4508;
			if (!Up && !West && !East && South && Down && North) return 4524;
			if (!Up && !West && East && South && !Down && North) return 4540;
			if (!Up && !West && !East && South && !Down && North) return 4556;
			if (Up && West && East && !South && Down && North) return 4509;
			if (Up && West && !East && !South && Down && North) return 4525;
			if (Up && West && East && !South && !Down && North) return 4541;
			if (Up && West && !East && !South && !Down && North) return 4557;
			return 4568;
		}
		short BrownMushroomBlock();
		bool Down(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace BrownShulkerBox
	{
		constexpr short BrownShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9354;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9351;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9355;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9352;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9353;
			return 9350;
		}
		short BrownShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace BrownStainedGlass
	{
		constexpr short BrownStainedGlass()
		{
			return 4107;
		}
	}
	namespace BrownStainedGlassPane
	{
		constexpr short BrownStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (false && South && !West && !East && !North) return 7272;
			if (false && !South && !West && !East && !North) return 7276;
			if (!false && South && West && East && North) return 7249;
			if (!false && !South && West && East && North) return 7253;
			if (!false && South && West && East && !North) return 7257;
			if (!false && !South && West && East && !North) return 7261;
			if (!false && South && West && !East && North) return 7265;
			if (!false && !South && West && !East && North) return 7269;
			if (!false && South && West && !East && !North) return 7273;
			if (!false && !South && West && !East && !North) return 7277;
			if (!false && South && !West && East && North) return 7250;
			if (!false && !South && !West && East && North) return 7254;
			if (!false && South && !West && East && !North) return 7258;
			if (!false && !South && !West && East && !North) return 7262;
			if (!false && South && !West && !East && North) return 7266;
			if (!false && !South && !West && !East && North) return 7270;
			if (!false && South && !West && !East && !North) return 7274;
			if (false && South && West && East && North) return 7247;
			if (false && !South && West && East && North) return 7251;
			if (false && South && West && East && !North) return 7255;
			if (false && !South && West && East && !North) return 7259;
			if (false && South && West && !East && North) return 7263;
			if (false && !South && West && !East && North) return 7267;
			if (false && South && West && !East && !North) return 7271;
			if (false && !South && West && !East && !North) return 7275;
			if (false && South && !West && East && North) return 7248;
			if (false && !South && !West && East && North) return 7252;
			if (false && South && !West && East && !North) return 7256;
			if (false && !South && !West && East && !North) return 7260;
			if (false && South && !West && !East && North) return 7264;
			if (false && !South && !West && !East && North) return 7268;
			return 7278;
		}
		short BrownStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace BrownTerracotta
	{
		constexpr short BrownTerracotta()
		{
			return 6859;
		}
	}
	namespace BrownWallBanner
	{
		constexpr short BrownWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8202;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8201;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8203;
			return 8204;
		}
		short BrownWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace BrownWool
	{
		constexpr short BrownWool()
		{
			return 1396;
		}
	}
	namespace BubbleColumn
	{
		constexpr short BubbleColumn(bool Drag)
		{
			if (Drag) return 9667;
			return 9668;
		}
		short BubbleColumn();
		bool Drag(short ID);
	}
	namespace BubbleCoral
	{
		constexpr short BubbleCoral()
		{
			if (false) return 9534;
			return 9535;
		}
		bool Waterlogged(short ID);
	}
	namespace BubbleCoralBlock
	{
		constexpr short BubbleCoralBlock()
		{
			return 9517;
		}
	}
	namespace BubbleCoralFan
	{
		constexpr short BubbleCoralFan()
		{
			if (false) return 9554;
			return 9555;
		}
		bool Waterlogged(short ID);
	}
	namespace BubbleCoralWallFan
	{
		constexpr short BubbleCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9620;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9617;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9621;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9618;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9622;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9619;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9616;
			return 9623;
		}
		short BubbleCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace Cactus
	{
		constexpr short Cactus(unsigned char Age)
		{
			if (Age == 0) return 3931;
			if (Age == 8) return 3939;
			if (Age == 1) return 3932;
			if (Age == 9) return 3940;
			if (Age == 2) return 3933;
			if (Age == 10) return 3941;
			if (Age == 3) return 3934;
			if (Age == 11) return 3942;
			if (Age == 4) return 3935;
			if (Age == 12) return 3943;
			if (Age == 5) return 3936;
			if (Age == 13) return 3944;
			if (Age == 6) return 3937;
			if (Age == 14) return 3945;
			if (Age == 7) return 3938;
			return 3946;
		}
		short Cactus();
		unsigned char Age(short ID);
	}
	namespace Cake
	{
		constexpr short Cake(unsigned char Bites)
		{
			if (Bites == 6) return 4030;
			if (Bites == 0) return 4024;
			if (Bites == 1) return 4025;
			if (Bites == 2) return 4026;
			if (Bites == 3) return 4027;
			if (Bites == 4) return 4028;
			return 4029;
		}
		short Cake();
		unsigned char Bites(short ID);
	}
	namespace Campfire
	{
		constexpr short Campfire(eBlockFace Facing, bool Lit, bool SignalFire)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && false && !SignalFire && Lit) return 14908;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false && !SignalFire && Lit) return 14916;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false && !SignalFire && Lit) return 14893;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false && !SignalFire && Lit) return 14901;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false && !SignalFire && Lit) return 14909;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !false && !SignalFire && Lit) return 14917;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false && SignalFire && !Lit) return 14894;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false && SignalFire && !Lit) return 14902;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false && SignalFire && !Lit) return 14910;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false && SignalFire && !Lit) return 14918;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false && SignalFire && !Lit) return 14895;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false && SignalFire && !Lit) return 14903;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false && SignalFire && !Lit) return 14911;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !false && SignalFire && !Lit) return 14919;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false && !SignalFire && !Lit) return 14896;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false && !SignalFire && !Lit) return 14904;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false && !SignalFire && !Lit) return 14912;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false && !SignalFire && !Lit) return 14920;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false && !SignalFire && !Lit) return 14897;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false && !SignalFire && !Lit) return 14905;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false && !SignalFire && !Lit) return 14913;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false && SignalFire && Lit) return 14890;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false && SignalFire && Lit) return 14898;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false && SignalFire && Lit) return 14906;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false && SignalFire && Lit) return 14914;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false && SignalFire && Lit) return 14891;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false && SignalFire && Lit) return 14899;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false && SignalFire && Lit) return 14907;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !false && SignalFire && Lit) return 14915;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false && !SignalFire && Lit) return 14892;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false && !SignalFire && Lit) return 14900;
			return 14921;
		}
		short Campfire();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
		bool SignalFire(short ID);
		bool Waterlogged(short ID);
	}
	namespace Carrots
	{
		constexpr short Carrots(unsigned char Age)
		{
			if (Age == 0) return 6330;
			if (Age == 2) return 6332;
			if (Age == 4) return 6334;
			if (Age == 6) return 6336;
			if (Age == 1) return 6331;
			if (Age == 3) return 6333;
			if (Age == 5) return 6335;
			return 6337;
		}
		short Carrots();
		unsigned char Age(short ID);
	}
	namespace CartographyTable
	{
		constexpr short CartographyTable()
		{
			return 14819;
		}
	}
	namespace CarvedPumpkin
	{
		constexpr short CarvedPumpkin(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4018;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4017;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4016;
			return 4019;
		}
		short CarvedPumpkin();
		eBlockFace Facing(short ID);
	}
	namespace Cauldron
	{
		constexpr short Cauldron(unsigned char Level)
		{
			if (Level == 2) return 5143;
			if (Level == 0) return 5141;
			if (Level == 1) return 5142;
			return 5144;
		}
		short Cauldron();
		unsigned char Level(short ID);
	}
	namespace CaveAir
	{
		constexpr short CaveAir()
		{
			return 9666;
		}
	}
	namespace Chain
	{
		constexpr short Chain()
		{
			if (false) return 4729;
			return 4730;
		}
		bool Waterlogged(short ID);
	}
	namespace ChainCommandBlock
	{
		constexpr short ChainCommandBlock(bool Conditional, eBlockFace Facing)
		{
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 9240;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YM) return 9242;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 9244;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 9246;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_YM) return 9248;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 9237;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 9239;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 9241;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 9243;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 9245;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 9247;
			return 9238;
		}
		short ChainCommandBlock();
		bool Conditional(short ID);
		eBlockFace Facing(short ID);
	}
	namespace Chest
	{
		enum class Type
		{
			Single,
			Left,
			Right
		};
		constexpr short Chest(eBlockFace Facing, enum Type Type)
		{
			if (Type == Type::Left && !false && Facing == eBlockFace::BLOCK_FACE_ZM) return 2037;
			if (Type == Type::Right && false && Facing == eBlockFace::BLOCK_FACE_ZM) return 2038;
			if (Type == Type::Right && !false && Facing == eBlockFace::BLOCK_FACE_ZM) return 2039;
			if (Type == Type::Single && false && Facing == eBlockFace::BLOCK_FACE_ZP) return 2040;
			if (Type == Type::Single && !false && Facing == eBlockFace::BLOCK_FACE_ZP) return 2041;
			if (Type == Type::Left && false && Facing == eBlockFace::BLOCK_FACE_ZP) return 2042;
			if (Type == Type::Left && !false && Facing == eBlockFace::BLOCK_FACE_ZP) return 2043;
			if (Type == Type::Right && false && Facing == eBlockFace::BLOCK_FACE_ZP) return 2044;
			if (Type == Type::Right && !false && Facing == eBlockFace::BLOCK_FACE_ZP) return 2045;
			if (Type == Type::Single && false && Facing == eBlockFace::BLOCK_FACE_XM) return 2046;
			if (Type == Type::Single && !false && Facing == eBlockFace::BLOCK_FACE_XM) return 2047;
			if (Type == Type::Left && false && Facing == eBlockFace::BLOCK_FACE_XM) return 2048;
			if (Type == Type::Right && false && Facing == eBlockFace::BLOCK_FACE_XM) return 2050;
			if (Type == Type::Single && false && Facing == eBlockFace::BLOCK_FACE_XP) return 2052;
			if (Type == Type::Left && false && Facing == eBlockFace::BLOCK_FACE_XP) return 2054;
			if (Type == Type::Right && false && Facing == eBlockFace::BLOCK_FACE_XP) return 2056;
			if (Type == Type::Right && !false && Facing == eBlockFace::BLOCK_FACE_XP) return 2057;
			if (Type == Type::Left && !false && Facing == eBlockFace::BLOCK_FACE_XP) return 2055;
			if (Type == Type::Single && !false && Facing == eBlockFace::BLOCK_FACE_XP) return 2053;
			if (Type == Type::Left && !false && Facing == eBlockFace::BLOCK_FACE_XM) return 2049;
			if (Type == Type::Single && false && Facing == eBlockFace::BLOCK_FACE_ZM) return 2034;
			if (Type == Type::Single && !false && Facing == eBlockFace::BLOCK_FACE_ZM) return 2035;
			if (Type == Type::Left && false && Facing == eBlockFace::BLOCK_FACE_ZM) return 2036;
			return 2051;
		}
		short Chest();
		eBlockFace Facing(short ID);
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace ChippedAnvil
	{
		constexpr short ChippedAnvil(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6616;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6614;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6615;
			return 6617;
		}
		short ChippedAnvil();
		eBlockFace Facing(short ID);
	}
	namespace ChiseledNetherBricks
	{
		constexpr short ChiseledNetherBricks()
		{
			return 17101;
		}
	}
	namespace ChiseledPolishedBlackstone
	{
		constexpr short ChiseledPolishedBlackstone()
		{
			return 16253;
		}
	}
	namespace ChiseledQuartzBlock
	{
		constexpr short ChiseledQuartzBlock()
		{
			return 6739;
		}
	}
	namespace ChiseledRedSandstone
	{
		constexpr short ChiseledRedSandstone()
		{
			return 8218;
		}
	}
	namespace ChiseledSandstone
	{
		constexpr short ChiseledSandstone()
		{
			return 247;
		}
	}
	namespace ChiseledStoneBricks
	{
		constexpr short ChiseledStoneBricks()
		{
			return 4498;
		}
	}
	namespace ChorusFlower
	{
		constexpr short ChorusFlower(unsigned char Age)
		{
			if (Age == 2) return 9130;
			if (Age == 3) return 9131;
			if (Age == 0) return 9128;
			if (Age == 4) return 9132;
			if (Age == 1) return 9129;
			return 9133;
		}
		short ChorusFlower();
		unsigned char Age(short ID);
	}
	namespace ChorusPlant
	{
		constexpr short ChorusPlant(bool Down, bool East, bool North, bool South, bool Up, bool West)
		{
			if (Up && !West && !East && South && Down && North) return 9081;
			if (Up && !West && !East && South && !Down && North) return 9113;
			if (!Up && West && !East && South && Down && North) return 9082;
			if (!Up && West && !East && South && !Down && North) return 9114;
			if (!Up && !West && !East && South && Down && North) return 9083;
			if (!Up && !West && !East && South && !Down && North) return 9115;
			if (Up && West && !East && !South && Down && North) return 9084;
			if (Up && West && !East && !South && !Down && North) return 9116;
			if (Up && !West && !East && !South && Down && North) return 9085;
			if (Up && !West && !East && !South && !Down && North) return 9117;
			if (!Up && West && !East && !South && Down && North) return 9086;
			if (!Up && West && !East && !South && !Down && North) return 9118;
			if (!Up && !West && !East && !South && Down && North) return 9087;
			if (!Up && !West && !East && !South && !Down && North) return 9119;
			if (Up && West && !East && South && Down && !North) return 9088;
			if (Up && West && !East && South && !Down && !North) return 9120;
			if (Up && !West && !East && South && Down && !North) return 9089;
			if (Up && !West && !East && South && !Down && !North) return 9121;
			if (!Up && West && !East && South && Down && !North) return 9090;
			if (!Up && West && !East && South && !Down && !North) return 9122;
			if (!Up && !West && !East && South && Down && !North) return 9091;
			if (!Up && !West && !East && South && !Down && !North) return 9123;
			if (Up && West && !East && !South && Down && !North) return 9092;
			if (Up && West && !East && !South && !Down && !North) return 9124;
			if (Up && !West && !East && !South && Down && !North) return 9093;
			if (Up && !West && !East && !South && !Down && !North) return 9125;
			if (!Up && West && !East && !South && Down && !North) return 9094;
			if (!Up && West && !East && !South && !Down && !North) return 9126;
			if (!Up && !West && !East && !South && Down && !North) return 9095;
			if (Up && West && East && South && Down && North) return 9064;
			if (Up && West && East && South && !Down && North) return 9096;
			if (Up && !West && East && South && Down && North) return 9065;
			if (Up && !West && East && South && !Down && North) return 9097;
			if (!Up && West && East && South && Down && North) return 9066;
			if (!Up && West && East && South && !Down && North) return 9098;
			if (!Up && !West && East && South && Down && North) return 9067;
			if (!Up && !West && East && South && !Down && North) return 9099;
			if (Up && West && East && !South && Down && North) return 9068;
			if (Up && West && East && !South && !Down && North) return 9100;
			if (Up && !West && East && !South && Down && North) return 9069;
			if (Up && !West && East && !South && !Down && North) return 9101;
			if (!Up && West && East && !South && Down && North) return 9070;
			if (!Up && West && East && !South && !Down && North) return 9102;
			if (!Up && !West && East && !South && Down && North) return 9071;
			if (!Up && !West && East && !South && !Down && North) return 9103;
			if (Up && West && East && South && Down && !North) return 9072;
			if (Up && West && East && South && !Down && !North) return 9104;
			if (Up && !West && East && South && Down && !North) return 9073;
			if (Up && !West && East && South && !Down && !North) return 9105;
			if (!Up && West && East && South && Down && !North) return 9074;
			if (!Up && West && East && South && !Down && !North) return 9106;
			if (!Up && !West && East && South && Down && !North) return 9075;
			if (!Up && !West && East && South && !Down && !North) return 9107;
			if (Up && West && East && !South && Down && !North) return 9076;
			if (Up && West && East && !South && !Down && !North) return 9108;
			if (Up && !West && East && !South && Down && !North) return 9077;
			if (Up && !West && East && !South && !Down && !North) return 9109;
			if (!Up && West && East && !South && Down && !North) return 9078;
			if (!Up && West && East && !South && !Down && !North) return 9110;
			if (!Up && !West && East && !South && Down && !North) return 9079;
			if (!Up && !West && East && !South && !Down && !North) return 9111;
			if (Up && West && !East && South && Down && North) return 9080;
			if (Up && West && !East && South && !Down && North) return 9112;
			return 9127;
		}
		short ChorusPlant();
		bool Down(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace Clay
	{
		constexpr short Clay()
		{
			return 3947;
		}
	}
	namespace CoalBlock
	{
		constexpr short CoalBlock()
		{
			return 7883;
		}
	}
	namespace CoalOre
	{
		constexpr short CoalOre()
		{
			return 71;
		}
	}
	namespace CoarseDirt
	{
		constexpr short CoarseDirt()
		{
			return 11;
		}
	}
	namespace Cobblestone
	{
		constexpr short Cobblestone()
		{
			return 14;
		}
	}
	namespace CobblestoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short CobblestoneSlab(enum Type Type)
		{
			if (Type == Type::Top && !false) return 8367;
			if (Type == Type::Double && !false) return 8371;
			if (Type == Type::Bottom && false) return 8368;
			if (Type == Type::Bottom && !false) return 8369;
			if (Type == Type::Top && false) return 8366;
			return 8370;
		}
		short CobblestoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace CobblestoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short CobblestoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3665;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 3697;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 3729;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3666;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 3698;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 3730;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 3667;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 3699;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 3731;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 3668;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 3700;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 3732;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3669;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 3701;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 3733;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3670;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 3702;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 3734;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 3671;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 3703;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 3672;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 3704;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3673;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 3705;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3674;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 3706;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3675;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 3707;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3676;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 3708;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 3677;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 3709;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 3678;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 3710;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3679;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 3711;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3680;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 3712;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 3681;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 3713;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 3682;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 3714;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3683;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 3715;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3684;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 3716;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3685;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 3717;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3686;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 3718;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3655;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 3687;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 3719;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3656;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 3688;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 3720;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 3657;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3689;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 3721;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 3658;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3690;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 3722;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3659;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 3691;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 3723;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3660;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 3692;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 3724;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 3661;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3693;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 3725;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 3662;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 3694;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 3726;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3663;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 3695;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 3727;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 3664;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 3696;
			return 3728;
		}
		short CobblestoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace CobblestoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short CobblestoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 5657;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 5659;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 5661;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 5663;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 5665;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 5667;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 5669;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 5671;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 5673;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 5675;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 5677;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 5679;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 5681;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 5683;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 5685;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 5687;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 5689;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 5691;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 5693;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 5695;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 5697;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 5699;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 5701;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 5703;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 5705;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 5707;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 5709;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 5711;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 5713;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 5715;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 5717;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 5719;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 5721;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 5723;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 5725;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 5727;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 5729;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 5731;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 5733;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 5735;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 5737;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 5739;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 5741;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 5743;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 5745;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 5747;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 5749;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 5751;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 5753;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 5755;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 5757;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 5759;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 5761;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 5763;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 5765;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 5767;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 5769;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 5771;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 5773;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 5775;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 5777;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 5779;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 5781;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 5783;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 5785;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 5787;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 5789;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 5791;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 5793;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 5795;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 5797;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 5799;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 5801;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 5803;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 5805;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 5807;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 5809;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 5811;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 5813;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 5815;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 5817;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 5819;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 5821;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 5823;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 5825;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 5827;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 5829;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 5831;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 5833;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 5835;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 5837;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 5839;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 5841;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 5843;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 5845;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 5847;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 5849;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 5851;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 5853;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 5855;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 5857;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 5859;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 5861;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 5863;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 5865;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 5867;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 5869;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 5871;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 5873;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 5875;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 5877;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 5879;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 5881;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 5883;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 5885;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 5887;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 5889;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 5891;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 5893;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 5895;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 5897;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 5899;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 5901;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 5903;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 5905;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 5907;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 5909;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 5911;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 5913;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 5915;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 5917;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 5919;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 5921;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 5923;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 5925;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 5927;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 5929;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 5931;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 5933;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 5935;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 5937;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 5939;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 5941;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 5943;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 5945;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 5947;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 5949;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 5951;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 5953;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 5955;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 5957;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 5959;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 5961;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 5963;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 5965;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 5967;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 5969;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 5971;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 5973;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 5975;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 5977;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 5979;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 5658;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 5660;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 5662;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 5664;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 5666;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 5668;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 5670;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 5672;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 5674;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 5676;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 5678;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 5680;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 5682;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 5684;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 5686;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 5688;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 5690;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 5692;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 5694;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 5696;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 5698;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 5700;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 5702;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 5704;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 5706;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 5708;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 5710;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 5712;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 5714;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 5716;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 5718;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 5720;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 5722;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 5724;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 5726;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 5728;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 5730;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 5732;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 5734;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 5736;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 5738;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 5740;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 5742;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 5744;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 5746;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 5748;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 5750;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 5752;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 5754;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 5756;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 5758;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 5760;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 5762;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 5764;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 5766;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 5768;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 5770;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 5772;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 5774;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 5776;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 5778;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 5780;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 5782;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 5784;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 5786;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 5788;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 5790;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 5792;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 5794;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 5796;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 5798;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 5800;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 5802;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 5804;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 5806;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 5808;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 5810;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 5812;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 5814;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 5816;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 5818;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 5820;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 5822;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 5824;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 5826;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 5828;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 5830;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 5832;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 5834;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 5836;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 5838;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 5840;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 5842;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 5844;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 5846;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 5848;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 5850;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 5852;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 5854;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 5856;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 5858;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 5860;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 5862;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 5864;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 5866;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 5868;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 5870;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 5872;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 5874;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 5876;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 5878;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 5880;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 5882;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 5884;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 5886;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 5888;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 5890;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 5892;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 5894;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 5896;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 5898;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 5900;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 5902;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 5904;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 5906;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 5908;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 5910;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 5912;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 5914;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 5916;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 5918;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 5920;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 5922;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 5924;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 5926;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 5928;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 5930;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 5932;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 5934;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 5936;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 5938;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 5940;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 5942;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 5944;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 5946;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 5948;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 5950;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 5952;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 5954;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 5956;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 5958;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 5960;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 5962;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 5964;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 5966;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 5968;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 5970;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 5972;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 5974;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 5976;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 5978;
			return 5980;
		}
		short CobblestoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace Cobweb
	{
		constexpr short Cobweb()
		{
			return 1341;
		}
	}
	namespace Cocoa
	{
		constexpr short Cocoa(unsigned char Age, eBlockFace Facing)
		{
			if (Age == 0 && Facing == eBlockFace::BLOCK_FACE_XP) return 5161;
			if (Age == 1 && Facing == eBlockFace::BLOCK_FACE_ZM) return 5162;
			if (Age == 1 && Facing == eBlockFace::BLOCK_FACE_ZP) return 5163;
			if (Age == 1 && Facing == eBlockFace::BLOCK_FACE_XM) return 5164;
			if (Age == 1 && Facing == eBlockFace::BLOCK_FACE_XP) return 5165;
			if (Age == 2 && Facing == eBlockFace::BLOCK_FACE_ZM) return 5166;
			if (Age == 2 && Facing == eBlockFace::BLOCK_FACE_ZP) return 5167;
			if (Age == 2 && Facing == eBlockFace::BLOCK_FACE_XM) return 5168;
			if (Age == 2 && Facing == eBlockFace::BLOCK_FACE_XP) return 5169;
			if (Age == 0 && Facing == eBlockFace::BLOCK_FACE_ZM) return 5158;
			if (Age == 0 && Facing == eBlockFace::BLOCK_FACE_ZP) return 5159;
			return 5160;
		}
		short Cocoa();
		unsigned char Age(short ID);
		eBlockFace Facing(short ID);
	}
	namespace CommandBlock
	{
		constexpr short CommandBlock(bool Conditional, eBlockFace Facing)
		{
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 5644;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 5645;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 5646;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 5647;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 5648;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YM) return 5649;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 5650;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 5651;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 5652;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 5653;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 5654;
			return 5655;
		}
		short CommandBlock();
		bool Conditional(short ID);
		eBlockFace Facing(short ID);
	}
	namespace Comparator
	{
		enum class Mode
		{
			Compare,
			Subtract
		};
		constexpr short Comparator(eBlockFace Facing, enum Mode Mode, bool Powered)
		{
			if (Mode == Mode::Compare && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6691;
			if (Mode == Mode::Subtract && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6692;
			if (Mode == Mode::Compare && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6678;
			if (Mode == Mode::Compare && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6679;
			if (Mode == Mode::Subtract && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6680;
			if (Mode == Mode::Subtract && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6681;
			if (Mode == Mode::Compare && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6682;
			if (Mode == Mode::Compare && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6683;
			if (Mode == Mode::Subtract && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6684;
			if (Mode == Mode::Subtract && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6685;
			if (Mode == Mode::Compare && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6686;
			if (Mode == Mode::Compare && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6687;
			if (Mode == Mode::Subtract && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6688;
			if (Mode == Mode::Subtract && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6689;
			if (Mode == Mode::Compare && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6690;
			return 6693;
		}
		short Comparator();
		eBlockFace Facing(short ID);
		enum Mode Mode(short ID);
		bool Powered(short ID);
	}
	namespace Composter
	{
		constexpr short Composter(unsigned char Level)
		{
			if (Level == 1) return 15752;
			if (Level == 3) return 15754;
			if (Level == 5) return 15756;
			if (Level == 7) return 15758;
			if (Level == 0) return 15751;
			if (Level == 2) return 15753;
			if (Level == 4) return 15755;
			if (Level == 6) return 15757;
			return 15759;
		}
		short Composter();
		unsigned char Level(short ID);
	}
	namespace Conduit
	{
		constexpr short Conduit()
		{
			if (false) return 9649;
			return 9650;
		}
		bool Waterlogged(short ID);
	}
	namespace Cornflower
	{
		constexpr short Cornflower()
		{
			return 1422;
		}
	}
	namespace CrackedNetherBricks
	{
		constexpr short CrackedNetherBricks()
		{
			return 17102;
		}
	}
	namespace CrackedPolishedBlackstoneBricks
	{
		constexpr short CrackedPolishedBlackstoneBricks()
		{
			return 16252;
		}
	}
	namespace CrackedStoneBricks
	{
		constexpr short CrackedStoneBricks()
		{
			return 4497;
		}
	}
	namespace CraftingTable
	{
		constexpr short CraftingTable()
		{
			return 3356;
		}
	}
	namespace CreeperHead
	{
		constexpr short CreeperHead(unsigned char Rotation)
		{
			if (Rotation == 1) return 6571;
			if (Rotation == 2) return 6572;
			if (Rotation == 3) return 6573;
			if (Rotation == 4) return 6574;
			if (Rotation == 5) return 6575;
			if (Rotation == 6) return 6576;
			if (Rotation == 7) return 6577;
			if (Rotation == 8) return 6578;
			if (Rotation == 9) return 6579;
			if (Rotation == 10) return 6580;
			if (Rotation == 11) return 6581;
			if (Rotation == 12) return 6582;
			if (Rotation == 13) return 6583;
			if (Rotation == 14) return 6584;
			if (Rotation == 0) return 6570;
			return 6585;
		}
		short CreeperHead();
		unsigned char Rotation(short ID);
	}
	namespace CreeperWallHead
	{
		constexpr short CreeperWallHead(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6586;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6587;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6588;
			return 6589;
		}
		short CreeperWallHead();
		eBlockFace Facing(short ID);
	}
	namespace CrimsonButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short CrimsonButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15497;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15482;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15490;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15498;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15483;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15491;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15499;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15484;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15492;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15500;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15485;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15493;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15501;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15486;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15494;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15502;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15479;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15487;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15495;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15480;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15488;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15496;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15481;
			return 15489;
		}
		short CrimsonButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace CrimsonDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short CrimsonDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 15570;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 15539;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 15571;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 15540;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 15572;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 15541;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 15573;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 15542;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 15574;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 15543;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 15575;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 15544;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 15576;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 15545;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 15577;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 15546;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 15578;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 15547;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 15579;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 15548;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 15580;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 15549;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 15581;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 15550;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Right) return 15582;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 15551;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 15583;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 15552;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 15584;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 15553;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 15585;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 15554;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 15586;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 15555;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 15587;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 15556;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 15588;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 15557;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 15589;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 15558;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 15527;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 15559;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 15528;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 15560;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 15529;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 15561;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 15530;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 15562;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 15531;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 15563;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 15532;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 15564;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 15533;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 15565;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 15534;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 15566;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 15535;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 15567;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 15536;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 15568;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 15537;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 15569;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 15538;
			return 15590;
		}
		short CrimsonDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace CrimsonFence
	{
		constexpr short CrimsonFence(bool East, bool North, bool South, bool West)
		{
			if (false && South && West && East && North) return 15063;
			if (false && South && West && East && !North) return 15071;
			if (false && South && West && !East && North) return 15079;
			if (false && South && West && !East && !North) return 15087;
			if (false && South && !West && East && North) return 15064;
			if (false && South && !West && East && !North) return 15072;
			if (false && South && !West && !East && North) return 15080;
			if (false && South && !West && !East && !North) return 15088;
			if (!false && South && West && East && North) return 15065;
			if (!false && South && West && East && !North) return 15073;
			if (!false && South && West && !East && North) return 15081;
			if (!false && South && West && !East && !North) return 15089;
			if (!false && South && !West && East && North) return 15066;
			if (!false && South && !West && East && !North) return 15074;
			if (!false && South && !West && !East && North) return 15082;
			if (!false && South && !West && !East && !North) return 15090;
			if (false && !South && West && East && North) return 15067;
			if (false && !South && West && East && !North) return 15075;
			if (false && !South && West && !East && North) return 15083;
			if (false && !South && West && !East && !North) return 15091;
			if (false && !South && !West && East && North) return 15068;
			if (false && !South && !West && East && !North) return 15076;
			if (false && !South && !West && !East && North) return 15084;
			if (false && !South && !West && !East && !North) return 15092;
			if (!false && !South && West && East && North) return 15069;
			if (!false && !South && West && East && !North) return 15077;
			if (!false && !South && West && !East && North) return 15085;
			if (!false && !South && West && !East && !North) return 15093;
			if (!false && !South && !West && East && North) return 15070;
			if (!false && !South && !West && East && !North) return 15078;
			if (!false && !South && !West && !East && North) return 15086;
			return 15094;
		}
		short CrimsonFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace CrimsonFenceGate
	{
		constexpr short CrimsonFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15280;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15257;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15265;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15273;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15281;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15258;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15266;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15274;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15282;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15259;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15267;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15275;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15283;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15260;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15268;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15276;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15284;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15261;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15269;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15277;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15285;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15262;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15270;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15278;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15255;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15263;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15271;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15279;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15256;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15264;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15272;
			return 15286;
		}
		short CrimsonFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace CrimsonFungus
	{
		constexpr short CrimsonFungus()
		{
			return 14988;
		}
	}
	namespace CrimsonHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short CrimsonHyphae(enum Axis Axis)
		{
			if (Axis == Axis::Y) return 14982;
			if (Axis == Axis::X) return 14981;
			return 14983;
		}
		short CrimsonHyphae();
		enum Axis Axis(short ID);
	}
	namespace CrimsonNylium
	{
		constexpr short CrimsonNylium()
		{
			return 14987;
		}
	}
	namespace CrimsonPlanks
	{
		constexpr short CrimsonPlanks()
		{
			return 15045;
		}
	}
	namespace CrimsonPressurePlate
	{
		constexpr short CrimsonPressurePlate(bool Powered)
		{
			if (Powered) return 15059;
			return 15060;
		}
		short CrimsonPressurePlate();
		bool Powered(short ID);
	}
	namespace CrimsonRoots
	{
		constexpr short CrimsonRoots()
		{
			return 15044;
		}
	}
	namespace CrimsonSign
	{
		constexpr short CrimsonSign(unsigned char Rotation)
		{
			if (Rotation == 14 && false) return 15683;
			if (Rotation == 2 && !false) return 15660;
			if (Rotation == 6 && !false) return 15668;
			if (Rotation == 10 && !false) return 15676;
			if (Rotation == 14 && !false) return 15684;
			if (Rotation == 3 && false) return 15661;
			if (Rotation == 7 && false) return 15669;
			if (Rotation == 11 && false) return 15677;
			if (Rotation == 15 && false) return 15685;
			if (Rotation == 3 && !false) return 15662;
			if (Rotation == 7 && !false) return 15670;
			if (Rotation == 11 && !false) return 15678;
			if (Rotation == 0 && false) return 15655;
			if (Rotation == 4 && false) return 15663;
			if (Rotation == 8 && false) return 15671;
			if (Rotation == 12 && false) return 15679;
			if (Rotation == 0 && !false) return 15656;
			if (Rotation == 4 && !false) return 15664;
			if (Rotation == 8 && !false) return 15672;
			if (Rotation == 12 && !false) return 15680;
			if (Rotation == 1 && false) return 15657;
			if (Rotation == 5 && false) return 15665;
			if (Rotation == 9 && false) return 15673;
			if (Rotation == 13 && false) return 15681;
			if (Rotation == 1 && !false) return 15658;
			if (Rotation == 5 && !false) return 15666;
			if (Rotation == 9 && !false) return 15674;
			if (Rotation == 13 && !false) return 15682;
			if (Rotation == 2 && false) return 15659;
			if (Rotation == 6 && false) return 15667;
			if (Rotation == 10 && false) return 15675;
			return 15686;
		}
		short CrimsonSign();
		unsigned char Rotation(short ID);
		bool Waterlogged(short ID);
	}
	namespace CrimsonSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short CrimsonSlab(enum Type Type)
		{
			if (Type == Type::Double && !false) return 15052;
			if (Type == Type::Bottom && false) return 15049;
			if (Type == Type::Bottom && !false) return 15050;
			if (Type == Type::Top && false) return 15047;
			if (Type == Type::Double && false) return 15051;
			return 15048;
		}
		short CrimsonSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace CrimsonStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short CrimsonStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15319;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15320;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15321;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15322;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15323;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15324;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15325;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15326;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15327;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15328;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15329;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15330;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15331;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15332;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15333;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15334;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15335;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15336;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15337;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15338;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15339;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15340;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15341;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15342;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15343;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15344;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15345;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15346;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15347;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15348;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15349;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15350;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15351;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15352;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15353;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15354;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15355;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15356;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15357;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15358;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15359;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15360;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15361;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15362;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15363;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15364;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15365;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15366;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15367;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15368;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15369;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15370;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15371;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15372;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15373;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15374;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15375;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15376;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15377;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15378;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15379;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15380;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15381;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15382;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15383;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15384;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15385;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15386;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15387;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15388;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15389;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15390;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15391;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15392;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15393;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15394;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15395;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15396;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15397;
			return 15398;
		}
		short CrimsonStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace CrimsonStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short CrimsonStem(enum Axis Axis)
		{
			if (Axis == Axis::Y) return 14976;
			if (Axis == Axis::X) return 14975;
			return 14977;
		}
		short CrimsonStem();
		enum Axis Axis(short ID);
	}
	namespace CrimsonTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short CrimsonTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 15129;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 15161;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 15130;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 15162;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 15131;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 15163;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 15132;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 15164;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 15133;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 15165;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 15134;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 15166;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 15135;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 15167;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 15136;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 15168;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 15137;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 15169;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 15138;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 15170;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 15139;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 15171;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 15140;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 15172;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 15141;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 15173;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 15142;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 15174;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 15143;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 15175;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 15144;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 15176;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 15145;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 15177;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 15146;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 15178;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 15147;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 15179;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 15148;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 15180;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 15149;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 15181;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 15150;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 15182;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 15151;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 15183;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 15152;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 15184;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 15153;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 15185;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 15154;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 15186;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 15155;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 15187;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 15156;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 15188;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 15157;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 15189;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 15158;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 15127;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 15159;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 15128;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 15160;
			return 15190;
		}
		short CrimsonTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
		bool Waterlogged(short ID);
	}
	namespace CrimsonWallSign
	{
		constexpr short CrimsonWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 15724;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 15721;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 15725;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 15722;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 15719;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 15723;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 15720;
			return 15726;
		}
		short CrimsonWallSign();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace CryingObsidian
	{
		constexpr short CryingObsidian()
		{
			return 15828;
		}
	}
	namespace CutRedSandstone
	{
		constexpr short CutRedSandstone()
		{
			return 8219;
		}
	}
	namespace CutRedSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short CutRedSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Top && false) return 8402;
			if (Type == Type::Double && false) return 8406;
			if (Type == Type::Top && !false) return 8403;
			if (Type == Type::Double && !false) return 8407;
			if (Type == Type::Bottom && false) return 8404;
			return 8405;
		}
		short CutRedSandstoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace CutSandstone
	{
		constexpr short CutSandstone()
		{
			return 248;
		}
	}
	namespace CutSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short CutSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Bottom && !false) return 8357;
			if (Type == Type::Top && false) return 8354;
			if (Type == Type::Double && false) return 8358;
			if (Type == Type::Top && !false) return 8355;
			if (Type == Type::Double && !false) return 8359;
			return 8356;
		}
		short CutSandstoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace CyanBanner
	{
		constexpr short CyanBanner(unsigned char Rotation)
		{
			if (Rotation == 0) return 8041;
			if (Rotation == 1) return 8042;
			if (Rotation == 2) return 8043;
			if (Rotation == 3) return 8044;
			if (Rotation == 4) return 8045;
			if (Rotation == 5) return 8046;
			if (Rotation == 6) return 8047;
			if (Rotation == 7) return 8048;
			if (Rotation == 8) return 8049;
			if (Rotation == 9) return 8050;
			if (Rotation == 10) return 8051;
			if (Rotation == 11) return 8052;
			if (Rotation == 12) return 8053;
			if (Rotation == 13) return 8054;
			if (Rotation == 14) return 8055;
			return 8056;
		}
		short CyanBanner();
		unsigned char Rotation(short ID);
	}
	namespace CyanBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short CyanBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1197;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1201;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1205;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1194;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1198;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1202;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1206;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1195;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1199;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1203;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1207;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1196;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1200;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1204;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1193;
			return 1208;
		}
		short CyanBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace CyanCarpet
	{
		constexpr short CyanCarpet()
		{
			return 7875;
		}
	}
	namespace CyanConcrete
	{
		constexpr short CyanConcrete()
		{
			return 9447;
		}
	}
	namespace CyanConcretePowder
	{
		constexpr short CyanConcretePowder()
		{
			return 9463;
		}
	}
	namespace CyanGlazedTerracotta
	{
		constexpr short CyanGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9411;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9410;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9412;
			return 9413;
		}
		short CyanGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace CyanShulkerBox
	{
		constexpr short CyanShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9333;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9337;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9334;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9335;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9332;
			return 9336;
		}
		short CyanShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace CyanStainedGlass
	{
		constexpr short CyanStainedGlass()
		{
			return 4104;
		}
	}
	namespace CyanStainedGlassPane
	{
		constexpr short CyanStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (false && !South && West && !East && !North) return 7179;
			if (false && South && !West && East && North) return 7152;
			if (false && !South && !West && East && North) return 7156;
			if (false && South && !West && East && !North) return 7160;
			if (false && !South && !West && East && !North) return 7164;
			if (false && South && !West && !East && North) return 7168;
			if (false && !South && !West && !East && North) return 7172;
			if (false && South && !West && !East && !North) return 7176;
			if (false && !South && !West && !East && !North) return 7180;
			if (!false && South && West && East && North) return 7153;
			if (!false && !South && West && East && North) return 7157;
			if (!false && South && West && East && !North) return 7161;
			if (!false && !South && West && East && !North) return 7165;
			if (!false && South && West && !East && North) return 7169;
			if (!false && !South && West && !East && North) return 7173;
			if (!false && South && West && !East && !North) return 7177;
			if (!false && !South && West && !East && !North) return 7181;
			if (!false && South && !West && East && North) return 7154;
			if (!false && !South && !West && East && North) return 7158;
			if (!false && South && !West && East && !North) return 7162;
			if (!false && !South && !West && East && !North) return 7166;
			if (!false && South && !West && !East && North) return 7170;
			if (!false && !South && !West && !East && North) return 7174;
			if (!false && South && !West && !East && !North) return 7178;
			if (false && South && West && East && North) return 7151;
			if (false && !South && West && East && North) return 7155;
			if (false && South && West && East && !North) return 7159;
			if (false && !South && West && East && !North) return 7163;
			if (false && South && West && !East && North) return 7167;
			if (false && !South && West && !East && North) return 7171;
			if (false && South && West && !East && !North) return 7175;
			return 7182;
		}
		short CyanStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace CyanTerracotta
	{
		constexpr short CyanTerracotta()
		{
			return 6856;
		}
	}
	namespace CyanWallBanner
	{
		constexpr short CyanWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8191;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8189;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8190;
			return 8192;
		}
		short CyanWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace CyanWool
	{
		constexpr short CyanWool()
		{
			return 1393;
		}
	}
	namespace DamagedAnvil
	{
		constexpr short DamagedAnvil(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6619;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6620;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6618;
			return 6621;
		}
		short DamagedAnvil();
		eBlockFace Facing(short ID);
	}
	namespace Dandelion
	{
		constexpr short Dandelion()
		{
			return 1412;
		}
	}
	namespace DarkOakButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short DarkOakButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6466;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6470;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6474;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6478;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6482;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6486;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6467;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6471;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6475;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6479;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6483;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6487;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6468;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6472;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6476;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6480;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6484;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6488;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6469;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6473;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6477;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6481;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6485;
			return 6489;
		}
		short DarkOakButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace DarkOakDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short DarkOakDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 9018;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 9050;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 9019;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 9051;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 9020;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 9052;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 9021;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 9053;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 9022;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 9054;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 9023;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 9055;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 9024;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 9056;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 9025;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 8994;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 9026;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 8995;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 9027;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 8996;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 9028;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 8997;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 9029;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 8998;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 9030;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 8999;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 9031;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 9000;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 9032;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 9001;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 9033;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 9002;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 9034;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 9003;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 9035;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 9004;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 9036;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 9005;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 9037;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 9006;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 9038;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 9007;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 9039;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 9008;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 9040;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 9009;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 9041;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 9010;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 9042;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 9011;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 9043;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 9012;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 9044;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 9013;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 9045;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 9014;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 9046;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 9015;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 9047;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 9016;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 9048;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 9017;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Right) return 9049;
			return 9057;
		}
		short DarkOakDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace DarkOakFence
	{
		constexpr short DarkOakFence(bool East, bool North, bool South, bool West)
		{
			if (!false && South && West && East && North) return 8708;
			if (!false && South && West && East && !North) return 8716;
			if (!false && South && West && !East && North) return 8724;
			if (!false && South && West && !East && !North) return 8732;
			if (!false && South && !West && East && North) return 8709;
			if (!false && South && !West && East && !North) return 8717;
			if (!false && South && !West && !East && North) return 8725;
			if (!false && South && !West && !East && !North) return 8733;
			if (false && !South && West && East && North) return 8710;
			if (false && !South && West && East && !North) return 8718;
			if (false && !South && West && !East && North) return 8726;
			if (false && !South && West && !East && !North) return 8734;
			if (false && !South && !West && East && North) return 8711;
			if (false && !South && !West && East && !North) return 8719;
			if (false && !South && !West && !East && North) return 8727;
			if (false && !South && !West && !East && !North) return 8735;
			if (!false && !South && West && East && North) return 8712;
			if (!false && !South && West && East && !North) return 8720;
			if (!false && !South && West && !East && North) return 8728;
			if (!false && !South && West && !East && !North) return 8736;
			if (!false && !South && !West && East && North) return 8713;
			if (!false && !South && !West && East && !North) return 8721;
			if (!false && !South && !West && !East && North) return 8729;
			if (false && South && West && East && North) return 8706;
			if (false && South && West && East && !North) return 8714;
			if (false && South && West && !East && North) return 8722;
			if (false && South && West && !East && !North) return 8730;
			if (false && South && !West && East && North) return 8707;
			if (false && South && !West && East && !North) return 8715;
			if (false && South && !West && !East && North) return 8723;
			if (false && South && !West && !East && !North) return 8731;
			return 8737;
		}
		short DarkOakFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace DarkOakFenceGate
	{
		constexpr short DarkOakFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8553;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8561;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8569;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8546;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8554;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8562;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8570;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8547;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8555;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8563;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8571;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8548;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8556;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8564;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8572;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8549;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8557;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8565;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8573;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8550;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8558;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8566;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8574;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8551;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8559;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8567;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8575;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8552;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8560;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8568;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8576;
			return 8577;
		}
		short DarkOakFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace DarkOakLeaves
	{
		constexpr short DarkOakLeaves(unsigned char Distance, bool Persistent)
		{
			if (!Persistent && Distance == 7) return 228;
			if (Persistent && Distance == 4) return 221;
			if (!Persistent && Distance == 4) return 222;
			if (Persistent && Distance == 1) return 215;
			if (Persistent && Distance == 5) return 223;
			if (!Persistent && Distance == 1) return 216;
			if (!Persistent && Distance == 5) return 224;
			if (Persistent && Distance == 2) return 217;
			if (Persistent && Distance == 6) return 225;
			if (!Persistent && Distance == 2) return 218;
			if (!Persistent && Distance == 6) return 226;
			if (Persistent && Distance == 3) return 219;
			if (Persistent && Distance == 7) return 227;
			return 220;
		}
		short DarkOakLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace DarkOakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short DarkOakLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 88;
			if (Axis == Axis::Y) return 89;
			return 90;
		}
		short DarkOakLog();
		enum Axis Axis(short ID);
	}
	namespace DarkOakPlanks
	{
		constexpr short DarkOakPlanks()
		{
			return 20;
		}
	}
	namespace DarkOakPressurePlate
	{
		constexpr short DarkOakPressurePlate(bool Powered)
		{
			if (Powered) return 3883;
			return 3884;
		}
		short DarkOakPressurePlate();
		bool Powered(short ID);
	}
	namespace DarkOakSapling
	{
		constexpr short DarkOakSapling(unsigned char Stage)
		{
			if (Stage == 0) return 31;
			return 32;
		}
		short DarkOakSapling();
		unsigned char Stage(short ID);
	}
	namespace DarkOakSign
	{
		constexpr short DarkOakSign(unsigned char Rotation)
		{
			if (Rotation == 2 && false) return 3545;
			if (Rotation == 3 && false) return 3547;
			if (Rotation == 4 && false) return 3549;
			if (Rotation == 5 && false) return 3551;
			if (Rotation == 6 && false) return 3553;
			if (Rotation == 7 && false) return 3555;
			if (Rotation == 8 && false) return 3557;
			if (Rotation == 9 && false) return 3559;
			if (Rotation == 10 && false) return 3561;
			if (Rotation == 11 && false) return 3563;
			if (Rotation == 12 && false) return 3565;
			if (Rotation == 13 && false) return 3567;
			if (Rotation == 14 && false) return 3569;
			if (Rotation == 15 && false) return 3571;
			if (Rotation == 0 && !false) return 3542;
			if (Rotation == 1 && !false) return 3544;
			if (Rotation == 2 && !false) return 3546;
			if (Rotation == 3 && !false) return 3548;
			if (Rotation == 4 && !false) return 3550;
			if (Rotation == 5 && !false) return 3552;
			if (Rotation == 6 && !false) return 3554;
			if (Rotation == 7 && !false) return 3556;
			if (Rotation == 8 && !false) return 3558;
			if (Rotation == 9 && !false) return 3560;
			if (Rotation == 10 && !false) return 3562;
			if (Rotation == 11 && !false) return 3564;
			if (Rotation == 12 && !false) return 3566;
			if (Rotation == 13 && !false) return 3568;
			if (Rotation == 14 && !false) return 3570;
			if (Rotation == 0 && false) return 3541;
			if (Rotation == 1 && false) return 3543;
			return 3572;
		}
		short DarkOakSign();
		unsigned char Rotation(short ID);
		bool Waterlogged(short ID);
	}
	namespace DarkOakSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short DarkOakSlab(enum Type Type)
		{
			if (Type == Type::Bottom && false) return 8332;
			if (Type == Type::Bottom && !false) return 8333;
			if (Type == Type::Top && false) return 8330;
			if (Type == Type::Double && false) return 8334;
			if (Type == Type::Top && !false) return 8331;
			return 8335;
		}
		short DarkOakSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace DarkOakStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short DarkOakStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7489;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7490;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7491;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7492;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7493;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7494;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7495;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7496;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7497;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7498;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7499;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7500;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7501;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7502;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7503;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7504;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7505;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7506;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7507;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7508;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7509;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7510;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7511;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7512;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7513;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7514;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7515;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7516;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7517;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7518;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7455;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7519;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7456;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7520;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7457;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7521;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7458;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7522;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7459;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7523;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7460;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7524;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7461;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7525;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7462;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7526;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7463;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7527;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7464;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7528;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7465;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7529;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7466;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7530;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7467;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7531;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7468;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7532;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7469;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7533;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7470;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7534;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7471;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7472;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7473;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7474;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7475;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7476;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7477;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7478;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7479;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7480;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7481;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7482;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7483;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7484;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7485;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7486;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7487;
			return 7488;
		}
		short DarkOakStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace DarkOakTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short DarkOakTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4447;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4463;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4479;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4432;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4448;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4464;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4480;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4433;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4449;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4465;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4481;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4434;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4450;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4466;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4482;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4435;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4451;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4467;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4483;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4436;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4452;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4468;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4484;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4437;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4453;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4469;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4485;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4438;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4454;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4470;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4486;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4439;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4455;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4471;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4487;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4440;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4456;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4472;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4488;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4441;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4457;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4473;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4489;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4442;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4458;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4474;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4490;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4443;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4459;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4475;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4491;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4444;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4460;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4476;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4492;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4445;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4461;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4477;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4493;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4446;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4462;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4478;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4431;
			return 4494;
		}
		short DarkOakTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
		bool Waterlogged(short ID);
	}
	namespace DarkOakWallSign
	{
		constexpr short DarkOakWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 3778;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 3779;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 3780;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 3781;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 3775;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 3776;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 3777;
			return 3782;
		}
		short DarkOakWallSign();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace DarkOakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short DarkOakWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 124;
			if (Axis == Axis::Y) return 125;
			return 126;
		}
		short DarkOakWood();
		enum Axis Axis(short ID);
	}
	namespace DarkPrismarine
	{
		constexpr short DarkPrismarine()
		{
			return 7603;
		}
	}
	namespace DarkPrismarineSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short DarkPrismarineSlab(enum Type Type)
		{
			if (Type == Type::Top && false) return 7856;
			if (Type == Type::Bottom && false) return 7858;
			if (Type == Type::Double && false) return 7860;
			if (Type == Type::Top && !false) return 7857;
			if (Type == Type::Bottom && !false) return 7859;
			return 7861;
		}
		short DarkPrismarineSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace DarkPrismarineStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short DarkPrismarineStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7806;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7807;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7808;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7809;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7810;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7811;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7812;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7813;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7814;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7815;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7816;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7817;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7818;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7819;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7820;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7821;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7822;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7823;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7824;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7825;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7826;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7827;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7764;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7828;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7765;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7829;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7766;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7830;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7767;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7831;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7768;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7832;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7769;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7833;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7770;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7834;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7771;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7835;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7772;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7836;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7773;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7837;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7774;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7838;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7775;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7839;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7776;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7840;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7777;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7841;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7778;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7842;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7779;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7843;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7780;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7781;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7782;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7783;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7784;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7785;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7786;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7787;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7788;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7789;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7790;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7791;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7792;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7793;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7794;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7795;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7796;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7797;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7798;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7799;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7800;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7801;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7802;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7803;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7804;
			return 7805;
		}
		short DarkPrismarineStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace DaylightDetector
	{
		constexpr short DaylightDetector(bool Inverted, unsigned char Power)
		{
			if (!Inverted && Power == 4) return 6714;
			if (!Inverted && Power == 8) return 6718;
			if (!Inverted && Power == 12) return 6722;
			if (Inverted && Power == 1) return 6695;
			if (Inverted && Power == 5) return 6699;
			if (Inverted && Power == 9) return 6703;
			if (Inverted && Power == 13) return 6707;
			if (!Inverted && Power == 1) return 6711;
			if (!Inverted && Power == 5) return 6715;
			if (!Inverted && Power == 9) return 6719;
			if (!Inverted && Power == 13) return 6723;
			if (Inverted && Power == 2) return 6696;
			if (Inverted && Power == 6) return 6700;
			if (Inverted && Power == 10) return 6704;
			if (Inverted && Power == 14) return 6708;
			if (!Inverted && Power == 2) return 6712;
			if (!Inverted && Power == 6) return 6716;
			if (!Inverted && Power == 10) return 6720;
			if (!Inverted && Power == 14) return 6724;
			if (Inverted && Power == 3) return 6697;
			if (Inverted && Power == 7) return 6701;
			if (Inverted && Power == 11) return 6705;
			if (Inverted && Power == 15) return 6709;
			if (!Inverted && Power == 3) return 6713;
			if (!Inverted && Power == 7) return 6717;
			if (!Inverted && Power == 11) return 6721;
			if (Inverted && Power == 0) return 6694;
			if (Inverted && Power == 4) return 6698;
			if (Inverted && Power == 8) return 6702;
			if (Inverted && Power == 12) return 6706;
			if (!Inverted && Power == 0) return 6710;
			return 6725;
		}
		short DaylightDetector();
		bool Inverted(short ID);
		unsigned char Power(short ID);
	}
	namespace DeadBrainCoral
	{
		constexpr short DeadBrainCoral()
		{
			if (false) return 9522;
			return 9523;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadBrainCoralBlock
	{
		constexpr short DeadBrainCoralBlock()
		{
			return 9511;
		}
	}
	namespace DeadBrainCoralFan
	{
		constexpr short DeadBrainCoralFan()
		{
			if (false) return 9542;
			return 9543;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadBrainCoralWallFan
	{
		constexpr short DeadBrainCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9571;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9568;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9572;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9569;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9573;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9570;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9574;
			return 9575;
		}
		short DeadBrainCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace DeadBubbleCoral
	{
		constexpr short DeadBubbleCoral()
		{
			if (false) return 9524;
			return 9525;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadBubbleCoralBlock
	{
		constexpr short DeadBubbleCoralBlock()
		{
			return 9512;
		}
	}
	namespace DeadBubbleCoralFan
	{
		constexpr short DeadBubbleCoralFan()
		{
			if (false) return 9544;
			return 9545;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadBubbleCoralWallFan
	{
		constexpr short DeadBubbleCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9578;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9582;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9579;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9576;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9580;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9577;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9581;
			return 9583;
		}
		short DeadBubbleCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace DeadBush
	{
		constexpr short DeadBush()
		{
			return 1344;
		}
	}
	namespace DeadFireCoral
	{
		constexpr short DeadFireCoral()
		{
			if (false) return 9526;
			return 9527;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadFireCoralBlock
	{
		constexpr short DeadFireCoralBlock()
		{
			return 9513;
		}
	}
	namespace DeadFireCoralFan
	{
		constexpr short DeadFireCoralFan()
		{
			if (false) return 9546;
			return 9547;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadFireCoralWallFan
	{
		constexpr short DeadFireCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9585;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9589;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9586;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9590;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9587;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9584;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9588;
			return 9591;
		}
		short DeadFireCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace DeadHornCoral
	{
		constexpr short DeadHornCoral()
		{
			if (false) return 9528;
			return 9529;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadHornCoralBlock
	{
		constexpr short DeadHornCoralBlock()
		{
			return 9514;
		}
	}
	namespace DeadHornCoralFan
	{
		constexpr short DeadHornCoralFan()
		{
			if (false) return 9548;
			return 9549;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadHornCoralWallFan
	{
		constexpr short DeadHornCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9592;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9596;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9593;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9597;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9594;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9598;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9595;
			return 9599;
		}
		short DeadHornCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace DeadTubeCoral
	{
		constexpr short DeadTubeCoral()
		{
			if (false) return 9520;
			return 9521;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadTubeCoralBlock
	{
		constexpr short DeadTubeCoralBlock()
		{
			return 9510;
		}
	}
	namespace DeadTubeCoralFan
	{
		constexpr short DeadTubeCoralFan()
		{
			if (false) return 9540;
			return 9541;
		}
		bool Waterlogged(short ID);
	}
	namespace DeadTubeCoralWallFan
	{
		constexpr short DeadTubeCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9564;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9561;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9565;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9562;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9566;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9563;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9560;
			return 9567;
		}
		short DeadTubeCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace DetectorRail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth
		};
		constexpr short DetectorRail(bool Powered, enum Shape Shape)
		{
			if (Shape == Shape::NorthSouth && Powered) return 1317;
			if (Shape == Shape::AscendingNorth && Powered) return 1321;
			if (Shape == Shape::AscendingEast && !Powered) return 1325;
			if (Shape == Shape::EastWest && Powered) return 1318;
			if (Shape == Shape::AscendingSouth && Powered) return 1322;
			if (Shape == Shape::AscendingWest && !Powered) return 1326;
			if (Shape == Shape::AscendingEast && Powered) return 1319;
			if (Shape == Shape::NorthSouth && !Powered) return 1323;
			if (Shape == Shape::AscendingNorth && !Powered) return 1327;
			if (Shape == Shape::AscendingWest && Powered) return 1320;
			if (Shape == Shape::EastWest && !Powered) return 1324;
			return 1328;
		}
		short DetectorRail();
		bool Powered(short ID);
		enum Shape Shape(short ID);
	}
	namespace DiamondBlock
	{
		constexpr short DiamondBlock()
		{
			return 3355;
		}
	}
	namespace DiamondOre
	{
		constexpr short DiamondOre()
		{
			return 3354;
		}
	}
	namespace Diorite
	{
		constexpr short Diorite()
		{
			return 4;
		}
	}
	namespace DioriteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short DioriteSlab(enum Type Type)
		{
			if (Type == Type::Double && !false) return 10866;
			if (Type == Type::Bottom && false) return 10863;
			if (Type == Type::Bottom && !false) return 10864;
			if (Type == Type::Top && false) return 10861;
			if (Type == Type::Double && false) return 10865;
			return 10862;
		}
		short DioriteSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace DioriteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short DioriteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10722;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10723;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10724;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10725;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10726;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10727;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10728;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10729;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10730;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10731;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10732;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10733;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10734;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10735;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10736;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10737;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10738;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10739;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10740;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10741;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10742;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10743;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10744;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10745;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10746;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10747;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10748;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10749;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10750;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10751;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10752;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10753;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10754;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10755;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10756;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10757;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10758;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10759;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10760;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10761;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10762;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10763;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10764;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10765;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10766;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10767;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10768;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10769;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10770;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10771;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10772;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10773;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10774;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10775;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10776;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10777;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10778;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10779;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10780;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10781;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10782;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10783;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10784;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10785;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10786;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10787;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10788;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10709;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10710;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10711;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10712;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10713;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10714;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10715;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10716;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10717;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10718;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10719;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10720;
			return 10721;
		}
		short DioriteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace DioriteWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short DioriteWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 14611;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 14615;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14619;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 14623;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 14627;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14631;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 14635;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 14639;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14643;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 14647;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 14651;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14655;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 14659;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 14663;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14667;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 14671;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 14675;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14679;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 14683;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 14687;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14691;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 14695;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 14699;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14703;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 14707;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 14711;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14715;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 14719;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14723;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14727;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 14731;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14735;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14739;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 14743;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14747;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14751;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 14432;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 14436;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 14440;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 14444;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 14448;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 14452;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 14456;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 14460;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 14464;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 14468;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 14472;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 14476;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 14480;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 14484;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 14488;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 14492;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 14496;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 14500;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 14504;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 14508;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 14512;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 14516;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 14520;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 14524;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 14528;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 14532;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 14536;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 14540;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 14544;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 14548;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 14552;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 14556;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 14560;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 14564;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 14568;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 14572;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 14576;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 14580;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 14584;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 14588;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 14592;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 14596;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 14600;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 14604;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 14608;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 14612;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14616;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 14620;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 14624;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14628;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 14632;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 14636;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14640;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 14644;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 14648;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 14652;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 14656;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 14660;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 14664;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 14668;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 14672;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 14676;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 14680;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 14684;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14688;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 14692;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 14696;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14700;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 14704;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 14708;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14712;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 14716;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14720;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14724;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14728;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14732;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14736;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14740;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14744;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14748;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14752;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 14433;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 14437;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 14441;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 14445;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 14449;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 14453;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 14457;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 14461;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 14465;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 14469;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 14473;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 14477;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 14481;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 14485;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 14489;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 14493;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 14497;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 14501;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 14505;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 14509;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 14513;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 14517;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 14521;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 14525;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 14529;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 14533;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 14537;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 14541;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 14545;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 14549;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 14553;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 14557;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 14561;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 14565;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 14569;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 14573;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 14577;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 14581;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 14585;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 14589;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 14593;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 14597;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 14601;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 14605;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 14609;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14613;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 14617;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14621;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14625;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 14629;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14633;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14637;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 14641;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14645;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 14649;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 14653;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 14657;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 14661;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 14665;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 14669;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 14673;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 14677;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 14681;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14685;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 14689;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14693;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14697;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 14701;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14705;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14709;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 14713;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14717;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14721;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14725;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14729;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14733;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14737;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14741;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14745;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14749;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14753;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 14434;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 14438;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 14442;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 14446;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 14450;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 14454;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 14458;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 14462;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 14466;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 14470;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 14474;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 14478;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 14482;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 14486;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 14490;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 14494;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 14498;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 14502;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 14506;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 14510;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14514;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 14518;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 14522;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14526;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 14530;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 14534;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14538;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 14542;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 14546;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 14550;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 14554;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 14558;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 14562;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 14566;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 14570;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 14574;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 14578;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 14582;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14586;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 14590;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 14594;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14598;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 14602;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 14606;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14610;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 14614;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14618;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14622;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 14626;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14630;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14634;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 14638;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14642;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14646;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 14650;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 14654;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14658;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 14662;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 14666;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14670;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 14674;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 14678;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14682;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 14686;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14690;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14694;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 14698;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14702;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14706;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 14710;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14714;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14718;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 14722;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14726;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14730;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 14734;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14738;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14742;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 14746;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14750;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14754;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 14431;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 14435;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 14439;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 14443;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 14447;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 14451;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 14455;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 14459;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 14463;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 14467;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 14471;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 14475;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 14479;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 14483;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 14487;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 14491;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 14495;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 14499;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 14503;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 14507;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14511;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 14515;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 14519;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14523;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 14527;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 14531;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14535;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 14539;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 14543;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 14547;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 14551;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 14555;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 14559;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 14563;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 14567;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 14571;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 14575;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 14579;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14583;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 14587;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 14591;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14595;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 14599;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 14603;
			return 14607;
		}
		short DioriteWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace Dirt
	{
		constexpr short Dirt()
		{
			return 10;
		}
	}
	namespace Dispenser
	{
		constexpr short Dispenser(eBlockFace Facing, bool Triggered)
		{
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_YP) return 243;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_XP) return 236;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_YM) return 244;
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_XP) return 237;
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_YM) return 245;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_ZP) return 238;
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_ZP) return 239;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_XM) return 240;
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_XM) return 241;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_ZM) return 234;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_YP) return 242;
			return 235;
		}
		short Dispenser();
		eBlockFace Facing(short ID);
		bool Triggered(short ID);
	}
	namespace DragonEgg
	{
		constexpr short DragonEgg()
		{
			return 5155;
		}
	}
	namespace DragonHead
	{
		constexpr short DragonHead(unsigned char Rotation)
		{
			if (Rotation == 11) return 6601;
			if (Rotation == 12) return 6602;
			if (Rotation == 13) return 6603;
			if (Rotation == 14) return 6604;
			if (Rotation == 0) return 6590;
			if (Rotation == 1) return 6591;
			if (Rotation == 2) return 6592;
			if (Rotation == 3) return 6593;
			if (Rotation == 4) return 6594;
			if (Rotation == 5) return 6595;
			if (Rotation == 6) return 6596;
			if (Rotation == 7) return 6597;
			if (Rotation == 8) return 6598;
			if (Rotation == 9) return 6599;
			if (Rotation == 10) return 6600;
			return 6605;
		}
		short DragonHead();
		unsigned char Rotation(short ID);
	}
	namespace DragonWallHead
	{
		constexpr short DragonWallHead(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6607;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6608;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6606;
			return 6609;
		}
		short DragonWallHead();
		eBlockFace Facing(short ID);
	}
	namespace DriedKelpBlock
	{
		constexpr short DriedKelpBlock()
		{
			return 9497;
		}
	}
	namespace Dropper
	{
		constexpr short Dropper(eBlockFace Facing, bool Triggered)
		{
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_XM) return 6841;
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_XM) return 6842;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_YP) return 6843;
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_YP) return 6844;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_YM) return 6845;
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_YM) return 6846;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6835;
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6836;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_XP) return 6837;
			if (!Triggered && Facing == eBlockFace::BLOCK_FACE_XP) return 6838;
			if (Triggered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6839;
			return 6840;
		}
		short Dropper();
		eBlockFace Facing(short ID);
		bool Triggered(short ID);
	}
	namespace EmeraldBlock
	{
		constexpr short EmeraldBlock()
		{
			return 5403;
		}
	}
	namespace EmeraldOre
	{
		constexpr short EmeraldOre()
		{
			return 5250;
		}
	}
	namespace EnchantingTable
	{
		constexpr short EnchantingTable()
		{
			return 5132;
		}
	}
	namespace EndGateway
	{
		constexpr short EndGateway()
		{
			return 9224;
		}
	}
	namespace EndPortal
	{
		constexpr short EndPortal()
		{
			return 5145;
		}
	}
	namespace EndPortalFrame
	{
		constexpr short EndPortalFrame(bool Eye, eBlockFace Facing)
		{
			if (Eye && Facing == eBlockFace::BLOCK_FACE_ZP) return 5147;
			if (Eye && Facing == eBlockFace::BLOCK_FACE_XP) return 5149;
			if (!Eye && Facing == eBlockFace::BLOCK_FACE_ZP) return 5151;
			if (Eye && Facing == eBlockFace::BLOCK_FACE_ZM) return 5146;
			if (Eye && Facing == eBlockFace::BLOCK_FACE_XM) return 5148;
			if (!Eye && Facing == eBlockFace::BLOCK_FACE_ZM) return 5150;
			if (!Eye && Facing == eBlockFace::BLOCK_FACE_XM) return 5152;
			return 5153;
		}
		short EndPortalFrame();
		bool Eye(short ID);
		eBlockFace Facing(short ID);
	}
	namespace EndRod
	{
		constexpr short EndRod(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9060;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9061;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9058;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9062;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9059;
			return 9063;
		}
		short EndRod();
		eBlockFace Facing(short ID);
	}
	namespace EndStone
	{
		constexpr short EndStone()
		{
			return 5154;
		}
	}
	namespace EndStoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short EndStoneBrickSlab(enum Type Type)
		{
			if (Type == Type::Double && !false) return 10824;
			if (Type == Type::Bottom && false) return 10821;
			if (Type == Type::Bottom && !false) return 10822;
			if (Type == Type::Top && false) return 10819;
			if (Type == Type::Double && false) return 10823;
			return 10820;
		}
		short EndStoneBrickSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace EndStoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short EndStoneBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10087;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10088;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10089;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10090;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10091;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10092;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10093;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10094;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10095;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10096;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10097;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10098;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10099;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10100;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10101;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10102;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10103;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10104;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10105;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10106;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10107;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10108;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10109;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10110;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10111;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10112;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10113;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10114;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10115;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10116;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10117;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10118;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10119;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10120;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10121;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10122;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10123;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10124;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10125;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10126;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10127;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10128;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10129;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10130;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10131;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10132;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10133;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10134;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10135;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10136;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10137;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10138;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10139;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10140;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10141;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10142;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10143;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10144;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10145;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10146;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10147;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10148;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10069;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10070;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10071;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10072;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10073;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10074;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10075;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10076;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10077;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10078;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10079;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10080;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10081;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10082;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10083;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10084;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10085;
			return 10086;
		}
		short EndStoneBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace EndStoneBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short EndStoneBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 14108;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 14112;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 14116;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 14120;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 14124;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 14128;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 14132;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 14136;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 14140;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 14144;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 14148;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 14152;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 14156;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 14160;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 14164;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 14168;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 14172;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 14176;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 14180;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 14184;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 14188;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 14192;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 14196;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 14200;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 14204;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 14208;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 14212;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 14216;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 14220;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 14224;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 14228;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 14232;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 14236;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 14240;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 14244;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 14248;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 14252;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 14256;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 14260;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 14264;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 14268;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 14272;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 14276;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 14280;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 14284;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 14288;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14292;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 14296;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 14300;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14304;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 14308;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 14312;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14316;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 14320;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 14324;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 14328;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 14332;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 14336;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 14340;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 14344;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 14348;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 14352;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 14356;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 14360;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14364;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 14368;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 14372;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14376;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 14380;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 14384;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14388;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 14392;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14396;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14400;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14404;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14408;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14412;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14416;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14420;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14424;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14428;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 14109;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 14113;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 14117;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 14121;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 14125;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 14129;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 14133;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 14137;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 14141;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 14145;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 14149;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 14153;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 14157;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 14161;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 14165;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 14169;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 14173;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 14177;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 14181;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 14185;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 14189;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 14193;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 14197;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 14201;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 14205;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 14209;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 14213;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 14217;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 14221;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 14225;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 14229;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 14233;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 14237;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 14241;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 14245;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 14249;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 14253;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 14257;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 14261;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 14265;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 14269;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 14273;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 14277;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 14281;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 14285;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14289;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 14293;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14297;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14301;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 14305;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14309;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 14313;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 14317;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14321;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 14325;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 14329;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 14333;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 14337;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 14341;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 14345;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 14349;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 14353;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 14357;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14361;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 14365;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14369;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14373;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 14377;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14381;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14385;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 14389;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14393;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14397;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14401;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14405;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14409;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14413;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14417;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14421;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14425;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14429;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 14110;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 14114;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 14118;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 14122;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 14126;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 14130;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 14134;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 14138;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 14142;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 14146;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 14150;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 14154;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 14158;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 14162;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 14166;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 14170;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 14174;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 14178;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 14182;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 14186;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14190;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 14194;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 14198;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14202;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 14206;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 14210;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14214;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 14218;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 14222;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 14226;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 14230;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 14234;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 14238;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 14242;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 14246;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 14250;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 14254;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 14258;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14262;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 14266;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 14270;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14274;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 14278;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 14282;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14286;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 14290;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14294;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14298;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 14302;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14306;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14310;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 14314;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 14318;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14322;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 14326;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 14330;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14334;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 14338;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 14342;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14346;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 14350;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 14354;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14358;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 14362;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14366;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14370;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 14374;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14378;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14382;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 14386;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14390;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14394;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 14398;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14402;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14406;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 14410;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14414;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14418;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 14422;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14426;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14430;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 14107;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 14111;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 14115;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 14119;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 14123;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 14127;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 14131;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 14135;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 14139;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 14143;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 14147;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 14151;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 14155;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 14159;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 14163;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 14167;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 14171;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 14175;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 14179;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 14183;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14187;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 14191;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 14195;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14199;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 14203;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 14207;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 14211;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 14215;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 14219;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 14223;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 14227;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 14231;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 14235;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 14239;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 14243;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 14247;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 14251;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 14255;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14259;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 14263;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 14267;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14271;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 14275;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 14279;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 14283;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 14287;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 14291;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14295;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 14299;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 14303;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14307;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 14311;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 14315;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 14319;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 14323;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 14327;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14331;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 14335;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 14339;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14343;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 14347;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 14351;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14355;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 14359;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 14363;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14367;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 14371;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 14375;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14379;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 14383;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 14387;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14391;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 14395;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14399;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14403;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 14407;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14411;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14415;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 14419;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14423;
			return 14427;
		}
		short EndStoneBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace EndStoneBricks
	{
		constexpr short EndStoneBricks()
		{
			return 9218;
		}
	}
	namespace EnderChest
	{
		constexpr short EnderChest(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 5252;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 5254;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 5256;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 5251;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 5253;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 5255;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 5257;
			return 5258;
		}
		short EnderChest();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace Farmland
	{
		constexpr short Farmland(unsigned char Moisture)
		{
			if (Moisture == 0) return 3365;
			if (Moisture == 1) return 3366;
			if (Moisture == 2) return 3367;
			if (Moisture == 3) return 3368;
			if (Moisture == 4) return 3369;
			if (Moisture == 5) return 3370;
			if (Moisture == 6) return 3371;
			return 3372;
		}
		short Farmland();
		unsigned char Moisture(short ID);
	}
	namespace Fern
	{
		constexpr short Fern()
		{
			return 1343;
		}
	}
	namespace Fire
	{
		constexpr short Fire(unsigned char Age, bool East, bool North, bool South, bool Up, bool West)
		{
			if (Up && !West && East && South && Age == 2 && !North) return 1513;
			if (Up && !West && East && South && Age == 10 && !North) return 1769;
			if (!Up && West && East && South && Age == 2 && !North) return 1514;
			if (!Up && West && East && South && Age == 10 && !North) return 1770;
			if (!Up && !West && East && South && Age == 2 && !North) return 1515;
			if (!Up && !West && East && South && Age == 10 && !North) return 1771;
			if (Up && West && East && !South && Age == 2 && !North) return 1516;
			if (Up && West && East && !South && Age == 10 && !North) return 1772;
			if (Up && !West && East && !South && Age == 2 && !North) return 1517;
			if (Up && !West && East && !South && Age == 10 && !North) return 1773;
			if (!Up && West && East && !South && Age == 2 && !North) return 1518;
			if (!Up && West && East && !South && Age == 10 && !North) return 1774;
			if (!Up && !West && East && !South && Age == 2 && !North) return 1519;
			if (!Up && !West && East && !South && Age == 10 && !North) return 1775;
			if (Up && West && !East && South && Age == 2 && North) return 1520;
			if (Up && West && !East && South && Age == 10 && North) return 1776;
			if (Up && !West && !East && South && Age == 2 && North) return 1521;
			if (Up && !West && !East && South && Age == 10 && North) return 1777;
			if (!Up && West && !East && South && Age == 2 && North) return 1522;
			if (!Up && West && !East && South && Age == 10 && North) return 1778;
			if (!Up && !West && !East && South && Age == 2 && North) return 1523;
			if (!Up && !West && !East && South && Age == 10 && North) return 1779;
			if (Up && West && !East && !South && Age == 2 && North) return 1524;
			if (Up && West && !East && !South && Age == 10 && North) return 1780;
			if (Up && !West && !East && !South && Age == 2 && North) return 1525;
			if (Up && !West && !East && !South && Age == 10 && North) return 1781;
			if (!Up && West && !East && !South && Age == 2 && North) return 1526;
			if (!Up && West && !East && !South && Age == 10 && North) return 1782;
			if (!Up && !West && !East && !South && Age == 2 && North) return 1527;
			if (!Up && !West && !East && !South && Age == 10 && North) return 1783;
			if (Up && West && !East && South && Age == 2 && !North) return 1528;
			if (Up && West && !East && South && Age == 10 && !North) return 1784;
			if (Up && !West && !East && South && Age == 2 && !North) return 1529;
			if (Up && !West && !East && South && Age == 10 && !North) return 1785;
			if (!Up && West && !East && South && Age == 2 && !North) return 1530;
			if (!Up && West && !East && South && Age == 10 && !North) return 1786;
			if (!Up && !West && !East && South && Age == 2 && !North) return 1531;
			if (!Up && !West && !East && South && Age == 10 && !North) return 1787;
			if (Up && West && !East && !South && Age == 2 && !North) return 1532;
			if (Up && West && !East && !South && Age == 10 && !North) return 1788;
			if (Up && !West && !East && !South && Age == 2 && !North) return 1533;
			if (Up && !West && !East && !South && Age == 10 && !North) return 1789;
			if (!Up && West && !East && !South && Age == 2 && !North) return 1534;
			if (!Up && West && !East && !South && Age == 10 && !North) return 1790;
			if (!Up && !West && !East && !South && Age == 2 && !North) return 1535;
			if (!Up && !West && !East && !South && Age == 10 && !North) return 1791;
			if (Up && West && East && South && Age == 3 && North) return 1536;
			if (Up && West && East && South && Age == 11 && North) return 1792;
			if (Up && !West && East && South && Age == 3 && North) return 1537;
			if (Up && !West && East && South && Age == 11 && North) return 1793;
			if (!Up && West && East && South && Age == 3 && North) return 1538;
			if (!Up && West && East && South && Age == 11 && North) return 1794;
			if (!Up && !West && East && South && Age == 3 && North) return 1539;
			if (!Up && !West && East && South && Age == 11 && North) return 1795;
			if (Up && West && East && !South && Age == 3 && North) return 1540;
			if (Up && West && East && !South && Age == 11 && North) return 1796;
			if (Up && !West && East && !South && Age == 3 && North) return 1541;
			if (Up && !West && East && !South && Age == 11 && North) return 1797;
			if (!Up && West && East && !South && Age == 3 && North) return 1542;
			if (!Up && West && East && !South && Age == 11 && North) return 1798;
			if (!Up && !West && East && !South && Age == 3 && North) return 1543;
			if (!Up && !West && East && !South && Age == 11 && North) return 1799;
			if (Up && West && East && South && Age == 3 && !North) return 1544;
			if (Up && West && East && South && Age == 11 && !North) return 1800;
			if (Up && !West && East && South && Age == 3 && !North) return 1545;
			if (Up && !West && East && South && Age == 11 && !North) return 1801;
			if (!Up && West && East && South && Age == 3 && !North) return 1546;
			if (!Up && West && East && South && Age == 11 && !North) return 1802;
			if (!Up && !West && East && South && Age == 3 && !North) return 1547;
			if (!Up && !West && East && South && Age == 11 && !North) return 1803;
			if (Up && West && East && !South && Age == 3 && !North) return 1548;
			if (Up && West && East && !South && Age == 11 && !North) return 1804;
			if (Up && !West && East && !South && Age == 3 && !North) return 1549;
			if (Up && !West && East && !South && Age == 11 && !North) return 1805;
			if (!Up && West && East && !South && Age == 3 && !North) return 1550;
			if (!Up && West && East && !South && Age == 11 && !North) return 1806;
			if (!Up && !West && East && !South && Age == 3 && !North) return 1551;
			if (!Up && !West && East && !South && Age == 11 && !North) return 1807;
			if (Up && West && !East && South && Age == 3 && North) return 1552;
			if (Up && West && !East && South && Age == 11 && North) return 1808;
			if (Up && !West && !East && South && Age == 3 && North) return 1553;
			if (Up && !West && !East && South && Age == 11 && North) return 1809;
			if (!Up && West && !East && South && Age == 3 && North) return 1554;
			if (!Up && West && !East && South && Age == 11 && North) return 1810;
			if (!Up && !West && !East && South && Age == 3 && North) return 1555;
			if (!Up && !West && !East && South && Age == 11 && North) return 1811;
			if (Up && West && !East && !South && Age == 3 && North) return 1556;
			if (Up && West && !East && !South && Age == 11 && North) return 1812;
			if (Up && !West && !East && !South && Age == 3 && North) return 1557;
			if (Up && !West && !East && !South && Age == 11 && North) return 1813;
			if (!Up && West && !East && !South && Age == 3 && North) return 1558;
			if (!Up && West && !East && !South && Age == 11 && North) return 1814;
			if (!Up && !West && !East && !South && Age == 3 && North) return 1559;
			if (!Up && !West && !East && !South && Age == 11 && North) return 1815;
			if (Up && West && !East && South && Age == 3 && !North) return 1560;
			if (Up && West && !East && South && Age == 11 && !North) return 1816;
			if (Up && !West && !East && South && Age == 3 && !North) return 1561;
			if (Up && !West && !East && South && Age == 11 && !North) return 1817;
			if (!Up && West && !East && South && Age == 3 && !North) return 1562;
			if (!Up && West && !East && South && Age == 11 && !North) return 1818;
			if (!Up && !West && !East && South && Age == 3 && !North) return 1563;
			if (!Up && !West && !East && South && Age == 11 && !North) return 1819;
			if (Up && West && !East && !South && Age == 3 && !North) return 1564;
			if (Up && West && !East && !South && Age == 11 && !North) return 1820;
			if (Up && !West && !East && !South && Age == 3 && !North) return 1565;
			if (Up && !West && !East && !South && Age == 11 && !North) return 1821;
			if (!Up && West && !East && !South && Age == 3 && !North) return 1566;
			if (!Up && West && !East && !South && Age == 11 && !North) return 1822;
			if (!Up && !West && !East && !South && Age == 3 && !North) return 1567;
			if (!Up && !West && !East && !South && Age == 11 && !North) return 1823;
			if (Up && West && East && South && Age == 4 && North) return 1568;
			if (Up && West && East && South && Age == 12 && North) return 1824;
			if (Up && !West && East && South && Age == 4 && North) return 1569;
			if (Up && !West && East && South && Age == 12 && North) return 1825;
			if (!Up && West && East && South && Age == 4 && North) return 1570;
			if (!Up && West && East && South && Age == 12 && North) return 1826;
			if (!Up && !West && East && South && Age == 4 && North) return 1571;
			if (!Up && !West && East && South && Age == 12 && North) return 1827;
			if (Up && West && East && !South && Age == 4 && North) return 1572;
			if (Up && West && East && !South && Age == 12 && North) return 1828;
			if (Up && !West && East && !South && Age == 4 && North) return 1573;
			if (Up && !West && East && !South && Age == 12 && North) return 1829;
			if (!Up && West && East && !South && Age == 4 && North) return 1574;
			if (!Up && West && East && !South && Age == 12 && North) return 1830;
			if (!Up && !West && East && !South && Age == 4 && North) return 1575;
			if (!Up && !West && East && !South && Age == 12 && North) return 1831;
			if (Up && West && East && South && Age == 4 && !North) return 1576;
			if (Up && West && East && South && Age == 12 && !North) return 1832;
			if (Up && !West && East && South && Age == 4 && !North) return 1577;
			if (Up && !West && East && South && Age == 12 && !North) return 1833;
			if (!Up && West && East && South && Age == 4 && !North) return 1578;
			if (!Up && West && East && South && Age == 12 && !North) return 1834;
			if (!Up && !West && East && South && Age == 4 && !North) return 1579;
			if (!Up && !West && East && South && Age == 12 && !North) return 1835;
			if (Up && West && East && !South && Age == 4 && !North) return 1580;
			if (Up && West && East && !South && Age == 12 && !North) return 1836;
			if (Up && !West && East && !South && Age == 4 && !North) return 1581;
			if (Up && !West && East && !South && Age == 12 && !North) return 1837;
			if (!Up && West && East && !South && Age == 4 && !North) return 1582;
			if (!Up && West && East && !South && Age == 12 && !North) return 1838;
			if (!Up && !West && East && !South && Age == 4 && !North) return 1583;
			if (!Up && !West && East && !South && Age == 12 && !North) return 1839;
			if (Up && West && !East && South && Age == 4 && North) return 1584;
			if (Up && West && !East && South && Age == 12 && North) return 1840;
			if (Up && !West && !East && South && Age == 4 && North) return 1585;
			if (Up && !West && !East && South && Age == 12 && North) return 1841;
			if (!Up && West && !East && South && Age == 4 && North) return 1586;
			if (!Up && West && !East && South && Age == 12 && North) return 1842;
			if (!Up && !West && !East && South && Age == 4 && North) return 1587;
			if (!Up && !West && !East && South && Age == 12 && North) return 1843;
			if (Up && West && !East && !South && Age == 4 && North) return 1588;
			if (Up && West && !East && !South && Age == 12 && North) return 1844;
			if (Up && !West && !East && !South && Age == 4 && North) return 1589;
			if (Up && !West && !East && !South && Age == 12 && North) return 1845;
			if (!Up && West && !East && !South && Age == 4 && North) return 1590;
			if (!Up && West && !East && !South && Age == 12 && North) return 1846;
			if (!Up && !West && !East && !South && Age == 4 && North) return 1591;
			if (!Up && !West && !East && !South && Age == 12 && North) return 1847;
			if (Up && West && !East && South && Age == 4 && !North) return 1592;
			if (Up && West && !East && South && Age == 12 && !North) return 1848;
			if (Up && !West && !East && South && Age == 4 && !North) return 1593;
			if (Up && !West && !East && South && Age == 12 && !North) return 1849;
			if (!Up && West && !East && South && Age == 4 && !North) return 1594;
			if (!Up && West && !East && South && Age == 12 && !North) return 1850;
			if (!Up && !West && !East && South && Age == 4 && !North) return 1595;
			if (!Up && !West && !East && South && Age == 12 && !North) return 1851;
			if (Up && West && !East && !South && Age == 4 && !North) return 1596;
			if (Up && West && !East && !South && Age == 12 && !North) return 1852;
			if (Up && !West && !East && !South && Age == 4 && !North) return 1597;
			if (Up && !West && !East && !South && Age == 12 && !North) return 1853;
			if (!Up && West && !East && !South && Age == 4 && !North) return 1598;
			if (!Up && West && !East && !South && Age == 12 && !North) return 1854;
			if (!Up && !West && !East && !South && Age == 4 && !North) return 1599;
			if (!Up && !West && !East && !South && Age == 12 && !North) return 1855;
			if (Up && West && East && South && Age == 5 && North) return 1600;
			if (Up && West && East && South && Age == 13 && North) return 1856;
			if (Up && !West && East && South && Age == 5 && North) return 1601;
			if (Up && !West && East && South && Age == 13 && North) return 1857;
			if (!Up && West && East && South && Age == 5 && North) return 1602;
			if (!Up && West && East && South && Age == 13 && North) return 1858;
			if (!Up && !West && East && South && Age == 5 && North) return 1603;
			if (!Up && !West && East && South && Age == 13 && North) return 1859;
			if (Up && West && East && !South && Age == 5 && North) return 1604;
			if (Up && West && East && !South && Age == 13 && North) return 1860;
			if (Up && !West && East && !South && Age == 5 && North) return 1605;
			if (Up && !West && East && !South && Age == 13 && North) return 1861;
			if (!Up && West && East && !South && Age == 5 && North) return 1606;
			if (!Up && West && East && !South && Age == 13 && North) return 1862;
			if (!Up && !West && East && !South && Age == 5 && North) return 1607;
			if (!Up && !West && East && !South && Age == 13 && North) return 1863;
			if (Up && West && East && South && Age == 5 && !North) return 1608;
			if (Up && West && East && South && Age == 13 && !North) return 1864;
			if (Up && !West && East && South && Age == 5 && !North) return 1609;
			if (Up && !West && East && South && Age == 13 && !North) return 1865;
			if (!Up && West && East && South && Age == 5 && !North) return 1610;
			if (!Up && West && East && South && Age == 13 && !North) return 1866;
			if (!Up && !West && East && South && Age == 5 && !North) return 1611;
			if (!Up && !West && East && South && Age == 13 && !North) return 1867;
			if (Up && West && East && !South && Age == 5 && !North) return 1612;
			if (Up && West && East && !South && Age == 13 && !North) return 1868;
			if (Up && !West && East && !South && Age == 5 && !North) return 1613;
			if (Up && !West && East && !South && Age == 13 && !North) return 1869;
			if (!Up && West && East && !South && Age == 5 && !North) return 1614;
			if (!Up && West && East && !South && Age == 13 && !North) return 1870;
			if (!Up && !West && East && !South && Age == 5 && !North) return 1615;
			if (!Up && !West && East && !South && Age == 13 && !North) return 1871;
			if (Up && West && !East && South && Age == 5 && North) return 1616;
			if (Up && West && !East && South && Age == 13 && North) return 1872;
			if (Up && !West && !East && South && Age == 5 && North) return 1617;
			if (Up && !West && !East && South && Age == 13 && North) return 1873;
			if (!Up && West && !East && South && Age == 5 && North) return 1618;
			if (!Up && West && !East && South && Age == 13 && North) return 1874;
			if (!Up && !West && !East && South && Age == 5 && North) return 1619;
			if (!Up && !West && !East && South && Age == 13 && North) return 1875;
			if (Up && West && !East && !South && Age == 5 && North) return 1620;
			if (Up && West && !East && !South && Age == 13 && North) return 1876;
			if (Up && !West && !East && !South && Age == 5 && North) return 1621;
			if (Up && !West && !East && !South && Age == 13 && North) return 1877;
			if (!Up && West && !East && !South && Age == 5 && North) return 1622;
			if (!Up && West && !East && !South && Age == 13 && North) return 1878;
			if (!Up && !West && !East && !South && Age == 5 && North) return 1623;
			if (!Up && !West && !East && !South && Age == 13 && North) return 1879;
			if (Up && West && !East && South && Age == 5 && !North) return 1624;
			if (Up && West && !East && South && Age == 13 && !North) return 1880;
			if (Up && !West && !East && South && Age == 5 && !North) return 1625;
			if (Up && !West && !East && South && Age == 13 && !North) return 1881;
			if (!Up && West && !East && South && Age == 5 && !North) return 1626;
			if (!Up && West && !East && South && Age == 13 && !North) return 1882;
			if (!Up && !West && !East && South && Age == 5 && !North) return 1627;
			if (!Up && !West && !East && South && Age == 13 && !North) return 1883;
			if (Up && West && !East && !South && Age == 5 && !North) return 1628;
			if (Up && West && !East && !South && Age == 13 && !North) return 1884;
			if (Up && !West && !East && !South && Age == 5 && !North) return 1629;
			if (Up && !West && !East && !South && Age == 13 && !North) return 1885;
			if (!Up && West && !East && !South && Age == 5 && !North) return 1630;
			if (!Up && West && !East && !South && Age == 13 && !North) return 1886;
			if (!Up && !West && !East && !South && Age == 5 && !North) return 1631;
			if (!Up && !West && !East && !South && Age == 13 && !North) return 1887;
			if (Up && West && East && South && Age == 6 && North) return 1632;
			if (Up && West && East && South && Age == 14 && North) return 1888;
			if (Up && !West && East && South && Age == 6 && North) return 1633;
			if (Up && !West && East && South && Age == 14 && North) return 1889;
			if (!Up && West && East && South && Age == 6 && North) return 1634;
			if (!Up && West && East && South && Age == 14 && North) return 1890;
			if (!Up && !West && East && South && Age == 6 && North) return 1635;
			if (!Up && !West && East && South && Age == 14 && North) return 1891;
			if (Up && West && East && !South && Age == 6 && North) return 1636;
			if (Up && West && East && !South && Age == 14 && North) return 1892;
			if (Up && !West && East && !South && Age == 6 && North) return 1637;
			if (Up && !West && East && !South && Age == 14 && North) return 1893;
			if (!Up && West && East && !South && Age == 6 && North) return 1638;
			if (!Up && West && East && !South && Age == 14 && North) return 1894;
			if (!Up && !West && East && !South && Age == 6 && North) return 1639;
			if (!Up && !West && East && !South && Age == 14 && North) return 1895;
			if (Up && West && East && South && Age == 6 && !North) return 1640;
			if (Up && West && East && South && Age == 14 && !North) return 1896;
			if (Up && !West && East && South && Age == 6 && !North) return 1641;
			if (Up && !West && East && South && Age == 14 && !North) return 1897;
			if (!Up && West && East && South && Age == 6 && !North) return 1642;
			if (!Up && West && East && South && Age == 14 && !North) return 1898;
			if (!Up && !West && East && South && Age == 6 && !North) return 1643;
			if (!Up && !West && East && South && Age == 14 && !North) return 1899;
			if (Up && West && East && !South && Age == 6 && !North) return 1644;
			if (Up && West && East && !South && Age == 14 && !North) return 1900;
			if (Up && !West && East && !South && Age == 6 && !North) return 1645;
			if (Up && !West && East && !South && Age == 14 && !North) return 1901;
			if (!Up && West && East && !South && Age == 6 && !North) return 1646;
			if (!Up && West && East && !South && Age == 14 && !North) return 1902;
			if (!Up && !West && East && !South && Age == 6 && !North) return 1647;
			if (!Up && !West && East && !South && Age == 14 && !North) return 1903;
			if (Up && West && !East && South && Age == 6 && North) return 1648;
			if (Up && West && !East && South && Age == 14 && North) return 1904;
			if (Up && !West && !East && South && Age == 6 && North) return 1649;
			if (Up && !West && !East && South && Age == 14 && North) return 1905;
			if (!Up && West && !East && South && Age == 6 && North) return 1650;
			if (!Up && West && !East && South && Age == 14 && North) return 1906;
			if (!Up && !West && !East && South && Age == 6 && North) return 1651;
			if (!Up && !West && !East && South && Age == 14 && North) return 1907;
			if (Up && West && !East && !South && Age == 6 && North) return 1652;
			if (Up && West && !East && !South && Age == 14 && North) return 1908;
			if (Up && !West && !East && !South && Age == 6 && North) return 1653;
			if (Up && !West && !East && !South && Age == 14 && North) return 1909;
			if (!Up && West && !East && !South && Age == 6 && North) return 1654;
			if (!Up && West && !East && !South && Age == 14 && North) return 1910;
			if (!Up && !West && !East && !South && Age == 6 && North) return 1655;
			if (!Up && !West && !East && !South && Age == 14 && North) return 1911;
			if (Up && West && !East && South && Age == 6 && !North) return 1656;
			if (Up && West && !East && South && Age == 14 && !North) return 1912;
			if (Up && !West && !East && South && Age == 6 && !North) return 1657;
			if (Up && !West && !East && South && Age == 14 && !North) return 1913;
			if (!Up && West && !East && South && Age == 6 && !North) return 1658;
			if (!Up && West && !East && South && Age == 14 && !North) return 1914;
			if (!Up && !West && !East && South && Age == 6 && !North) return 1659;
			if (!Up && !West && !East && South && Age == 14 && !North) return 1915;
			if (Up && West && !East && !South && Age == 6 && !North) return 1660;
			if (Up && West && !East && !South && Age == 14 && !North) return 1916;
			if (Up && !West && !East && !South && Age == 6 && !North) return 1661;
			if (Up && !West && !East && !South && Age == 14 && !North) return 1917;
			if (!Up && West && !East && !South && Age == 6 && !North) return 1662;
			if (!Up && West && !East && !South && Age == 14 && !North) return 1918;
			if (!Up && !West && !East && !South && Age == 6 && !North) return 1663;
			if (!Up && !West && !East && !South && Age == 14 && !North) return 1919;
			if (Up && West && East && South && Age == 7 && North) return 1664;
			if (Up && West && East && South && Age == 15 && North) return 1920;
			if (Up && !West && East && South && Age == 7 && North) return 1665;
			if (Up && !West && East && South && Age == 15 && North) return 1921;
			if (!Up && West && East && South && Age == 7 && North) return 1666;
			if (!Up && West && East && South && Age == 15 && North) return 1922;
			if (!Up && !West && East && South && Age == 7 && North) return 1667;
			if (!Up && !West && East && South && Age == 15 && North) return 1923;
			if (Up && West && East && !South && Age == 7 && North) return 1668;
			if (Up && West && East && !South && Age == 15 && North) return 1924;
			if (Up && !West && East && !South && Age == 7 && North) return 1669;
			if (Up && !West && East && !South && Age == 15 && North) return 1925;
			if (!Up && West && East && !South && Age == 7 && North) return 1670;
			if (!Up && West && East && !South && Age == 15 && North) return 1926;
			if (!Up && !West && East && !South && Age == 7 && North) return 1671;
			if (!Up && !West && East && !South && Age == 15 && North) return 1927;
			if (Up && West && East && South && Age == 7 && !North) return 1672;
			if (Up && West && East && South && Age == 15 && !North) return 1928;
			if (Up && !West && East && South && Age == 7 && !North) return 1673;
			if (Up && !West && East && South && Age == 15 && !North) return 1929;
			if (!Up && West && East && South && Age == 7 && !North) return 1674;
			if (!Up && West && East && South && Age == 15 && !North) return 1930;
			if (!Up && !West && East && South && Age == 7 && !North) return 1675;
			if (!Up && !West && East && South && Age == 15 && !North) return 1931;
			if (Up && West && East && !South && Age == 7 && !North) return 1676;
			if (Up && West && East && !South && Age == 15 && !North) return 1932;
			if (Up && !West && East && !South && Age == 7 && !North) return 1677;
			if (Up && !West && East && !South && Age == 15 && !North) return 1933;
			if (!Up && West && East && !South && Age == 7 && !North) return 1678;
			if (!Up && West && East && !South && Age == 15 && !North) return 1934;
			if (!Up && !West && East && !South && Age == 7 && !North) return 1679;
			if (!Up && !West && East && !South && Age == 15 && !North) return 1935;
			if (Up && West && !East && South && Age == 7 && North) return 1680;
			if (Up && West && !East && South && Age == 15 && North) return 1936;
			if (Up && !West && !East && South && Age == 7 && North) return 1681;
			if (Up && !West && !East && South && Age == 15 && North) return 1937;
			if (!Up && West && !East && South && Age == 7 && North) return 1682;
			if (!Up && West && !East && South && Age == 15 && North) return 1938;
			if (!Up && !West && !East && South && Age == 7 && North) return 1683;
			if (!Up && !West && !East && South && Age == 15 && North) return 1939;
			if (Up && West && !East && !South && Age == 7 && North) return 1684;
			if (Up && West && !East && !South && Age == 15 && North) return 1940;
			if (Up && !West && !East && !South && Age == 7 && North) return 1685;
			if (Up && !West && !East && !South && Age == 15 && North) return 1941;
			if (!Up && West && !East && !South && Age == 7 && North) return 1686;
			if (!Up && West && !East && !South && Age == 15 && North) return 1942;
			if (!Up && !West && !East && !South && Age == 7 && North) return 1687;
			if (!Up && !West && !East && !South && Age == 15 && North) return 1943;
			if (Up && West && !East && South && Age == 7 && !North) return 1688;
			if (Up && West && !East && South && Age == 15 && !North) return 1944;
			if (Up && !West && !East && South && Age == 7 && !North) return 1689;
			if (Up && !West && !East && South && Age == 15 && !North) return 1945;
			if (!Up && West && !East && South && Age == 7 && !North) return 1690;
			if (!Up && West && !East && South && Age == 15 && !North) return 1946;
			if (!Up && !West && !East && South && Age == 7 && !North) return 1691;
			if (!Up && !West && !East && South && Age == 15 && !North) return 1947;
			if (Up && West && !East && !South && Age == 7 && !North) return 1692;
			if (Up && West && !East && !South && Age == 15 && !North) return 1948;
			if (Up && !West && !East && !South && Age == 7 && !North) return 1693;
			if (Up && !West && !East && !South && Age == 15 && !North) return 1949;
			if (!Up && West && !East && !South && Age == 7 && !North) return 1694;
			if (!Up && West && !East && !South && Age == 15 && !North) return 1950;
			if (!Up && !West && !East && !South && Age == 7 && !North) return 1695;
			if (Up && West && East && South && Age == 0 && North) return 1440;
			if (Up && West && East && South && Age == 8 && North) return 1696;
			if (Up && !West && East && South && Age == 0 && North) return 1441;
			if (Up && !West && East && South && Age == 8 && North) return 1697;
			if (!Up && West && East && South && Age == 0 && North) return 1442;
			if (!Up && West && East && South && Age == 8 && North) return 1698;
			if (!Up && !West && East && South && Age == 0 && North) return 1443;
			if (!Up && !West && East && South && Age == 8 && North) return 1699;
			if (Up && West && East && !South && Age == 0 && North) return 1444;
			if (Up && West && East && !South && Age == 8 && North) return 1700;
			if (Up && !West && East && !South && Age == 0 && North) return 1445;
			if (Up && !West && East && !South && Age == 8 && North) return 1701;
			if (!Up && West && East && !South && Age == 0 && North) return 1446;
			if (!Up && West && East && !South && Age == 8 && North) return 1702;
			if (!Up && !West && East && !South && Age == 0 && North) return 1447;
			if (!Up && !West && East && !South && Age == 8 && North) return 1703;
			if (Up && West && East && South && Age == 0 && !North) return 1448;
			if (Up && West && East && South && Age == 8 && !North) return 1704;
			if (Up && !West && East && South && Age == 0 && !North) return 1449;
			if (Up && !West && East && South && Age == 8 && !North) return 1705;
			if (!Up && West && East && South && Age == 0 && !North) return 1450;
			if (!Up && West && East && South && Age == 8 && !North) return 1706;
			if (!Up && !West && East && South && Age == 0 && !North) return 1451;
			if (!Up && !West && East && South && Age == 8 && !North) return 1707;
			if (Up && West && East && !South && Age == 0 && !North) return 1452;
			if (Up && West && East && !South && Age == 8 && !North) return 1708;
			if (Up && !West && East && !South && Age == 0 && !North) return 1453;
			if (Up && !West && East && !South && Age == 8 && !North) return 1709;
			if (!Up && West && East && !South && Age == 0 && !North) return 1454;
			if (!Up && West && East && !South && Age == 8 && !North) return 1710;
			if (!Up && !West && East && !South && Age == 0 && !North) return 1455;
			if (!Up && !West && East && !South && Age == 8 && !North) return 1711;
			if (Up && West && !East && South && Age == 0 && North) return 1456;
			if (Up && West && !East && South && Age == 8 && North) return 1712;
			if (Up && !West && !East && South && Age == 0 && North) return 1457;
			if (Up && !West && !East && South && Age == 8 && North) return 1713;
			if (!Up && West && !East && South && Age == 0 && North) return 1458;
			if (!Up && West && !East && South && Age == 8 && North) return 1714;
			if (!Up && !West && !East && South && Age == 0 && North) return 1459;
			if (!Up && !West && !East && South && Age == 8 && North) return 1715;
			if (Up && West && !East && !South && Age == 0 && North) return 1460;
			if (Up && West && !East && !South && Age == 8 && North) return 1716;
			if (Up && !West && !East && !South && Age == 0 && North) return 1461;
			if (Up && !West && !East && !South && Age == 8 && North) return 1717;
			if (!Up && West && !East && !South && Age == 0 && North) return 1462;
			if (!Up && West && !East && !South && Age == 8 && North) return 1718;
			if (!Up && !West && !East && !South && Age == 0 && North) return 1463;
			if (!Up && !West && !East && !South && Age == 8 && North) return 1719;
			if (Up && West && !East && South && Age == 0 && !North) return 1464;
			if (Up && West && !East && South && Age == 8 && !North) return 1720;
			if (Up && !West && !East && South && Age == 0 && !North) return 1465;
			if (Up && !West && !East && South && Age == 8 && !North) return 1721;
			if (!Up && West && !East && South && Age == 0 && !North) return 1466;
			if (!Up && West && !East && South && Age == 8 && !North) return 1722;
			if (!Up && !West && !East && South && Age == 0 && !North) return 1467;
			if (!Up && !West && !East && South && Age == 8 && !North) return 1723;
			if (Up && West && !East && !South && Age == 0 && !North) return 1468;
			if (Up && West && !East && !South && Age == 8 && !North) return 1724;
			if (Up && !West && !East && !South && Age == 0 && !North) return 1469;
			if (Up && !West && !East && !South && Age == 8 && !North) return 1725;
			if (!Up && West && !East && !South && Age == 0 && !North) return 1470;
			if (!Up && West && !East && !South && Age == 8 && !North) return 1726;
			if (!Up && !West && !East && !South && Age == 0 && !North) return 1471;
			if (!Up && !West && !East && !South && Age == 8 && !North) return 1727;
			if (Up && West && East && South && Age == 1 && North) return 1472;
			if (Up && West && East && South && Age == 9 && North) return 1728;
			if (Up && !West && East && South && Age == 1 && North) return 1473;
			if (Up && !West && East && South && Age == 9 && North) return 1729;
			if (!Up && West && East && South && Age == 1 && North) return 1474;
			if (!Up && West && East && South && Age == 9 && North) return 1730;
			if (!Up && !West && East && South && Age == 1 && North) return 1475;
			if (!Up && !West && East && South && Age == 9 && North) return 1731;
			if (Up && West && East && !South && Age == 1 && North) return 1476;
			if (Up && West && East && !South && Age == 9 && North) return 1732;
			if (Up && !West && East && !South && Age == 1 && North) return 1477;
			if (Up && !West && East && !South && Age == 9 && North) return 1733;
			if (!Up && West && East && !South && Age == 1 && North) return 1478;
			if (!Up && West && East && !South && Age == 9 && North) return 1734;
			if (!Up && !West && East && !South && Age == 1 && North) return 1479;
			if (!Up && !West && East && !South && Age == 9 && North) return 1735;
			if (Up && West && East && South && Age == 1 && !North) return 1480;
			if (Up && West && East && South && Age == 9 && !North) return 1736;
			if (Up && !West && East && South && Age == 1 && !North) return 1481;
			if (Up && !West && East && South && Age == 9 && !North) return 1737;
			if (!Up && West && East && South && Age == 1 && !North) return 1482;
			if (!Up && West && East && South && Age == 9 && !North) return 1738;
			if (!Up && !West && East && South && Age == 1 && !North) return 1483;
			if (!Up && !West && East && South && Age == 9 && !North) return 1739;
			if (Up && West && East && !South && Age == 1 && !North) return 1484;
			if (Up && West && East && !South && Age == 9 && !North) return 1740;
			if (Up && !West && East && !South && Age == 1 && !North) return 1485;
			if (Up && !West && East && !South && Age == 9 && !North) return 1741;
			if (!Up && West && East && !South && Age == 1 && !North) return 1486;
			if (!Up && West && East && !South && Age == 9 && !North) return 1742;
			if (!Up && !West && East && !South && Age == 1 && !North) return 1487;
			if (!Up && !West && East && !South && Age == 9 && !North) return 1743;
			if (Up && West && !East && South && Age == 1 && North) return 1488;
			if (Up && West && !East && South && Age == 9 && North) return 1744;
			if (Up && !West && !East && South && Age == 1 && North) return 1489;
			if (Up && !West && !East && South && Age == 9 && North) return 1745;
			if (!Up && West && !East && South && Age == 1 && North) return 1490;
			if (!Up && West && !East && South && Age == 9 && North) return 1746;
			if (!Up && !West && !East && South && Age == 1 && North) return 1491;
			if (!Up && !West && !East && South && Age == 9 && North) return 1747;
			if (Up && West && !East && !South && Age == 1 && North) return 1492;
			if (Up && West && !East && !South && Age == 9 && North) return 1748;
			if (Up && !West && !East && !South && Age == 1 && North) return 1493;
			if (Up && !West && !East && !South && Age == 9 && North) return 1749;
			if (!Up && West && !East && !South && Age == 1 && North) return 1494;
			if (!Up && West && !East && !South && Age == 9 && North) return 1750;
			if (!Up && !West && !East && !South && Age == 1 && North) return 1495;
			if (!Up && !West && !East && !South && Age == 9 && North) return 1751;
			if (Up && West && !East && South && Age == 1 && !North) return 1496;
			if (Up && West && !East && South && Age == 9 && !North) return 1752;
			if (Up && !West && !East && South && Age == 1 && !North) return 1497;
			if (Up && !West && !East && South && Age == 9 && !North) return 1753;
			if (!Up && West && !East && South && Age == 1 && !North) return 1498;
			if (!Up && West && !East && South && Age == 9 && !North) return 1754;
			if (!Up && !West && !East && South && Age == 1 && !North) return 1499;
			if (!Up && !West && !East && South && Age == 9 && !North) return 1755;
			if (Up && West && !East && !South && Age == 1 && !North) return 1500;
			if (Up && West && !East && !South && Age == 9 && !North) return 1756;
			if (Up && !West && !East && !South && Age == 1 && !North) return 1501;
			if (Up && !West && !East && !South && Age == 9 && !North) return 1757;
			if (!Up && West && !East && !South && Age == 1 && !North) return 1502;
			if (!Up && West && !East && !South && Age == 9 && !North) return 1758;
			if (!Up && !West && !East && !South && Age == 1 && !North) return 1503;
			if (!Up && !West && !East && !South && Age == 9 && !North) return 1759;
			if (Up && West && East && South && Age == 2 && North) return 1504;
			if (Up && West && East && South && Age == 10 && North) return 1760;
			if (Up && !West && East && South && Age == 2 && North) return 1505;
			if (Up && !West && East && South && Age == 10 && North) return 1761;
			if (!Up && West && East && South && Age == 2 && North) return 1506;
			if (!Up && West && East && South && Age == 10 && North) return 1762;
			if (!Up && !West && East && South && Age == 2 && North) return 1507;
			if (!Up && !West && East && South && Age == 10 && North) return 1763;
			if (Up && West && East && !South && Age == 2 && North) return 1508;
			if (Up && West && East && !South && Age == 10 && North) return 1764;
			if (Up && !West && East && !South && Age == 2 && North) return 1509;
			if (Up && !West && East && !South && Age == 10 && North) return 1765;
			if (!Up && West && East && !South && Age == 2 && North) return 1510;
			if (!Up && West && East && !South && Age == 10 && North) return 1766;
			if (!Up && !West && East && !South && Age == 2 && North) return 1511;
			if (!Up && !West && East && !South && Age == 10 && North) return 1767;
			if (Up && West && East && South && Age == 2 && !North) return 1512;
			if (Up && West && East && South && Age == 10 && !North) return 1768;
			return 1951;
		}
		short Fire();
		unsigned char Age(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace FireCoral
	{
		constexpr short FireCoral()
		{
			if (false) return 9536;
			return 9537;
		}
		bool Waterlogged(short ID);
	}
	namespace FireCoralBlock
	{
		constexpr short FireCoralBlock()
		{
			return 9518;
		}
	}
	namespace FireCoralFan
	{
		constexpr short FireCoralFan()
		{
			if (false) return 9556;
			return 9557;
		}
		bool Waterlogged(short ID);
	}
	namespace FireCoralWallFan
	{
		constexpr short FireCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9627;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9624;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9628;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9625;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9629;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9626;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9630;
			return 9631;
		}
		short FireCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace FletchingTable
	{
		constexpr short FletchingTable()
		{
			return 14820;
		}
	}
	namespace FlowerPot
	{
		constexpr short FlowerPot()
		{
			return 6305;
		}
	}
	namespace FrostedIce
	{
		constexpr short FrostedIce(unsigned char Age)
		{
			if (Age == 0) return 9249;
			if (Age == 2) return 9251;
			if (Age == 1) return 9250;
			return 9252;
		}
		short FrostedIce();
		unsigned char Age(short ID);
	}
	namespace Furnace
	{
		constexpr short Furnace(eBlockFace Facing, bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit) return 3379;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit) return 3373;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit) return 3374;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit) return 3375;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit) return 3376;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit) return 3377;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit) return 3378;
			return 3380;
		}
		short Furnace();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
	}
	namespace GildedBlackstone
	{
		constexpr short GildedBlackstone()
		{
			return 16664;
		}
	}
	namespace Glass
	{
		constexpr short Glass()
		{
			return 231;
		}
	}
	namespace GlassPane
	{
		constexpr short GlassPane(bool East, bool North, bool South, bool West)
		{
			if (!false && !South && West && !East && !North) return 4761;
			if (!false && South && !West && East && North) return 4734;
			if (!false && !South && !West && East && North) return 4738;
			if (!false && South && !West && East && !North) return 4742;
			if (!false && !South && !West && East && !North) return 4746;
			if (!false && South && !West && !East && North) return 4750;
			if (!false && !South && !West && !East && North) return 4754;
			if (!false && South && !West && !East && !North) return 4758;
			if (false && South && West && East && North) return 4731;
			if (false && !South && West && East && North) return 4735;
			if (false && South && West && East && !North) return 4739;
			if (false && !South && West && East && !North) return 4743;
			if (false && South && West && !East && North) return 4747;
			if (false && !South && West && !East && North) return 4751;
			if (false && South && West && !East && !North) return 4755;
			if (false && !South && West && !East && !North) return 4759;
			if (false && South && !West && East && North) return 4732;
			if (false && !South && !West && East && North) return 4736;
			if (false && South && !West && East && !North) return 4740;
			if (false && !South && !West && East && !North) return 4744;
			if (false && South && !West && !East && North) return 4748;
			if (false && !South && !West && !East && North) return 4752;
			if (false && South && !West && !East && !North) return 4756;
			if (false && !South && !West && !East && !North) return 4760;
			if (!false && South && West && East && North) return 4733;
			if (!false && !South && West && East && North) return 4737;
			if (!false && South && West && East && !North) return 4741;
			if (!false && !South && West && East && !North) return 4745;
			if (!false && South && West && !East && North) return 4749;
			if (!false && !South && West && !East && North) return 4753;
			if (!false && South && West && !East && !North) return 4757;
			return 4762;
		}
		short GlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace Glowstone
	{
		constexpr short Glowstone()
		{
			return 4013;
		}
	}
	namespace GoldBlock
	{
		constexpr short GoldBlock()
		{
			return 1427;
		}
	}
	namespace GoldOre
	{
		constexpr short GoldOre()
		{
			return 69;
		}
	}
	namespace Granite
	{
		constexpr short Granite()
		{
			return 2;
		}
	}
	namespace GraniteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short GraniteSlab(enum Type Type)
		{
			if (Type == Type::Top && !false) return 10838;
			if (Type == Type::Double && !false) return 10842;
			if (Type == Type::Bottom && false) return 10839;
			if (Type == Type::Bottom && !false) return 10840;
			if (Type == Type::Top && false) return 10837;
			return 10841;
		}
		short GraniteSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace GraniteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short GraniteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10468;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10389;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10390;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10391;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10392;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10393;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10394;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10395;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10396;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10397;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10398;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10399;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10400;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10401;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10402;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10403;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10404;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10405;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10406;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10407;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10408;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10409;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10410;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10411;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10412;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10413;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10414;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10415;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10416;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10417;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10418;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10419;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10420;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10421;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10422;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10423;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10424;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10425;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10426;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10427;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10428;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10429;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10430;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10431;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10432;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10433;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10434;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10435;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10436;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10437;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10438;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10439;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10440;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10441;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10442;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10443;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10444;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10445;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10446;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10447;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10448;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10449;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10450;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10451;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10452;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10453;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10454;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10455;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10456;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10457;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10458;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10459;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10460;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10461;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10462;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10463;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10464;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10465;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10466;
			return 10467;
		}
		short GraniteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace GraniteWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short GraniteWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 12164;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 12168;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 12172;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 12176;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 12180;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 12184;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 12188;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 12192;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 12196;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 12200;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 12204;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 12208;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 12212;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 12216;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 12220;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 12224;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 12228;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 12232;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 12236;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 12240;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 12244;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 12248;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 12252;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 12256;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 12260;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 12264;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 12268;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 12272;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 12276;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 12280;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 12284;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 12288;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 12292;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 12296;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 12300;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 12304;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 12308;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 12312;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 12316;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 12320;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 12324;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 12328;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 12332;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 12336;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 12340;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 12344;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12348;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 12352;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 12356;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12360;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 12364;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 12368;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12372;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 12376;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 12380;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 12384;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 12388;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 12392;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 12396;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 12400;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 12404;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 12408;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 12412;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 12416;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12420;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 12424;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 12428;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12432;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 12436;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 12440;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12444;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 12448;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12452;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12456;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12460;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12464;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12468;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12472;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12476;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12480;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12484;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 12165;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 12169;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 12173;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 12177;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 12181;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 12185;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 12189;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 12193;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 12197;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 12201;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 12205;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 12209;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 12213;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 12217;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 12221;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 12225;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 12229;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 12233;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 12237;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 12241;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 12245;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 12249;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 12253;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 12257;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 12261;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 12265;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 12269;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 12273;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 12277;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 12281;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 12285;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 12289;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 12293;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 12297;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 12301;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 12305;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 12309;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 12313;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 12317;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 12321;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 12325;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 12329;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 12333;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 12337;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 12341;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12345;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 12349;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12353;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12357;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 12361;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12365;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12369;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 12373;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12377;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 12381;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 12385;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 12389;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 12393;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 12397;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 12401;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 12405;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 12409;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 12413;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12417;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 12421;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12425;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12429;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 12433;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12437;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12441;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 12445;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12449;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12453;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12457;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12461;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12465;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12469;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12473;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12477;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12481;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12485;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 12166;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 12170;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 12174;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 12178;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 12182;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 12186;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 12190;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 12194;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 12198;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 12202;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 12206;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 12210;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 12214;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 12218;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 12222;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 12226;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 12230;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 12234;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 12238;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 12242;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12246;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 12250;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 12254;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12258;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 12262;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 12266;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12270;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 12274;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 12278;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 12282;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 12286;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 12290;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 12294;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 12298;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 12302;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 12306;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 12310;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 12314;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12318;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 12322;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 12326;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12330;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 12334;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 12338;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12342;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 12346;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12350;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12354;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 12358;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12362;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12366;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 12370;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12374;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12378;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 12382;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 12386;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12390;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 12394;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 12398;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12402;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 12406;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 12410;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12414;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 12418;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12422;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12426;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 12430;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12434;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12438;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 12442;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12446;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12450;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 12454;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12458;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12462;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 12466;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12470;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12474;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 12478;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12482;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12486;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 12163;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 12167;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 12171;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 12175;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 12179;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 12183;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 12187;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 12191;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 12195;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 12199;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 12203;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 12207;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 12211;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 12215;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 12219;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 12223;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 12227;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 12231;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 12235;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 12239;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12243;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 12247;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 12251;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12255;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 12259;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 12263;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12267;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 12271;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 12275;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 12279;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 12283;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 12287;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 12291;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 12295;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 12299;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 12303;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 12307;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 12311;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12315;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 12319;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 12323;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12327;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 12331;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 12335;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12339;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 12343;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 12347;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12351;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 12355;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 12359;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12363;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 12367;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 12371;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12375;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 12379;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 12383;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12387;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 12391;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 12395;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12399;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 12403;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 12407;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12411;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 12415;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 12419;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12423;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 12427;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 12431;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12435;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 12439;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 12443;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12447;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 12451;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12455;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12459;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 12463;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12467;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12471;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 12475;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12479;
			return 12483;
		}
		short GraniteWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace Grass
	{
		constexpr short Grass()
		{
			return 1342;
		}
	}
	namespace GrassBlock
	{
		constexpr short GrassBlock(bool Snowy)
		{
			if (Snowy) return 8;
			return 9;
		}
		short GrassBlock();
		bool Snowy(short ID);
	}
	namespace GrassPath
	{
		constexpr short GrassPath()
		{
			return 9223;
		}
	}
	namespace Gravel
	{
		constexpr short Gravel()
		{
			return 68;
		}
	}
	namespace GrayBanner
	{
		constexpr short GrayBanner(unsigned char Rotation)
		{
			if (Rotation == 2) return 8011;
			if (Rotation == 3) return 8012;
			if (Rotation == 4) return 8013;
			if (Rotation == 5) return 8014;
			if (Rotation == 6) return 8015;
			if (Rotation == 7) return 8016;
			if (Rotation == 8) return 8017;
			if (Rotation == 9) return 8018;
			if (Rotation == 10) return 8019;
			if (Rotation == 11) return 8020;
			if (Rotation == 12) return 8021;
			if (Rotation == 13) return 8022;
			if (Rotation == 14) return 8023;
			if (Rotation == 0) return 8009;
			if (Rotation == 1) return 8010;
			return 8024;
		}
		short GrayBanner();
		unsigned char Rotation(short ID);
	}
	namespace GrayBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short GrayBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1167;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1171;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1175;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1164;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1168;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1172;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1161;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1165;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1169;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1173;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1162;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1166;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1170;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1174;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1163;
			return 1176;
		}
		short GrayBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace GrayCarpet
	{
		constexpr short GrayCarpet()
		{
			return 7873;
		}
	}
	namespace GrayConcrete
	{
		constexpr short GrayConcrete()
		{
			return 9445;
		}
	}
	namespace GrayConcretePowder
	{
		constexpr short GrayConcretePowder()
		{
			return 9461;
		}
	}
	namespace GrayGlazedTerracotta
	{
		constexpr short GrayGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9402;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9404;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9403;
			return 9405;
		}
		short GrayGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace GrayShulkerBox
	{
		constexpr short GrayShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9323;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9320;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9324;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9321;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9325;
			return 9322;
		}
		short GrayShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace GrayStainedGlass
	{
		constexpr short GrayStainedGlass()
		{
			return 4102;
		}
	}
	namespace GrayStainedGlassPane
	{
		constexpr short GrayStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (!false && !South && West && !East && !North) return 7117;
			if (!false && South && !West && East && North) return 7090;
			if (!false && !South && !West && East && North) return 7094;
			if (!false && South && !West && East && !North) return 7098;
			if (!false && !South && !West && East && !North) return 7102;
			if (!false && South && !West && !East && North) return 7106;
			if (!false && !South && !West && !East && North) return 7110;
			if (!false && South && !West && !East && !North) return 7114;
			if (false && South && West && East && North) return 7087;
			if (false && !South && West && East && North) return 7091;
			if (false && South && West && East && !North) return 7095;
			if (false && !South && West && East && !North) return 7099;
			if (false && South && West && !East && North) return 7103;
			if (false && !South && West && !East && North) return 7107;
			if (false && South && West && !East && !North) return 7111;
			if (false && !South && West && !East && !North) return 7115;
			if (false && South && !West && East && North) return 7088;
			if (false && !South && !West && East && North) return 7092;
			if (false && South && !West && East && !North) return 7096;
			if (false && !South && !West && East && !North) return 7100;
			if (false && South && !West && !East && North) return 7104;
			if (false && !South && !West && !East && North) return 7108;
			if (false && South && !West && !East && !North) return 7112;
			if (false && !South && !West && !East && !North) return 7116;
			if (!false && South && West && East && North) return 7089;
			if (!false && !South && West && East && North) return 7093;
			if (!false && South && West && East && !North) return 7097;
			if (!false && !South && West && East && !North) return 7101;
			if (!false && South && West && !East && North) return 7105;
			if (!false && !South && West && !East && North) return 7109;
			if (!false && South && West && !East && !North) return 7113;
			return 7118;
		}
		short GrayStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace GrayTerracotta
	{
		constexpr short GrayTerracotta()
		{
			return 6854;
		}
	}
	namespace GrayWallBanner
	{
		constexpr short GrayWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8182;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8183;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8181;
			return 8184;
		}
		short GrayWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace GrayWool
	{
		constexpr short GrayWool()
		{
			return 1391;
		}
	}
	namespace GreenBanner
	{
		constexpr short GreenBanner(unsigned char Rotation)
		{
			if (Rotation == 11) return 8116;
			if (Rotation == 12) return 8117;
			if (Rotation == 13) return 8118;
			if (Rotation == 14) return 8119;
			if (Rotation == 0) return 8105;
			if (Rotation == 1) return 8106;
			if (Rotation == 2) return 8107;
			if (Rotation == 3) return 8108;
			if (Rotation == 4) return 8109;
			if (Rotation == 5) return 8110;
			if (Rotation == 6) return 8111;
			if (Rotation == 7) return 8112;
			if (Rotation == 8) return 8113;
			if (Rotation == 9) return 8114;
			if (Rotation == 10) return 8115;
			return 8120;
		}
		short GreenBanner();
		unsigned char Rotation(short ID);
	}
	namespace GreenBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short GreenBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1257;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1261;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1265;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1269;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1258;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1262;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1266;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1270;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1259;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1263;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1267;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1271;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1260;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1264;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1268;
			return 1272;
		}
		short GreenBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace GreenCarpet
	{
		constexpr short GreenCarpet()
		{
			return 7879;
		}
	}
	namespace GreenConcrete
	{
		constexpr short GreenConcrete()
		{
			return 9451;
		}
	}
	namespace GreenConcretePowder
	{
		constexpr short GreenConcretePowder()
		{
			return 9467;
		}
	}
	namespace GreenGlazedTerracotta
	{
		constexpr short GreenGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9426;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9428;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9427;
			return 9429;
		}
		short GreenGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace GreenShulkerBox
	{
		constexpr short GreenShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9361;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9358;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9359;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9356;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9360;
			return 9357;
		}
		short GreenShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace GreenStainedGlass
	{
		constexpr short GreenStainedGlass()
		{
			return 4108;
		}
	}
	namespace GreenStainedGlassPane
	{
		constexpr short GreenStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (false && South && West && !East && !North) return 7303;
			if (false && !South && West && !East && !North) return 7307;
			if (false && South && !West && East && North) return 7280;
			if (false && !South && !West && East && North) return 7284;
			if (false && South && !West && East && !North) return 7288;
			if (false && !South && !West && East && !North) return 7292;
			if (false && South && !West && !East && North) return 7296;
			if (false && !South && !West && !East && North) return 7300;
			if (false && South && !West && !East && !North) return 7304;
			if (false && !South && !West && !East && !North) return 7308;
			if (!false && South && West && East && North) return 7281;
			if (!false && !South && West && East && North) return 7285;
			if (!false && South && West && East && !North) return 7289;
			if (!false && !South && West && East && !North) return 7293;
			if (!false && South && West && !East && North) return 7297;
			if (!false && !South && West && !East && North) return 7301;
			if (!false && South && West && !East && !North) return 7305;
			if (!false && !South && West && !East && !North) return 7309;
			if (!false && South && !West && East && North) return 7282;
			if (!false && !South && !West && East && North) return 7286;
			if (!false && South && !West && East && !North) return 7290;
			if (!false && !South && !West && East && !North) return 7294;
			if (!false && South && !West && !East && North) return 7298;
			if (!false && !South && !West && !East && North) return 7302;
			if (!false && South && !West && !East && !North) return 7306;
			if (false && South && West && East && North) return 7279;
			if (false && !South && West && East && North) return 7283;
			if (false && South && West && East && !North) return 7287;
			if (false && !South && West && East && !North) return 7291;
			if (false && South && West && !East && North) return 7295;
			if (false && !South && West && !East && North) return 7299;
			return 7310;
		}
		short GreenStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace GreenTerracotta
	{
		constexpr short GreenTerracotta()
		{
			return 6860;
		}
	}
	namespace GreenWallBanner
	{
		constexpr short GreenWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8205;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8207;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8206;
			return 8208;
		}
		short GreenWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace GreenWool
	{
		constexpr short GreenWool()
		{
			return 1397;
		}
	}
	namespace Grindstone
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short Grindstone(enum Face Face, eBlockFace Facing)
		{
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZP) return 14822;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XP) return 14824;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZP) return 14826;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XP) return 14828;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZP) return 14830;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_XP) return 14832;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_ZM) return 14821;
			if (Face == Face::Floor && Facing == eBlockFace::BLOCK_FACE_XM) return 14823;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_ZM) return 14825;
			if (Face == Face::Wall && Facing == eBlockFace::BLOCK_FACE_XM) return 14827;
			if (Face == Face::Ceiling && Facing == eBlockFace::BLOCK_FACE_ZM) return 14829;
			return 14831;
		}
		short Grindstone();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
	}
	namespace HayBale
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short HayBale(enum Axis Axis)
		{
			if (Axis == Axis::Y) return 7864;
			if (Axis == Axis::Z) return 7865;
			return 7863;
		}
		short HayBale();
		enum Axis Axis(short ID);
	}
	namespace HeavyWeightedPressurePlate
	{
		constexpr short HeavyWeightedPressurePlate(unsigned char Power)
		{
			if (Power == 14) return 6676;
			if (Power == 0) return 6662;
			if (Power == 1) return 6663;
			if (Power == 2) return 6664;
			if (Power == 3) return 6665;
			if (Power == 4) return 6666;
			if (Power == 5) return 6667;
			if (Power == 6) return 6668;
			if (Power == 7) return 6669;
			if (Power == 8) return 6670;
			if (Power == 9) return 6671;
			if (Power == 10) return 6672;
			if (Power == 11) return 6673;
			if (Power == 12) return 6674;
			if (Power == 13) return 6675;
			return 6677;
		}
		short HeavyWeightedPressurePlate();
		unsigned char Power(short ID);
	}
	namespace HoneyBlock
	{
		constexpr short HoneyBlock()
		{
			return 15824;
		}
	}
	namespace HoneycombBlock
	{
		constexpr short HoneycombBlock()
		{
			return 15825;
		}
	}
	namespace Hopper
	{
		constexpr short Hopper(bool Enabled, eBlockFace Facing)
		{
			if (!Enabled && Facing == eBlockFace::BLOCK_FACE_XM) return 6736;
			if (!Enabled && Facing == eBlockFace::BLOCK_FACE_XP) return 6737;
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_YM) return 6728;
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_ZM) return 6729;
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_ZP) return 6730;
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_XM) return 6731;
			if (Enabled && Facing == eBlockFace::BLOCK_FACE_XP) return 6732;
			if (!Enabled && Facing == eBlockFace::BLOCK_FACE_YM) return 6733;
			if (!Enabled && Facing == eBlockFace::BLOCK_FACE_ZM) return 6734;
			return 6735;
		}
		short Hopper();
		bool Enabled(short ID);
		eBlockFace Facing(short ID);
	}
	namespace HornCoral
	{
		constexpr short HornCoral()
		{
			if (false) return 9538;
			return 9539;
		}
		bool Waterlogged(short ID);
	}
	namespace HornCoralBlock
	{
		constexpr short HornCoralBlock()
		{
			return 9519;
		}
	}
	namespace HornCoralFan
	{
		constexpr short HornCoralFan()
		{
			if (false) return 9558;
			return 9559;
		}
		bool Waterlogged(short ID);
	}
	namespace HornCoralWallFan
	{
		constexpr short HornCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9634;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9638;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9635;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9632;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9636;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9633;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9637;
			return 9639;
		}
		short HornCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace Ice
	{
		constexpr short Ice()
		{
			return 3929;
		}
	}
	namespace InfestedChiseledStoneBricks
	{
		constexpr short InfestedChiseledStoneBricks()
		{
			return 4504;
		}
	}
	namespace InfestedCobblestone
	{
		constexpr short InfestedCobblestone()
		{
			return 4500;
		}
	}
	namespace InfestedCrackedStoneBricks
	{
		constexpr short InfestedCrackedStoneBricks()
		{
			return 4503;
		}
	}
	namespace InfestedMossyStoneBricks
	{
		constexpr short InfestedMossyStoneBricks()
		{
			return 4502;
		}
	}
	namespace InfestedStone
	{
		constexpr short InfestedStone()
		{
			return 4499;
		}
	}
	namespace InfestedStoneBricks
	{
		constexpr short InfestedStoneBricks()
		{
			return 4501;
		}
	}
	namespace IronBars
	{
		constexpr short IronBars(bool East, bool North, bool South, bool West)
		{
			if (!false && South && West && East && North) return 4699;
			if (!false && !South && West && East && North) return 4703;
			if (!false && South && West && East && !North) return 4707;
			if (!false && !South && West && East && !North) return 4711;
			if (!false && South && West && !East && North) return 4715;
			if (!false && !South && West && !East && North) return 4719;
			if (!false && South && West && !East && !North) return 4723;
			if (!false && !South && West && !East && !North) return 4727;
			if (!false && South && !West && East && North) return 4700;
			if (!false && !South && !West && East && North) return 4704;
			if (!false && South && !West && East && !North) return 4708;
			if (!false && !South && !West && East && !North) return 4712;
			if (!false && South && !West && !East && North) return 4716;
			if (!false && !South && !West && !East && North) return 4720;
			if (!false && South && !West && !East && !North) return 4724;
			if (false && South && West && East && North) return 4697;
			if (false && !South && West && East && North) return 4701;
			if (false && South && West && East && !North) return 4705;
			if (false && !South && West && East && !North) return 4709;
			if (false && South && West && !East && North) return 4713;
			if (false && !South && West && !East && North) return 4717;
			if (false && South && West && !East && !North) return 4721;
			if (false && !South && West && !East && !North) return 4725;
			if (false && South && !West && East && North) return 4698;
			if (false && !South && !West && East && North) return 4702;
			if (false && South && !West && East && !North) return 4706;
			if (false && !South && !West && East && !North) return 4710;
			if (false && South && !West && !East && North) return 4714;
			if (false && !South && !West && !East && North) return 4718;
			if (false && South && !West && !East && !North) return 4722;
			if (false && !South && !West && !East && !North) return 4726;
			return 4728;
		}
		short IronBars();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace IronBlock
	{
		constexpr short IronBlock()
		{
			return 1428;
		}
	}
	namespace IronDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short IronDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 3862;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 3870;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 3815;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 3823;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 3831;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 3839;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 3847;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 3855;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 3863;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 3871;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 3816;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 3824;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 3832;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 3840;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 3848;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 3856;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Right) return 3864;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 3809;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 3817;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 3825;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 3833;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 3841;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 3849;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 3857;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 3865;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 3810;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 3818;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 3826;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 3834;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 3842;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 3850;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 3858;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 3866;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 3811;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 3819;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 3827;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 3835;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 3843;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 3851;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 3859;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 3867;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 3812;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 3820;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 3828;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 3836;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 3844;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 3852;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 3860;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 3868;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 3813;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 3821;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 3829;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 3837;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 3845;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 3853;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 3861;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 3869;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 3814;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 3822;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 3830;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 3838;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 3846;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 3854;
			return 3872;
		}
		short IronDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace IronOre
	{
		constexpr short IronOre()
		{
			return 70;
		}
	}
	namespace IronTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short IronTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 7597;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 7550;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 7566;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 7582;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 7598;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 7551;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 7567;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 7583;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 7599;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 7552;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 7568;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 7584;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 7537;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 7553;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 7569;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 7585;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 7538;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 7554;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 7570;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 7586;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 7539;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 7555;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 7571;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 7587;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 7540;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 7556;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 7572;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 7588;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 7541;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 7557;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 7573;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 7589;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 7542;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 7558;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 7574;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 7590;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 7543;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 7559;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 7575;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 7591;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 7544;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 7560;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 7576;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 7592;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 7545;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 7561;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 7577;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 7593;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 7546;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 7562;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 7578;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 7594;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 7547;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 7563;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 7579;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 7595;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 7548;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 7564;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 7580;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 7596;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 7549;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 7565;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 7581;
			return 7600;
		}
		short IronTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
		bool Waterlogged(short ID);
	}
	namespace JackOLantern
	{
		constexpr short JackOLantern(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4021;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4020;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4022;
			return 4023;
		}
		short JackOLantern();
		eBlockFace Facing(short ID);
	}
	namespace Jigsaw
	{
		enum class Orientation
		{
			DownEast,
			DownNorth,
			DownSouth,
			DownWest,
			UpEast,
			UpNorth,
			UpSouth,
			UpWest,
			WestUp,
			EastUp,
			NorthUp,
			SouthUp
		};
		constexpr short Jigsaw(enum Orientation Orientation)
		{
			if (Orientation == Orientation::SouthUp) return 15750;
			if (Orientation == Orientation::DownEast) return 15739;
			if (Orientation == Orientation::DownSouth) return 15741;
			if (Orientation == Orientation::UpEast) return 15743;
			if (Orientation == Orientation::UpSouth) return 15745;
			if (Orientation == Orientation::WestUp) return 15747;
			if (Orientation == Orientation::NorthUp) return 15749;
			if (Orientation == Orientation::DownNorth) return 15740;
			if (Orientation == Orientation::DownWest) return 15742;
			if (Orientation == Orientation::UpNorth) return 15744;
			if (Orientation == Orientation::UpWest) return 15746;
			return 15748;
		}
		short Jigsaw();
		enum Orientation Orientation(short ID);
	}
	namespace Jukebox
	{
		constexpr short Jukebox(bool HasRecord)
		{
			if (HasRecord) return 3964;
			return 3965;
		}
		short Jukebox();
		bool HasRecord(short ID);
	}
	namespace JungleButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short JungleButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6435;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6439;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6420;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6424;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6428;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6432;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6436;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6440;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6421;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6425;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6429;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6433;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6437;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6441;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6418;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6422;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6426;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6430;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6434;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6438;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6419;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6423;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6427;
			return 6431;
		}
		short JungleButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace JungleDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short JungleDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 8892;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 8924;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 8893;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 8925;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 8894;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 8926;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 8895;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 8927;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 8896;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 8928;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 8897;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 8866;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 8898;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 8867;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 8899;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 8868;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 8900;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 8869;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 8901;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 8870;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 8902;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 8871;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 8903;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 8872;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 8904;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 8873;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 8905;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 8874;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 8906;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 8875;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 8907;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 8876;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 8908;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 8877;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 8909;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 8878;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 8910;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 8879;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 8911;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 8880;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 8912;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 8881;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 8913;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 8882;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 8914;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 8883;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 8915;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 8884;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 8916;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 8885;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 8917;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 8886;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 8918;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 8887;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 8919;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 8888;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 8920;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 8889;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Right) return 8921;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 8890;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 8922;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 8891;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 8923;
			return 8929;
		}
		short JungleDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace JungleFence
	{
		constexpr short JungleFence(bool East, bool North, bool South, bool West)
		{
			if (false && !South && West && East && North) return 8646;
			if (false && !South && West && East && !North) return 8654;
			if (false && !South && West && !East && North) return 8662;
			if (false && !South && West && !East && !North) return 8670;
			if (false && !South && !West && East && North) return 8647;
			if (false && !South && !West && East && !North) return 8655;
			if (false && !South && !West && !East && North) return 8663;
			if (false && !South && !West && !East && !North) return 8671;
			if (!false && !South && West && East && North) return 8648;
			if (!false && !South && West && East && !North) return 8656;
			if (!false && !South && West && !East && North) return 8664;
			if (!false && !South && West && !East && !North) return 8672;
			if (!false && !South && !West && East && North) return 8649;
			if (!false && !South && !West && East && !North) return 8657;
			if (!false && !South && !West && !East && North) return 8665;
			if (false && South && West && East && North) return 8642;
			if (false && South && West && East && !North) return 8650;
			if (false && South && West && !East && North) return 8658;
			if (false && South && West && !East && !North) return 8666;
			if (false && South && !West && East && North) return 8643;
			if (false && South && !West && East && !North) return 8651;
			if (false && South && !West && !East && North) return 8659;
			if (false && South && !West && !East && !North) return 8667;
			if (!false && South && West && East && North) return 8644;
			if (!false && South && West && East && !North) return 8652;
			if (!false && South && West && !East && North) return 8660;
			if (!false && South && West && !East && !North) return 8668;
			if (!false && South && !West && East && North) return 8645;
			if (!false && South && !West && East && !North) return 8653;
			if (!false && South && !West && !East && North) return 8661;
			if (!false && South && !West && !East && !North) return 8669;
			return 8673;
		}
		short JungleFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace JungleFenceGate
	{
		constexpr short JungleFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8491;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8499;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8507;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8484;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8492;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8500;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8508;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8485;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8493;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8501;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8509;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8486;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8494;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8502;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8510;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8487;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8495;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8503;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8511;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8488;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8496;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8504;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8512;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8489;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8497;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8505;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8482;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8490;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8498;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8506;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8483;
			return 8513;
		}
		short JungleFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace JungleLeaves
	{
		constexpr short JungleLeaves(unsigned char Distance, bool Persistent)
		{
			if (!Persistent && Distance == 6) return 198;
			if (Persistent && Distance == 3) return 191;
			if (Persistent && Distance == 7) return 199;
			if (!Persistent && Distance == 3) return 192;
			if (!Persistent && Distance == 7) return 200;
			if (Persistent && Distance == 4) return 193;
			if (!Persistent && Distance == 4) return 194;
			if (Persistent && Distance == 1) return 187;
			if (Persistent && Distance == 5) return 195;
			if (!Persistent && Distance == 1) return 188;
			if (!Persistent && Distance == 5) return 196;
			if (Persistent && Distance == 2) return 189;
			if (Persistent && Distance == 6) return 197;
			return 190;
		}
		short JungleLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace JungleLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short JungleLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 82;
			if (Axis == Axis::Y) return 83;
			return 84;
		}
		short JungleLog();
		enum Axis Axis(short ID);
	}
	namespace JunglePlanks
	{
		constexpr short JunglePlanks()
		{
			return 18;
		}
	}
	namespace JunglePressurePlate
	{
		constexpr short JunglePressurePlate(bool Powered)
		{
			if (Powered) return 3879;
			return 3880;
		}
		short JunglePressurePlate();
		bool Powered(short ID);
	}
	namespace JungleSapling
	{
		constexpr short JungleSapling(unsigned char Stage)
		{
			if (Stage == 0) return 27;
			return 28;
		}
		short JungleSapling();
		unsigned char Stage(short ID);
	}
	namespace JungleSign
	{
		constexpr short JungleSign(unsigned char Rotation)
		{
			if (Rotation == 2 && !false) return 3514;
			if (Rotation == 3 && !false) return 3516;
			if (Rotation == 4 && !false) return 3518;
			if (Rotation == 5 && !false) return 3520;
			if (Rotation == 6 && !false) return 3522;
			if (Rotation == 7 && !false) return 3524;
			if (Rotation == 8 && !false) return 3526;
			if (Rotation == 9 && !false) return 3528;
			if (Rotation == 10 && !false) return 3530;
			if (Rotation == 11 && !false) return 3532;
			if (Rotation == 12 && !false) return 3534;
			if (Rotation == 13 && !false) return 3536;
			if (Rotation == 14 && !false) return 3538;
			if (Rotation == 0 && false) return 3509;
			if (Rotation == 1 && false) return 3511;
			if (Rotation == 2 && false) return 3513;
			if (Rotation == 3 && false) return 3515;
			if (Rotation == 4 && false) return 3517;
			if (Rotation == 5 && false) return 3519;
			if (Rotation == 6 && false) return 3521;
			if (Rotation == 7 && false) return 3523;
			if (Rotation == 8 && false) return 3525;
			if (Rotation == 9 && false) return 3527;
			if (Rotation == 10 && false) return 3529;
			if (Rotation == 11 && false) return 3531;
			if (Rotation == 12 && false) return 3533;
			if (Rotation == 13 && false) return 3535;
			if (Rotation == 14 && false) return 3537;
			if (Rotation == 15 && false) return 3539;
			if (Rotation == 0 && !false) return 3510;
			if (Rotation == 1 && !false) return 3512;
			return 3540;
		}
		short JungleSign();
		unsigned char Rotation(short ID);
		bool Waterlogged(short ID);
	}
	namespace JungleSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short JungleSlab(enum Type Type)
		{
			if (Type == Type::Top && false) return 8318;
			if (Type == Type::Double && false) return 8322;
			if (Type == Type::Top && !false) return 8319;
			if (Type == Type::Double && !false) return 8323;
			if (Type == Type::Bottom && false) return 8320;
			return 8321;
		}
		short JungleSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace JungleStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short JungleStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5584;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5585;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5586;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5587;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5588;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5589;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5590;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5591;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5592;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5593;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5594;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5595;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5596;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5597;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5598;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5599;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5600;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5601;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5602;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5603;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5604;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5605;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5606;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5607;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5608;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5609;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5610;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5611;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5612;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5613;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5614;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5615;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5616;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5617;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5618;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5619;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5620;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5621;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5622;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5623;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5624;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5625;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5626;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5627;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5564;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5628;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5565;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5629;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5566;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5630;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5567;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5631;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5568;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5632;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5569;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5633;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5570;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5634;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5571;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5635;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5572;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5636;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5573;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5637;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5574;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5638;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5575;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5639;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5576;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5640;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5577;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5641;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5578;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5642;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5579;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5643;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5580;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5581;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5582;
			return 5583;
		}
		short JungleStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace JungleTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short JungleTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4321;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4337;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4353;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4306;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4322;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4338;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4354;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4307;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4323;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4339;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4355;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4308;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4324;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4340;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4356;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4309;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4325;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4341;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4357;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4310;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4326;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4342;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4358;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4311;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4327;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4343;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4359;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4312;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4328;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4344;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4360;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4313;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4329;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4345;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4361;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4314;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4330;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4346;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4362;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4315;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4331;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4347;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4363;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4316;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4332;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4348;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4364;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4317;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4333;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4349;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4365;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4318;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4334;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4350;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4303;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4319;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4335;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4351;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4304;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4320;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4336;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4352;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4305;
			return 4366;
		}
		short JungleTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
		bool Waterlogged(short ID);
	}
	namespace JungleWallSign
	{
		constexpr short JungleWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 3771;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 3772;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 3773;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 3767;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 3768;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 3769;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 3770;
			return 3774;
		}
		short JungleWallSign();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace JungleWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short JungleWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 118;
			if (Axis == Axis::Y) return 119;
			return 120;
		}
		short JungleWood();
		enum Axis Axis(short ID);
	}
	namespace Kelp
	{
		constexpr short Kelp(unsigned char Age)
		{
			if (Age == 13) return 9483;
			if (Age == 21) return 9491;
			if (Age == 6) return 9476;
			if (Age == 14) return 9484;
			if (Age == 22) return 9492;
			if (Age == 7) return 9477;
			if (Age == 15) return 9485;
			if (Age == 23) return 9493;
			if (Age == 0) return 9470;
			if (Age == 8) return 9478;
			if (Age == 16) return 9486;
			if (Age == 24) return 9494;
			if (Age == 1) return 9471;
			if (Age == 9) return 9479;
			if (Age == 17) return 9487;
			if (Age == 25) return 9495;
			if (Age == 2) return 9472;
			if (Age == 10) return 9480;
			if (Age == 18) return 9488;
			if (Age == 3) return 9473;
			if (Age == 11) return 9481;
			if (Age == 19) return 9489;
			if (Age == 4) return 9474;
			if (Age == 12) return 9482;
			if (Age == 20) return 9490;
			return 9475;
		}
		short Kelp();
		unsigned char Age(short ID);
	}
	namespace KelpPlant
	{
		constexpr short KelpPlant()
		{
			return 9496;
		}
	}
	namespace Ladder
	{
		constexpr short Ladder(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 3638;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 3639;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 3640;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 3641;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 3642;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 3643;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 3637;
			return 3644;
		}
		short Ladder();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace Lantern
	{
		constexpr short Lantern(bool Hanging)
		{
			if (Hanging) return 14886;
			return 14887;
		}
		short Lantern();
		bool Hanging(short ID);
	}
	namespace LapisBlock
	{
		constexpr short LapisBlock()
		{
			return 233;
		}
	}
	namespace LapisOre
	{
		constexpr short LapisOre()
		{
			return 232;
		}
	}
	namespace LargeFern
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short LargeFern(enum Half Half)
		{
			if (Half == Half::Upper) return 7895;
			return 7896;
		}
		short LargeFern();
		enum Half Half(short ID);
	}
	namespace Lava
	{
		constexpr short Lava(unsigned char Level)
		{
			if (Level == 11) return 61;
			if (Level == 13) return 63;
			if (Level == 0) return 50;
			if (Level == 2) return 52;
			if (Level == 4) return 54;
			if (Level == 6) return 56;
			if (Level == 8) return 58;
			if (Level == 10) return 60;
			if (Level == 12) return 62;
			if (Level == 14) return 64;
			if (Level == 1) return 51;
			if (Level == 3) return 53;
			if (Level == 5) return 55;
			if (Level == 7) return 57;
			if (Level == 9) return 59;
			return 65;
		}
		short Lava();
		unsigned char Level(short ID);
	}
	namespace Lectern
	{
		constexpr short Lectern(eBlockFace Facing, bool HasBook, bool Powered)
		{
			if (!HasBook && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14835;
			if (HasBook && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14837;
			if (!HasBook && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14839;
			if (HasBook && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14841;
			if (!HasBook && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14843;
			if (HasBook && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14845;
			if (!HasBook && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14847;
			if (HasBook && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14834;
			if (!HasBook && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14836;
			if (HasBook && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14838;
			if (!HasBook && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 14840;
			if (HasBook && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14842;
			if (!HasBook && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 14844;
			if (HasBook && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 14846;
			if (HasBook && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 14833;
			return 14848;
		}
		short Lectern();
		eBlockFace Facing(short ID);
		bool HasBook(short ID);
		bool Powered(short ID);
	}
	namespace Lever
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short Lever(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3793;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3795;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3797;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3799;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3801;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3803;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3805;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3784;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3786;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3788;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3790;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3792;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3794;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3796;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3798;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3800;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3802;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3804;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3806;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3783;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3785;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3787;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3789;
			return 3791;
		}
		short Lever();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace LightBlueBanner
	{
		constexpr short LightBlueBanner(unsigned char Rotation)
		{
			if (Rotation == 6) return 7951;
			if (Rotation == 7) return 7952;
			if (Rotation == 8) return 7953;
			if (Rotation == 9) return 7954;
			if (Rotation == 10) return 7955;
			if (Rotation == 11) return 7956;
			if (Rotation == 12) return 7957;
			if (Rotation == 13) return 7958;
			if (Rotation == 14) return 7959;
			if (Rotation == 0) return 7945;
			if (Rotation == 1) return 7946;
			if (Rotation == 2) return 7947;
			if (Rotation == 3) return 7948;
			if (Rotation == 4) return 7949;
			if (Rotation == 5) return 7950;
			return 7960;
		}
		short LightBlueBanner();
		unsigned char Rotation(short ID);
	}
	namespace LightBlueBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short LightBlueBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1107;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1111;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1100;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1104;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1108;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1097;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1101;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1105;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1109;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1098;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1102;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1106;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1110;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1099;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1103;
			return 1112;
		}
		short LightBlueBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace LightBlueCarpet
	{
		constexpr short LightBlueCarpet()
		{
			return 7869;
		}
	}
	namespace LightBlueConcrete
	{
		constexpr short LightBlueConcrete()
		{
			return 9441;
		}
	}
	namespace LightBlueConcretePowder
	{
		constexpr short LightBlueConcretePowder()
		{
			return 9457;
		}
	}
	namespace LightBlueGlazedTerracotta
	{
		constexpr short LightBlueGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9387;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9386;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9388;
			return 9389;
		}
		short LightBlueGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace LightBlueShulkerBox
	{
		constexpr short LightBlueShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9298;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9299;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9296;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9300;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9297;
			return 9301;
		}
		short LightBlueShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace LightBlueStainedGlass
	{
		constexpr short LightBlueStainedGlass()
		{
			return 4098;
		}
	}
	namespace LightBlueStainedGlassPane
	{
		constexpr short LightBlueStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (!false && South && !West && East && North) return 6962;
			if (!false && !South && !West && East && North) return 6966;
			if (!false && South && !West && East && !North) return 6970;
			if (!false && !South && !West && East && !North) return 6974;
			if (!false && South && !West && !East && North) return 6978;
			if (!false && !South && !West && !East && North) return 6982;
			if (!false && South && !West && !East && !North) return 6986;
			if (false && South && West && East && North) return 6959;
			if (false && !South && West && East && North) return 6963;
			if (false && South && West && East && !North) return 6967;
			if (false && !South && West && East && !North) return 6971;
			if (false && South && West && !East && North) return 6975;
			if (false && !South && West && !East && North) return 6979;
			if (false && South && West && !East && !North) return 6983;
			if (false && !South && West && !East && !North) return 6987;
			if (false && South && !West && East && North) return 6960;
			if (false && !South && !West && East && North) return 6964;
			if (false && South && !West && East && !North) return 6968;
			if (false && !South && !West && East && !North) return 6972;
			if (false && South && !West && !East && North) return 6976;
			if (false && !South && !West && !East && North) return 6980;
			if (false && South && !West && !East && !North) return 6984;
			if (false && !South && !West && !East && !North) return 6988;
			if (!false && South && West && East && North) return 6961;
			if (!false && !South && West && East && North) return 6965;
			if (!false && South && West && East && !North) return 6969;
			if (!false && !South && West && East && !North) return 6973;
			if (!false && South && West && !East && North) return 6977;
			if (!false && !South && West && !East && North) return 6981;
			if (!false && South && West && !East && !North) return 6985;
			if (!false && !South && West && !East && !North) return 6989;
			return 6990;
		}
		short LightBlueStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace LightBlueTerracotta
	{
		constexpr short LightBlueTerracotta()
		{
			return 6850;
		}
	}
	namespace LightBlueWallBanner
	{
		constexpr short LightBlueWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8167;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8165;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8166;
			return 8168;
		}
		short LightBlueWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace LightBlueWool
	{
		constexpr short LightBlueWool()
		{
			return 1387;
		}
	}
	namespace LightGrayBanner
	{
		constexpr short LightGrayBanner(unsigned char Rotation)
		{
			if (Rotation == 1) return 8026;
			if (Rotation == 2) return 8027;
			if (Rotation == 3) return 8028;
			if (Rotation == 4) return 8029;
			if (Rotation == 5) return 8030;
			if (Rotation == 6) return 8031;
			if (Rotation == 7) return 8032;
			if (Rotation == 8) return 8033;
			if (Rotation == 9) return 8034;
			if (Rotation == 10) return 8035;
			if (Rotation == 11) return 8036;
			if (Rotation == 12) return 8037;
			if (Rotation == 13) return 8038;
			if (Rotation == 14) return 8039;
			if (Rotation == 0) return 8025;
			return 8040;
		}
		short LightGrayBanner();
		unsigned char Rotation(short ID);
	}
	namespace LightGrayBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short LightGrayBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1182;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1186;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1190;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1179;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1183;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1187;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1191;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1180;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1184;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1188;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1177;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1181;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1185;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1189;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1178;
			return 1192;
		}
		short LightGrayBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace LightGrayCarpet
	{
		constexpr short LightGrayCarpet()
		{
			return 7874;
		}
	}
	namespace LightGrayConcrete
	{
		constexpr short LightGrayConcrete()
		{
			return 9446;
		}
	}
	namespace LightGrayConcretePowder
	{
		constexpr short LightGrayConcretePowder()
		{
			return 9462;
		}
	}
	namespace LightGrayGlazedTerracotta
	{
		constexpr short LightGrayGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9408;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9407;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9406;
			return 9409;
		}
		short LightGrayGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace LightGrayShulkerBox
	{
		constexpr short LightGrayShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9326;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9330;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9327;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9331;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9328;
			return 9329;
		}
		short LightGrayShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace LightGrayStainedGlass
	{
		constexpr short LightGrayStainedGlass()
		{
			return 4103;
		}
	}
	namespace LightGrayStainedGlassPane
	{
		constexpr short LightGrayStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (false && !South && !West && !East && !North) return 7148;
			if (!false && South && West && East && North) return 7121;
			if (!false && !South && West && East && North) return 7125;
			if (!false && South && West && East && !North) return 7129;
			if (!false && !South && West && East && !North) return 7133;
			if (!false && South && West && !East && North) return 7137;
			if (!false && !South && West && !East && North) return 7141;
			if (!false && South && West && !East && !North) return 7145;
			if (!false && !South && West && !East && !North) return 7149;
			if (!false && South && !West && East && North) return 7122;
			if (!false && !South && !West && East && North) return 7126;
			if (!false && South && !West && East && !North) return 7130;
			if (!false && !South && !West && East && !North) return 7134;
			if (!false && South && !West && !East && North) return 7138;
			if (!false && !South && !West && !East && North) return 7142;
			if (!false && South && !West && !East && !North) return 7146;
			if (false && South && West && East && North) return 7119;
			if (false && !South && West && East && North) return 7123;
			if (false && South && West && East && !North) return 7127;
			if (false && !South && West && East && !North) return 7131;
			if (false && South && West && !East && North) return 7135;
			if (false && !South && West && !East && North) return 7139;
			if (false && South && West && !East && !North) return 7143;
			if (false && !South && West && !East && !North) return 7147;
			if (false && South && !West && East && North) return 7120;
			if (false && !South && !West && East && North) return 7124;
			if (false && South && !West && East && !North) return 7128;
			if (false && !South && !West && East && !North) return 7132;
			if (false && South && !West && !East && North) return 7136;
			if (false && !South && !West && !East && North) return 7140;
			if (false && South && !West && !East && !North) return 7144;
			return 7150;
		}
		short LightGrayStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace LightGrayTerracotta
	{
		constexpr short LightGrayTerracotta()
		{
			return 6855;
		}
	}
	namespace LightGrayWallBanner
	{
		constexpr short LightGrayWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8185;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8186;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8187;
			return 8188;
		}
		short LightGrayWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace LightGrayWool
	{
		constexpr short LightGrayWool()
		{
			return 1392;
		}
	}
	namespace LightWeightedPressurePlate
	{
		constexpr short LightWeightedPressurePlate(unsigned char Power)
		{
			if (Power == 0) return 6646;
			if (Power == 1) return 6647;
			if (Power == 2) return 6648;
			if (Power == 3) return 6649;
			if (Power == 4) return 6650;
			if (Power == 5) return 6651;
			if (Power == 6) return 6652;
			if (Power == 7) return 6653;
			if (Power == 8) return 6654;
			if (Power == 9) return 6655;
			if (Power == 10) return 6656;
			if (Power == 11) return 6657;
			if (Power == 12) return 6658;
			if (Power == 13) return 6659;
			if (Power == 14) return 6660;
			return 6661;
		}
		short LightWeightedPressurePlate();
		unsigned char Power(short ID);
	}
	namespace Lilac
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short Lilac(enum Half Half)
		{
			if (Half == Half::Upper) return 7887;
			return 7888;
		}
		short Lilac();
		enum Half Half(short ID);
	}
	namespace LilyOfTheValley
	{
		constexpr short LilyOfTheValley()
		{
			return 1424;
		}
	}
	namespace LilyPad
	{
		constexpr short LilyPad()
		{
			return 5014;
		}
	}
	namespace LimeBanner
	{
		constexpr short LimeBanner(unsigned char Rotation)
		{
			if (Rotation == 4) return 7981;
			if (Rotation == 5) return 7982;
			if (Rotation == 6) return 7983;
			if (Rotation == 7) return 7984;
			if (Rotation == 8) return 7985;
			if (Rotation == 9) return 7986;
			if (Rotation == 10) return 7987;
			if (Rotation == 11) return 7988;
			if (Rotation == 12) return 7989;
			if (Rotation == 13) return 7990;
			if (Rotation == 14) return 7991;
			if (Rotation == 0) return 7977;
			if (Rotation == 1) return 7978;
			if (Rotation == 2) return 7979;
			if (Rotation == 3) return 7980;
			return 7992;
		}
		short LimeBanner();
		unsigned char Rotation(short ID);
	}
	namespace LimeBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short LimeBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1137;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1141;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1130;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1134;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1138;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1142;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1131;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1135;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1139;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1143;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1132;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1136;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1140;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1129;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1133;
			return 1144;
		}
		short LimeBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace LimeCarpet
	{
		constexpr short LimeCarpet()
		{
			return 7871;
		}
	}
	namespace LimeConcrete
	{
		constexpr short LimeConcrete()
		{
			return 9443;
		}
	}
	namespace LimeConcretePowder
	{
		constexpr short LimeConcretePowder()
		{
			return 9459;
		}
	}
	namespace LimeGlazedTerracotta
	{
		constexpr short LimeGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9396;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9395;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9394;
			return 9397;
		}
		short LimeGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace LimeShulkerBox
	{
		constexpr short LimeShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9312;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9309;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9313;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9310;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9311;
			return 9308;
		}
		short LimeShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace LimeStainedGlass
	{
		constexpr short LimeStainedGlass()
		{
			return 4100;
		}
	}
	namespace LimeStainedGlassPane
	{
		constexpr short LimeStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (false && South && !West && East && North) return 7024;
			if (false && !South && !West && East && North) return 7028;
			if (false && South && !West && East && !North) return 7032;
			if (false && !South && !West && East && !North) return 7036;
			if (false && South && !West && !East && North) return 7040;
			if (false && !South && !West && !East && North) return 7044;
			if (false && South && !West && !East && !North) return 7048;
			if (false && !South && !West && !East && !North) return 7052;
			if (!false && South && West && East && North) return 7025;
			if (!false && !South && West && East && North) return 7029;
			if (!false && South && West && East && !North) return 7033;
			if (!false && !South && West && East && !North) return 7037;
			if (!false && South && West && !East && North) return 7041;
			if (!false && !South && West && !East && North) return 7045;
			if (!false && South && West && !East && !North) return 7049;
			if (!false && !South && West && !East && !North) return 7053;
			if (!false && South && !West && East && North) return 7026;
			if (!false && !South && !West && East && North) return 7030;
			if (!false && South && !West && East && !North) return 7034;
			if (!false && !South && !West && East && !North) return 7038;
			if (!false && South && !West && !East && North) return 7042;
			if (!false && !South && !West && !East && North) return 7046;
			if (!false && South && !West && !East && !North) return 7050;
			if (false && South && West && East && North) return 7023;
			if (false && !South && West && East && North) return 7027;
			if (false && South && West && East && !North) return 7031;
			if (false && !South && West && East && !North) return 7035;
			if (false && South && West && !East && North) return 7039;
			if (false && !South && West && !East && North) return 7043;
			if (false && South && West && !East && !North) return 7047;
			if (false && !South && West && !East && !North) return 7051;
			return 7054;
		}
		short LimeStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace LimeTerracotta
	{
		constexpr short LimeTerracotta()
		{
			return 6852;
		}
	}
	namespace LimeWallBanner
	{
		constexpr short LimeWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8173;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8174;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8175;
			return 8176;
		}
		short LimeWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace LimeWool
	{
		constexpr short LimeWool()
		{
			return 1389;
		}
	}
	namespace Lodestone
	{
		constexpr short Lodestone()
		{
			return 15838;
		}
	}
	namespace Loom
	{
		constexpr short Loom(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14787;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 14789;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14788;
			return 14790;
		}
		short Loom();
		eBlockFace Facing(short ID);
	}
	namespace MagentaBanner
	{
		constexpr short MagentaBanner(unsigned char Rotation)
		{
			if (Rotation == 7) return 7936;
			if (Rotation == 8) return 7937;
			if (Rotation == 9) return 7938;
			if (Rotation == 10) return 7939;
			if (Rotation == 11) return 7940;
			if (Rotation == 12) return 7941;
			if (Rotation == 13) return 7942;
			if (Rotation == 14) return 7943;
			if (Rotation == 0) return 7929;
			if (Rotation == 1) return 7930;
			if (Rotation == 2) return 7931;
			if (Rotation == 3) return 7932;
			if (Rotation == 4) return 7933;
			if (Rotation == 5) return 7934;
			if (Rotation == 6) return 7935;
			return 7944;
		}
		short MagentaBanner();
		unsigned char Rotation(short ID);
	}
	namespace MagentaBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short MagentaBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1092;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1081;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1085;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1089;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1093;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1082;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1086;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1090;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1094;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1083;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1087;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1091;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1095;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1084;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1088;
			return 1096;
		}
		short MagentaBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace MagentaCarpet
	{
		constexpr short MagentaCarpet()
		{
			return 7868;
		}
	}
	namespace MagentaConcrete
	{
		constexpr short MagentaConcrete()
		{
			return 9440;
		}
	}
	namespace MagentaConcretePowder
	{
		constexpr short MagentaConcretePowder()
		{
			return 9456;
		}
	}
	namespace MagentaGlazedTerracotta
	{
		constexpr short MagentaGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9384;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9383;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9382;
			return 9385;
		}
		short MagentaGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace MagentaShulkerBox
	{
		constexpr short MagentaShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9291;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9295;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9292;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9293;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9290;
			return 9294;
		}
		short MagentaShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace MagentaStainedGlass
	{
		constexpr short MagentaStainedGlass()
		{
			return 4097;
		}
	}
	namespace MagentaStainedGlassPane
	{
		constexpr short MagentaStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (false && !South && West && East && North) return 6931;
			if (false && South && West && East && !North) return 6935;
			if (false && !South && West && East && !North) return 6939;
			if (false && South && West && !East && North) return 6943;
			if (false && !South && West && !East && North) return 6947;
			if (false && South && West && !East && !North) return 6951;
			if (false && !South && West && !East && !North) return 6955;
			if (false && South && !West && East && North) return 6928;
			if (false && !South && !West && East && North) return 6932;
			if (false && South && !West && East && !North) return 6936;
			if (false && !South && !West && East && !North) return 6940;
			if (false && South && !West && !East && North) return 6944;
			if (false && !South && !West && !East && North) return 6948;
			if (false && South && !West && !East && !North) return 6952;
			if (false && !South && !West && !East && !North) return 6956;
			if (!false && South && West && East && North) return 6929;
			if (!false && !South && West && East && North) return 6933;
			if (!false && South && West && East && !North) return 6937;
			if (!false && !South && West && East && !North) return 6941;
			if (!false && South && West && !East && North) return 6945;
			if (!false && !South && West && !East && North) return 6949;
			if (!false && South && West && !East && !North) return 6953;
			if (!false && !South && West && !East && !North) return 6957;
			if (!false && South && !West && East && North) return 6930;
			if (!false && !South && !West && East && North) return 6934;
			if (!false && South && !West && East && !North) return 6938;
			if (!false && !South && !West && East && !North) return 6942;
			if (!false && South && !West && !East && North) return 6946;
			if (!false && !South && !West && !East && North) return 6950;
			if (!false && South && !West && !East && !North) return 6954;
			if (false && South && West && East && North) return 6927;
			return 6958;
		}
		short MagentaStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace MagentaTerracotta
	{
		constexpr short MagentaTerracotta()
		{
			return 6849;
		}
	}
	namespace MagentaWallBanner
	{
		constexpr short MagentaWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8161;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8162;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8163;
			return 8164;
		}
		short MagentaWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace MagentaWool
	{
		constexpr short MagentaWool()
		{
			return 1386;
		}
	}
	namespace MagmaBlock
	{
		constexpr short MagmaBlock()
		{
			return 9253;
		}
	}
	namespace Melon
	{
		constexpr short Melon()
		{
			return 4763;
		}
	}
	namespace MelonStem
	{
		constexpr short MelonStem(unsigned char Age)
		{
			if (Age == 3) return 4783;
			if (Age == 5) return 4785;
			if (Age == 0) return 4780;
			if (Age == 2) return 4782;
			if (Age == 4) return 4784;
			if (Age == 6) return 4786;
			if (Age == 1) return 4781;
			return 4787;
		}
		short MelonStem();
		unsigned char Age(short ID);
	}
	namespace MossyCobblestone
	{
		constexpr short MossyCobblestone()
		{
			return 1433;
		}
	}
	namespace MossyCobblestoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short MossyCobblestoneSlab(enum Type Type)
		{
			if (Type == Type::Double && false) return 10817;
			if (Type == Type::Top && !false) return 10814;
			if (Type == Type::Double && !false) return 10818;
			if (Type == Type::Bottom && false) return 10815;
			if (Type == Type::Bottom && !false) return 10816;
			return 10813;
		}
		short MossyCobblestoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace MossyCobblestoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short MossyCobblestoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9989;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9990;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9991;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9992;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9993;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9994;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9995;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9996;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9997;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9998;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9999;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10000;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10001;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10002;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10003;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10004;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10005;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10006;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10007;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10008;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10009;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10010;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10011;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10012;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10013;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10014;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10015;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10016;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10017;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10018;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10019;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10020;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10021;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10022;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10023;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10024;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10025;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10026;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10027;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10028;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10029;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10030;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10031;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10032;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10033;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10034;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10035;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10036;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10037;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10038;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10039;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10040;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10041;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10042;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10043;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10044;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10045;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10046;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10047;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10048;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10049;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10050;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10051;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10052;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10053;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10054;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10055;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10056;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10057;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10058;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10059;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10060;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10061;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10062;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10063;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10064;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10065;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10066;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10067;
			return 10068;
		}
		short MossyCobblestoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace MossyCobblestoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short MossyCobblestoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 6036;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 6038;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 6040;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 6042;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 6044;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 6046;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 6048;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 6050;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 6052;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 6054;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 6056;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 6058;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 6060;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 6062;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 6064;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 6066;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 6068;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 6070;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 6072;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 6074;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 6076;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 6078;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 6080;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 6082;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 6084;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 6086;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 6088;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 6090;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 6092;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 6094;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 6096;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 6098;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 6100;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 6102;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 6104;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 6106;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 6108;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 6110;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 6112;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 6114;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 6116;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 6118;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 6120;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 6122;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 6124;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 6126;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 6128;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 6130;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 6132;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 6134;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 6136;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 6138;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 6140;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 6142;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 6144;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 6146;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 6148;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 6150;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 6152;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 6154;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 6156;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 6158;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 6160;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 6162;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 6164;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 6166;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 6168;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 6170;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 6172;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 6174;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 6176;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 6178;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 6180;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 6182;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 6184;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 6186;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 6188;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 6190;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 6192;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 6194;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 6196;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 6198;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 6200;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 6202;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 6204;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 6206;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 6208;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 6210;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 6212;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 6214;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 6216;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 6218;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 6220;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 6222;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 6224;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 6226;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 6228;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 6230;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 6232;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 6234;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 6236;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 6238;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 6240;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 6242;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 6244;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 6246;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 6248;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 6250;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 6252;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 6254;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 6256;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 6258;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 6260;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 6262;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 6264;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 6266;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 6268;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 6270;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 6272;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 6274;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 6276;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 6278;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 6280;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 6282;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 6284;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 6286;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 6288;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 6290;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 6292;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 6294;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 6296;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 6298;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 6300;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 6302;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 6304;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 5981;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 5983;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 5985;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 5987;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 5989;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 5991;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 5993;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 5995;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 5997;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 5999;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 6001;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 6003;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 6005;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 6007;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 6009;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 6011;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 6013;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 6015;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 6017;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 6019;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 6021;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 6023;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 6025;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 6027;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 6029;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 6031;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 6033;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 6035;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 6037;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 6039;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 6041;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 6043;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 6045;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 6047;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 6049;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 6051;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 6053;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 6055;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 6057;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 6059;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 6061;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 6063;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 6065;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 6067;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 6069;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 6071;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 6073;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 6075;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 6077;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 6079;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 6081;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 6083;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 6085;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 6087;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 6089;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 6091;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 6093;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 6095;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 6097;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 6099;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 6101;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 6103;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 6105;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 6107;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 6109;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 6111;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 6113;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 6115;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 6117;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 6119;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 6121;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 6123;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 6125;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 6127;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 6129;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 6131;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 6133;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 6135;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 6137;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 6139;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 6141;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 6143;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 6145;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 6147;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 6149;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 6151;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 6153;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 6155;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 6157;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 6159;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 6161;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 6163;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 6165;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 6167;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 6169;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 6171;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 6173;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 6175;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 6177;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 6179;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 6181;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 6183;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 6185;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 6187;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 6189;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 6191;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 6193;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 6195;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 6197;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 6199;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 6201;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 6203;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 6205;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 6207;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 6209;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 6211;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 6213;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 6215;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 6217;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 6219;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 6221;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 6223;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 6225;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 6227;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 6229;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 6231;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 6233;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 6235;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 6237;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 6239;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 6241;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 6243;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 6245;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 6247;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 6249;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 6251;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 6253;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 6255;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 6257;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 6259;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 6261;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 6263;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 6265;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 6267;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 6269;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 6271;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 6273;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 6275;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 6277;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 6279;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 6281;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 6283;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 6285;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 6287;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 6289;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 6291;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 6293;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 6295;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 6297;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 6299;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 6301;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 6303;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 5982;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 5984;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 5986;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 5988;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 5990;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 5992;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 5994;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 5996;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 5998;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 6000;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 6002;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 6004;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 6006;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 6008;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 6010;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 6012;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 6014;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 6016;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 6018;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 6020;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 6022;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 6024;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 6026;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 6028;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 6030;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 6032;
			return 6034;
		}
		short MossyCobblestoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace MossyStoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short MossyStoneBrickSlab(enum Type Type)
		{
			if (Type == Type::Bottom && false) return 10803;
			if (Type == Type::Bottom && !false) return 10804;
			if (Type == Type::Top && false) return 10801;
			if (Type == Type::Double && false) return 10805;
			if (Type == Type::Top && !false) return 10802;
			return 10806;
		}
		short MossyStoneBrickSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace MossyStoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short MossyStoneBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9833;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9834;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9835;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9836;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9837;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9838;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9839;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9840;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9841;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9842;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9843;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9844;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9845;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9846;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9847;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9848;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9849;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9850;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9851;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9852;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9853;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9854;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9855;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9856;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9857;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9858;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9859;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9860;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9861;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9862;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9863;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9864;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9865;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9866;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9867;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9868;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9869;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9870;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9871;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9872;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9873;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9874;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9875;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9876;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9877;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9878;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9879;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9880;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9881;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9882;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9883;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9884;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9885;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9886;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9887;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9888;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9889;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9890;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9891;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9892;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9893;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9894;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9895;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9896;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9897;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9898;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9899;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9900;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9901;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9902;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9903;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9904;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9905;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9906;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9907;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9908;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9829;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9830;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9831;
			return 9832;
		}
		short MossyStoneBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace MossyStoneBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short MossyStoneBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 12056;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 12060;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 12064;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 12068;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 12072;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 12076;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 12080;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 12084;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 12088;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 12092;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12096;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 12100;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 12104;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12108;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 12112;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 12116;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12120;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 12124;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12128;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12132;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12136;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12140;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12144;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12148;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12152;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12156;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12160;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 11841;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 11845;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 11849;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 11853;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 11857;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 11861;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 11865;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 11869;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 11873;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 11877;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 11881;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 11885;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 11889;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 11893;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 11897;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 11901;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 11905;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 11909;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 11913;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 11917;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 11921;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 11925;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 11929;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 11933;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 11937;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 11941;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 11945;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 11949;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 11953;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 11957;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 11961;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 11965;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 11969;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 11973;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 11977;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 11981;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 11985;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 11989;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 11993;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 11997;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 12001;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 12005;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 12009;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 12013;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 12017;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12021;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 12025;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12029;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12033;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 12037;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12041;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12045;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 12049;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12053;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 12057;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 12061;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 12065;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 12069;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 12073;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 12077;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 12081;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 12085;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 12089;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12093;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 12097;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12101;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12105;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 12109;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12113;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12117;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 12121;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12125;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12129;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12133;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12137;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12141;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12145;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12149;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12153;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12157;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12161;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 11842;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 11846;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 11850;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 11854;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 11858;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 11862;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 11866;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 11870;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 11874;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 11878;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 11882;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 11886;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 11890;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 11894;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 11898;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 11902;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 11906;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 11910;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 11914;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 11918;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11922;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 11926;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 11930;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11934;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 11938;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 11942;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11946;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 11950;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 11954;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 11958;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 11962;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 11966;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 11970;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 11974;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 11978;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 11982;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 11986;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 11990;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11994;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 11998;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 12002;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12006;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 12010;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 12014;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12018;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 12022;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12026;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12030;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 12034;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12038;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12042;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 12046;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12050;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12054;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 12058;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 12062;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12066;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 12070;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 12074;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12078;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 12082;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 12086;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12090;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 12094;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12098;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12102;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 12106;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12110;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12114;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 12118;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12122;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12126;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 12130;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12134;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12138;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 12142;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12146;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12150;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 12154;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12158;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12162;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 11839;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 11843;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 11847;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 11851;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 11855;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 11859;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 11863;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 11867;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 11871;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 11875;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 11879;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 11883;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 11887;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 11891;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 11895;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 11899;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 11903;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 11907;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 11911;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 11915;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11919;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 11923;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 11927;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11931;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 11935;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 11939;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11943;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 11947;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 11951;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 11955;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 11959;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 11963;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 11967;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 11971;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 11975;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 11979;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 11983;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 11987;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11991;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 11995;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 11999;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12003;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 12007;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 12011;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12015;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 12019;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 12023;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12027;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 12031;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 12035;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12039;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 12043;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 12047;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12051;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 12055;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 12059;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12063;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 12067;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 12071;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12075;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 12079;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 12083;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12087;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 12091;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 12095;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12099;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 12103;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 12107;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12111;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 12115;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 12119;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12123;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 12127;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12131;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12135;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 12139;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12143;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12147;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 12151;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12155;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12159;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 11840;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 11844;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 11848;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 11852;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 11856;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 11860;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 11864;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 11868;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 11872;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 11876;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 11880;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 11884;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 11888;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 11892;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 11896;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 11900;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 11904;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 11908;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 11912;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 11916;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 11920;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 11924;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 11928;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 11932;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 11936;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 11940;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 11944;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 11948;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 11952;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 11956;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 11960;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 11964;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 11968;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 11972;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 11976;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 11980;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 11984;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 11988;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 11992;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 11996;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 12000;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 12004;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 12008;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 12012;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 12016;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 12020;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12024;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 12028;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 12032;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12036;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 12040;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 12044;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12048;
			return 12052;
		}
		short MossyStoneBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace MossyStoneBricks
	{
		constexpr short MossyStoneBricks()
		{
			return 4496;
		}
	}
	namespace MovingPiston
	{
		enum class Type
		{
			Normal,
			Sticky
		};
		constexpr short MovingPiston(eBlockFace Facing, enum Type Type)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Sticky) return 1407;
			if (Facing == eBlockFace::BLOCK_FACE_YM && Type == Type::Sticky) return 1411;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Normal) return 1400;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Normal) return 1404;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Type == Type::Normal) return 1408;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Type == Type::Sticky) return 1401;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Type == Type::Sticky) return 1405;
			if (Facing == eBlockFace::BLOCK_FACE_YP && Type == Type::Sticky) return 1409;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Type == Type::Normal) return 1402;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Type == Type::Normal) return 1406;
			if (Facing == eBlockFace::BLOCK_FACE_YM && Type == Type::Normal) return 1410;
			return 1403;
		}
		short MovingPiston();
		eBlockFace Facing(short ID);
		enum Type Type(short ID);
	}
	namespace MushroomStem
	{
		constexpr short MushroomStem(bool Down, bool East, bool North, bool South, bool Up, bool West)
		{
			if (!Up && !West && East && South && Down && North) return 4636;
			if (!Up && !West && !East && South && Down && North) return 4652;
			if (!Up && !West && East && South && !Down && North) return 4668;
			if (!Up && !West && !East && South && !Down && North) return 4684;
			if (Up && West && East && !South && Down && North) return 4637;
			if (Up && West && !East && !South && Down && North) return 4653;
			if (Up && West && East && !South && !Down && North) return 4669;
			if (Up && West && !East && !South && !Down && North) return 4685;
			if (Up && !West && East && !South && Down && North) return 4638;
			if (Up && !West && !East && !South && Down && North) return 4654;
			if (Up && !West && East && !South && !Down && North) return 4670;
			if (Up && !West && !East && !South && !Down && North) return 4686;
			if (!Up && West && East && !South && Down && North) return 4639;
			if (!Up && West && !East && !South && Down && North) return 4655;
			if (!Up && West && East && !South && !Down && North) return 4671;
			if (!Up && West && !East && !South && !Down && North) return 4687;
			if (!Up && !West && East && !South && Down && North) return 4640;
			if (!Up && !West && !East && !South && Down && North) return 4656;
			if (!Up && !West && East && !South && !Down && North) return 4672;
			if (!Up && !West && !East && !South && !Down && North) return 4688;
			if (Up && West && East && South && Down && !North) return 4641;
			if (Up && West && !East && South && Down && !North) return 4657;
			if (Up && West && East && South && !Down && !North) return 4673;
			if (Up && West && !East && South && !Down && !North) return 4689;
			if (Up && !West && East && South && Down && !North) return 4642;
			if (Up && !West && !East && South && Down && !North) return 4658;
			if (Up && !West && East && South && !Down && !North) return 4674;
			if (Up && !West && !East && South && !Down && !North) return 4690;
			if (!Up && West && East && South && Down && !North) return 4643;
			if (!Up && West && !East && South && Down && !North) return 4659;
			if (!Up && West && East && South && !Down && !North) return 4675;
			if (!Up && West && !East && South && !Down && !North) return 4691;
			if (!Up && !West && East && South && Down && !North) return 4644;
			if (!Up && !West && !East && South && Down && !North) return 4660;
			if (!Up && !West && East && South && !Down && !North) return 4676;
			if (!Up && !West && !East && South && !Down && !North) return 4692;
			if (Up && West && East && !South && Down && !North) return 4645;
			if (Up && West && !East && !South && Down && !North) return 4661;
			if (Up && West && East && !South && !Down && !North) return 4677;
			if (Up && West && !East && !South && !Down && !North) return 4693;
			if (Up && !West && East && !South && Down && !North) return 4646;
			if (Up && !West && !East && !South && Down && !North) return 4662;
			if (Up && !West && East && !South && !Down && !North) return 4678;
			if (Up && !West && !East && !South && !Down && !North) return 4694;
			if (!Up && West && East && !South && Down && !North) return 4647;
			if (!Up && West && !East && !South && Down && !North) return 4663;
			if (!Up && West && East && !South && !Down && !North) return 4679;
			if (!Up && West && !East && !South && !Down && !North) return 4695;
			if (!Up && !West && East && !South && Down && !North) return 4648;
			if (!Up && !West && !East && !South && Down && !North) return 4664;
			if (!Up && !West && East && !South && !Down && !North) return 4680;
			if (Up && West && East && South && Down && North) return 4633;
			if (Up && West && !East && South && Down && North) return 4649;
			if (Up && West && East && South && !Down && North) return 4665;
			if (Up && West && !East && South && !Down && North) return 4681;
			if (Up && !West && East && South && Down && North) return 4634;
			if (Up && !West && !East && South && Down && North) return 4650;
			if (Up && !West && East && South && !Down && North) return 4666;
			if (Up && !West && !East && South && !Down && North) return 4682;
			if (!Up && West && East && South && Down && North) return 4635;
			if (!Up && West && !East && South && Down && North) return 4651;
			if (!Up && West && East && South && !Down && North) return 4667;
			if (!Up && West && !East && South && !Down && North) return 4683;
			return 4696;
		}
		short MushroomStem();
		bool Down(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace Mycelium
	{
		constexpr short Mycelium(bool Snowy)
		{
			if (Snowy) return 5012;
			return 5013;
		}
		short Mycelium();
		bool Snowy(short ID);
	}
	namespace NetherBrickFence
	{
		constexpr short NetherBrickFence(bool East, bool North, bool South, bool West)
		{
			if (false && South && West && !East && !North) return 5040;
			if (false && !South && West && !East && !North) return 5044;
			if (false && South && !West && East && North) return 5017;
			if (false && !South && !West && East && North) return 5021;
			if (false && South && !West && East && !North) return 5025;
			if (false && !South && !West && East && !North) return 5029;
			if (false && South && !West && !East && North) return 5033;
			if (false && !South && !West && !East && North) return 5037;
			if (false && South && !West && !East && !North) return 5041;
			if (false && !South && !West && !East && !North) return 5045;
			if (!false && South && West && East && North) return 5018;
			if (!false && !South && West && East && North) return 5022;
			if (!false && South && West && East && !North) return 5026;
			if (!false && !South && West && East && !North) return 5030;
			if (!false && South && West && !East && North) return 5034;
			if (!false && !South && West && !East && North) return 5038;
			if (!false && South && West && !East && !North) return 5042;
			if (!false && !South && West && !East && !North) return 5046;
			if (!false && South && !West && East && North) return 5019;
			if (!false && !South && !West && East && North) return 5023;
			if (!false && South && !West && East && !North) return 5027;
			if (!false && !South && !West && East && !North) return 5031;
			if (!false && South && !West && !East && North) return 5035;
			if (!false && !South && !West && !East && North) return 5039;
			if (!false && South && !West && !East && !North) return 5043;
			if (false && South && West && East && North) return 5016;
			if (false && !South && West && East && North) return 5020;
			if (false && South && West && East && !North) return 5024;
			if (false && !South && West && East && !North) return 5028;
			if (false && South && West && !East && North) return 5032;
			if (false && !South && West && !East && North) return 5036;
			return 5047;
		}
		short NetherBrickFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace NetherBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short NetherBrickSlab(enum Type Type)
		{
			if (Type == Type::Double && false) return 8388;
			if (Type == Type::Top && !false) return 8385;
			if (Type == Type::Double && !false) return 8389;
			if (Type == Type::Bottom && false) return 8386;
			if (Type == Type::Bottom && !false) return 8387;
			return 8384;
		}
		short NetherBrickSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace NetherBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short NetherBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5076;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5077;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5078;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5079;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5080;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5081;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5082;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5083;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5084;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5085;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5086;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5087;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5088;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5089;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5090;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5091;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5092;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5093;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5094;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5095;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5096;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5097;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5098;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5099;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5100;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5101;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5102;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5103;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5104;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5105;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5106;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5107;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5108;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5109;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5110;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5111;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5048;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5112;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5049;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5113;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5050;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5114;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5051;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5115;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5052;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5116;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5053;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5117;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5054;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5118;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5055;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5119;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5056;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5120;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5057;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5121;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5058;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5122;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5059;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5123;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5060;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5124;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5061;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5125;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5062;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5126;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5063;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5127;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5064;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5065;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5066;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5067;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5068;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5069;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5070;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5071;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5072;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5073;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5074;
			return 5075;
		}
		short NetherBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace NetherBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short NetherBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 13078;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13082;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13086;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 13090;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13094;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13098;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 13102;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13106;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13110;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 13114;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13118;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13122;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 13126;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13130;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13134;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 12811;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 12815;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 12819;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 12823;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 12827;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 12831;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 12835;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 12839;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 12843;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 12847;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 12851;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 12855;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 12859;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 12863;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 12867;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 12871;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 12875;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 12879;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 12883;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 12887;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12891;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 12895;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 12899;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12903;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 12907;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 12911;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12915;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 12919;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 12923;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 12927;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 12931;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 12935;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 12939;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 12943;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 12947;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 12951;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 12955;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 12959;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12963;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 12967;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 12971;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12975;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 12979;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 12983;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12987;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 12991;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 12995;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12999;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 13003;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 13007;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13011;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 13015;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 13019;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13023;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 13027;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 13031;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13035;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 13039;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 13043;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13047;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 13051;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 13055;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13059;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 13063;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 13067;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13071;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 13075;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 13079;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13083;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 13087;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 13091;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13095;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 13099;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13103;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13107;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 13111;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13115;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13119;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 13123;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13127;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13131;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 12812;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 12816;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 12820;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 12824;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 12828;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 12832;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 12836;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 12840;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 12844;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 12848;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 12852;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 12856;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 12860;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 12864;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 12868;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 12872;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 12876;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 12880;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 12884;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 12888;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 12892;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 12896;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 12900;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 12904;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 12908;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 12912;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 12916;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 12920;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 12924;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 12928;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 12932;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 12936;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 12940;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 12944;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 12948;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 12952;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 12956;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 12960;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 12964;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 12968;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 12972;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 12976;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 12980;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 12984;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 12988;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 12992;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12996;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 13000;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 13004;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13008;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 13012;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 13016;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13020;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 13024;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 13028;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 13032;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 13036;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 13040;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 13044;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 13048;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 13052;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 13056;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 13060;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 13064;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13068;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 13072;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 13076;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13080;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 13084;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 13088;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13092;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 13096;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13100;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13104;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13108;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13112;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13116;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13120;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13124;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13128;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13132;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 12813;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 12817;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 12821;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 12825;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 12829;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 12833;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 12837;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 12841;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 12845;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 12849;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 12853;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 12857;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 12861;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 12865;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 12869;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 12873;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 12877;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 12881;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 12885;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 12889;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 12893;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 12897;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 12901;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 12905;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 12909;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 12913;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 12917;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 12921;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 12925;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 12929;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 12933;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 12937;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 12941;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 12945;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 12949;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 12953;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 12957;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 12961;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 12965;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 12969;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 12973;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 12977;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 12981;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 12985;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 12989;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12993;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 12997;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13001;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13005;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 13009;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13013;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13017;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 13021;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13025;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 13029;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 13033;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 13037;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 13041;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 13045;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 13049;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 13053;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 13057;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 13061;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13065;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 13069;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13073;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13077;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 13081;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13085;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13089;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 13093;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13097;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13101;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13105;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13109;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13113;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13117;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13121;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13125;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13129;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13133;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 12814;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 12818;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 12822;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 12826;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 12830;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 12834;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 12838;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 12842;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 12846;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 12850;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 12854;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 12858;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 12862;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 12866;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 12870;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 12874;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 12878;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 12882;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 12886;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 12890;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12894;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 12898;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 12902;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12906;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 12910;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 12914;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12918;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 12922;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 12926;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 12930;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 12934;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 12938;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 12942;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 12946;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 12950;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 12954;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 12958;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 12962;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12966;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 12970;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 12974;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12978;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 12982;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 12986;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12990;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 12994;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12998;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13002;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 13006;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13010;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13014;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 13018;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13022;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13026;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 13030;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 13034;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13038;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 13042;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 13046;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13050;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 13054;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 13058;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13062;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 13066;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13070;
			return 13074;
		}
		short NetherBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace NetherBricks
	{
		constexpr short NetherBricks()
		{
			return 5015;
		}
	}
	namespace NetherGoldOre
	{
		constexpr short NetherGoldOre()
		{
			return 72;
		}
	}
	namespace NetherPortal
	{
		enum class Axis
		{
			X,
			Z
		};
		constexpr short NetherPortal(enum Axis Axis)
		{
			if (Axis == Axis::X) return 4014;
			return 4015;
		}
		short NetherPortal();
		enum Axis Axis(short ID);
	}
	namespace NetherQuartzOre
	{
		constexpr short NetherQuartzOre()
		{
			return 6727;
		}
	}
	namespace NetherSprouts
	{
		constexpr short NetherSprouts()
		{
			return 14974;
		}
	}
	namespace NetherWart
	{
		constexpr short NetherWart(unsigned char Age)
		{
			if (Age == 0) return 5128;
			if (Age == 1) return 5129;
			if (Age == 2) return 5130;
			return 5131;
		}
		short NetherWart();
		unsigned char Age(short ID);
	}
	namespace NetherWartBlock
	{
		constexpr short NetherWartBlock()
		{
			return 9254;
		}
	}
	namespace NetheriteBlock
	{
		constexpr short NetheriteBlock()
		{
			return 15826;
		}
	}
	namespace Netherrack
	{
		constexpr short Netherrack()
		{
			return 3999;
		}
	}
	namespace NoteBlock
	{
		enum class Instrument
		{
			Harp,
			Basedrum,
			Snare,
			Hat,
			Bass,
			Flute,
			Bell,
			Guitar,
			Chime,
			Xylophone,
			IronXylophone,
			CowBell,
			Didgeridoo,
			Bit,
			Banjo,
			Pling
		};
		constexpr short NoteBlock(enum Instrument Instrument, unsigned char Note, bool Powered)
		{
			if (Instrument == Instrument::Harp && Note == 0 && Powered) return 249;
			if (Instrument == Instrument::Harp && Note == 0 && !Powered) return 250;
			if (Instrument == Instrument::Harp && Note == 1 && Powered) return 251;
			if (Instrument == Instrument::Harp && Note == 1 && !Powered) return 252;
			if (Instrument == Instrument::Harp && Note == 2 && Powered) return 253;
			if (Instrument == Instrument::Harp && Note == 2 && !Powered) return 254;
			if (Instrument == Instrument::Harp && Note == 3 && Powered) return 255;
			if (Instrument == Instrument::Harp && Note == 3 && !Powered) return 256;
			if (Instrument == Instrument::Harp && Note == 4 && Powered) return 257;
			if (Instrument == Instrument::Harp && Note == 4 && !Powered) return 258;
			if (Instrument == Instrument::Harp && Note == 5 && Powered) return 259;
			if (Instrument == Instrument::Harp && Note == 5 && !Powered) return 260;
			if (Instrument == Instrument::Harp && Note == 6 && Powered) return 261;
			if (Instrument == Instrument::Harp && Note == 6 && !Powered) return 262;
			if (Instrument == Instrument::Harp && Note == 7 && Powered) return 263;
			if (Instrument == Instrument::Harp && Note == 7 && !Powered) return 264;
			if (Instrument == Instrument::Harp && Note == 8 && Powered) return 265;
			if (Instrument == Instrument::Harp && Note == 8 && !Powered) return 266;
			if (Instrument == Instrument::Harp && Note == 9 && Powered) return 267;
			if (Instrument == Instrument::Harp && Note == 9 && !Powered) return 268;
			if (Instrument == Instrument::Harp && Note == 10 && Powered) return 269;
			if (Instrument == Instrument::Harp && Note == 10 && !Powered) return 270;
			if (Instrument == Instrument::Harp && Note == 11 && Powered) return 271;
			if (Instrument == Instrument::Harp && Note == 11 && !Powered) return 272;
			if (Instrument == Instrument::Harp && Note == 12 && Powered) return 273;
			if (Instrument == Instrument::Harp && Note == 12 && !Powered) return 274;
			if (Instrument == Instrument::Harp && Note == 13 && Powered) return 275;
			if (Instrument == Instrument::Harp && Note == 13 && !Powered) return 276;
			if (Instrument == Instrument::Harp && Note == 14 && Powered) return 277;
			if (Instrument == Instrument::Harp && Note == 14 && !Powered) return 278;
			if (Instrument == Instrument::Harp && Note == 15 && Powered) return 279;
			if (Instrument == Instrument::Harp && Note == 15 && !Powered) return 280;
			if (Instrument == Instrument::Harp && Note == 16 && Powered) return 281;
			if (Instrument == Instrument::Harp && Note == 16 && !Powered) return 282;
			if (Instrument == Instrument::Harp && Note == 17 && Powered) return 283;
			if (Instrument == Instrument::Harp && Note == 17 && !Powered) return 284;
			if (Instrument == Instrument::Harp && Note == 18 && Powered) return 285;
			if (Instrument == Instrument::Harp && Note == 18 && !Powered) return 286;
			if (Instrument == Instrument::Harp && Note == 19 && Powered) return 287;
			if (Instrument == Instrument::Harp && Note == 19 && !Powered) return 288;
			if (Instrument == Instrument::Harp && Note == 20 && Powered) return 289;
			if (Instrument == Instrument::Harp && Note == 20 && !Powered) return 290;
			if (Instrument == Instrument::Harp && Note == 21 && Powered) return 291;
			if (Instrument == Instrument::Harp && Note == 21 && !Powered) return 292;
			if (Instrument == Instrument::Harp && Note == 22 && Powered) return 293;
			if (Instrument == Instrument::Harp && Note == 22 && !Powered) return 294;
			if (Instrument == Instrument::Harp && Note == 23 && Powered) return 295;
			if (Instrument == Instrument::Harp && Note == 23 && !Powered) return 296;
			if (Instrument == Instrument::Harp && Note == 24 && Powered) return 297;
			if (Instrument == Instrument::Harp && Note == 24 && !Powered) return 298;
			if (Instrument == Instrument::Basedrum && Note == 0 && Powered) return 299;
			if (Instrument == Instrument::Basedrum && Note == 0 && !Powered) return 300;
			if (Instrument == Instrument::Basedrum && Note == 1 && Powered) return 301;
			if (Instrument == Instrument::Basedrum && Note == 1 && !Powered) return 302;
			if (Instrument == Instrument::Basedrum && Note == 2 && Powered) return 303;
			if (Instrument == Instrument::Basedrum && Note == 2 && !Powered) return 304;
			if (Instrument == Instrument::Basedrum && Note == 3 && Powered) return 305;
			if (Instrument == Instrument::Basedrum && Note == 3 && !Powered) return 306;
			if (Instrument == Instrument::Basedrum && Note == 4 && Powered) return 307;
			if (Instrument == Instrument::Basedrum && Note == 4 && !Powered) return 308;
			if (Instrument == Instrument::Basedrum && Note == 5 && Powered) return 309;
			if (Instrument == Instrument::Basedrum && Note == 5 && !Powered) return 310;
			if (Instrument == Instrument::Basedrum && Note == 6 && Powered) return 311;
			if (Instrument == Instrument::Basedrum && Note == 6 && !Powered) return 312;
			if (Instrument == Instrument::Basedrum && Note == 7 && Powered) return 313;
			if (Instrument == Instrument::Basedrum && Note == 7 && !Powered) return 314;
			if (Instrument == Instrument::Basedrum && Note == 8 && Powered) return 315;
			if (Instrument == Instrument::Basedrum && Note == 8 && !Powered) return 316;
			if (Instrument == Instrument::Basedrum && Note == 9 && Powered) return 317;
			if (Instrument == Instrument::Basedrum && Note == 9 && !Powered) return 318;
			if (Instrument == Instrument::Basedrum && Note == 10 && Powered) return 319;
			if (Instrument == Instrument::Basedrum && Note == 10 && !Powered) return 320;
			if (Instrument == Instrument::Basedrum && Note == 11 && Powered) return 321;
			if (Instrument == Instrument::Basedrum && Note == 11 && !Powered) return 322;
			if (Instrument == Instrument::Basedrum && Note == 12 && Powered) return 323;
			if (Instrument == Instrument::Basedrum && Note == 12 && !Powered) return 324;
			if (Instrument == Instrument::Basedrum && Note == 13 && Powered) return 325;
			if (Instrument == Instrument::Basedrum && Note == 13 && !Powered) return 326;
			if (Instrument == Instrument::Basedrum && Note == 14 && Powered) return 327;
			if (Instrument == Instrument::Basedrum && Note == 14 && !Powered) return 328;
			if (Instrument == Instrument::Basedrum && Note == 15 && Powered) return 329;
			if (Instrument == Instrument::Basedrum && Note == 15 && !Powered) return 330;
			if (Instrument == Instrument::Basedrum && Note == 16 && Powered) return 331;
			if (Instrument == Instrument::Basedrum && Note == 16 && !Powered) return 332;
			if (Instrument == Instrument::Basedrum && Note == 17 && Powered) return 333;
			if (Instrument == Instrument::Basedrum && Note == 17 && !Powered) return 334;
			if (Instrument == Instrument::Basedrum && Note == 18 && Powered) return 335;
			if (Instrument == Instrument::Basedrum && Note == 18 && !Powered) return 336;
			if (Instrument == Instrument::Basedrum && Note == 19 && Powered) return 337;
			if (Instrument == Instrument::Basedrum && Note == 19 && !Powered) return 338;
			if (Instrument == Instrument::Basedrum && Note == 20 && Powered) return 339;
			if (Instrument == Instrument::Basedrum && Note == 20 && !Powered) return 340;
			if (Instrument == Instrument::Basedrum && Note == 21 && Powered) return 341;
			if (Instrument == Instrument::Basedrum && Note == 21 && !Powered) return 342;
			if (Instrument == Instrument::Basedrum && Note == 22 && Powered) return 343;
			if (Instrument == Instrument::Basedrum && Note == 22 && !Powered) return 344;
			if (Instrument == Instrument::Basedrum && Note == 23 && Powered) return 345;
			if (Instrument == Instrument::Basedrum && Note == 23 && !Powered) return 346;
			if (Instrument == Instrument::Basedrum && Note == 24 && Powered) return 347;
			if (Instrument == Instrument::Basedrum && Note == 24 && !Powered) return 348;
			if (Instrument == Instrument::Snare && Note == 0 && Powered) return 349;
			if (Instrument == Instrument::Snare && Note == 0 && !Powered) return 350;
			if (Instrument == Instrument::Snare && Note == 1 && Powered) return 351;
			if (Instrument == Instrument::Snare && Note == 1 && !Powered) return 352;
			if (Instrument == Instrument::Snare && Note == 2 && Powered) return 353;
			if (Instrument == Instrument::Snare && Note == 2 && !Powered) return 354;
			if (Instrument == Instrument::Snare && Note == 3 && Powered) return 355;
			if (Instrument == Instrument::Snare && Note == 3 && !Powered) return 356;
			if (Instrument == Instrument::Snare && Note == 4 && Powered) return 357;
			if (Instrument == Instrument::Snare && Note == 4 && !Powered) return 358;
			if (Instrument == Instrument::Snare && Note == 5 && Powered) return 359;
			if (Instrument == Instrument::Snare && Note == 5 && !Powered) return 360;
			if (Instrument == Instrument::Snare && Note == 6 && Powered) return 361;
			if (Instrument == Instrument::Snare && Note == 6 && !Powered) return 362;
			if (Instrument == Instrument::Snare && Note == 7 && Powered) return 363;
			if (Instrument == Instrument::Snare && Note == 7 && !Powered) return 364;
			if (Instrument == Instrument::Snare && Note == 8 && Powered) return 365;
			if (Instrument == Instrument::Snare && Note == 8 && !Powered) return 366;
			if (Instrument == Instrument::Snare && Note == 9 && Powered) return 367;
			if (Instrument == Instrument::Snare && Note == 9 && !Powered) return 368;
			if (Instrument == Instrument::Snare && Note == 10 && Powered) return 369;
			if (Instrument == Instrument::Snare && Note == 10 && !Powered) return 370;
			if (Instrument == Instrument::Snare && Note == 11 && Powered) return 371;
			if (Instrument == Instrument::Snare && Note == 11 && !Powered) return 372;
			if (Instrument == Instrument::Snare && Note == 12 && Powered) return 373;
			if (Instrument == Instrument::Snare && Note == 12 && !Powered) return 374;
			if (Instrument == Instrument::Snare && Note == 13 && Powered) return 375;
			if (Instrument == Instrument::Snare && Note == 13 && !Powered) return 376;
			if (Instrument == Instrument::Snare && Note == 14 && Powered) return 377;
			if (Instrument == Instrument::Snare && Note == 14 && !Powered) return 378;
			if (Instrument == Instrument::Snare && Note == 15 && Powered) return 379;
			if (Instrument == Instrument::Snare && Note == 15 && !Powered) return 380;
			if (Instrument == Instrument::Snare && Note == 16 && Powered) return 381;
			if (Instrument == Instrument::Snare && Note == 16 && !Powered) return 382;
			if (Instrument == Instrument::Snare && Note == 17 && Powered) return 383;
			if (Instrument == Instrument::Snare && Note == 17 && !Powered) return 384;
			if (Instrument == Instrument::Snare && Note == 18 && Powered) return 385;
			if (Instrument == Instrument::Snare && Note == 18 && !Powered) return 386;
			if (Instrument == Instrument::Snare && Note == 19 && Powered) return 387;
			if (Instrument == Instrument::Snare && Note == 19 && !Powered) return 388;
			if (Instrument == Instrument::Snare && Note == 20 && Powered) return 389;
			if (Instrument == Instrument::Snare && Note == 20 && !Powered) return 390;
			if (Instrument == Instrument::Snare && Note == 21 && Powered) return 391;
			if (Instrument == Instrument::Snare && Note == 21 && !Powered) return 392;
			if (Instrument == Instrument::Snare && Note == 22 && Powered) return 393;
			if (Instrument == Instrument::Snare && Note == 22 && !Powered) return 394;
			if (Instrument == Instrument::Snare && Note == 23 && Powered) return 395;
			if (Instrument == Instrument::Snare && Note == 23 && !Powered) return 396;
			if (Instrument == Instrument::Snare && Note == 24 && Powered) return 397;
			if (Instrument == Instrument::Snare && Note == 24 && !Powered) return 398;
			if (Instrument == Instrument::Hat && Note == 0 && Powered) return 399;
			if (Instrument == Instrument::Hat && Note == 0 && !Powered) return 400;
			if (Instrument == Instrument::Hat && Note == 1 && Powered) return 401;
			if (Instrument == Instrument::Hat && Note == 1 && !Powered) return 402;
			if (Instrument == Instrument::Hat && Note == 2 && Powered) return 403;
			if (Instrument == Instrument::Hat && Note == 2 && !Powered) return 404;
			if (Instrument == Instrument::Hat && Note == 3 && Powered) return 405;
			if (Instrument == Instrument::Hat && Note == 3 && !Powered) return 406;
			if (Instrument == Instrument::Hat && Note == 4 && Powered) return 407;
			if (Instrument == Instrument::Hat && Note == 4 && !Powered) return 408;
			if (Instrument == Instrument::Hat && Note == 5 && Powered) return 409;
			if (Instrument == Instrument::Hat && Note == 5 && !Powered) return 410;
			if (Instrument == Instrument::Hat && Note == 6 && Powered) return 411;
			if (Instrument == Instrument::Hat && Note == 6 && !Powered) return 412;
			if (Instrument == Instrument::Hat && Note == 7 && Powered) return 413;
			if (Instrument == Instrument::Hat && Note == 7 && !Powered) return 414;
			if (Instrument == Instrument::Hat && Note == 8 && Powered) return 415;
			if (Instrument == Instrument::Hat && Note == 8 && !Powered) return 416;
			if (Instrument == Instrument::Hat && Note == 9 && Powered) return 417;
			if (Instrument == Instrument::Hat && Note == 9 && !Powered) return 418;
			if (Instrument == Instrument::Hat && Note == 10 && Powered) return 419;
			if (Instrument == Instrument::Hat && Note == 10 && !Powered) return 420;
			if (Instrument == Instrument::Hat && Note == 11 && Powered) return 421;
			if (Instrument == Instrument::Hat && Note == 11 && !Powered) return 422;
			if (Instrument == Instrument::Hat && Note == 12 && Powered) return 423;
			if (Instrument == Instrument::Hat && Note == 12 && !Powered) return 424;
			if (Instrument == Instrument::Hat && Note == 13 && Powered) return 425;
			if (Instrument == Instrument::Hat && Note == 13 && !Powered) return 426;
			if (Instrument == Instrument::Hat && Note == 14 && Powered) return 427;
			if (Instrument == Instrument::Hat && Note == 14 && !Powered) return 428;
			if (Instrument == Instrument::Hat && Note == 15 && Powered) return 429;
			if (Instrument == Instrument::Hat && Note == 15 && !Powered) return 430;
			if (Instrument == Instrument::Hat && Note == 16 && Powered) return 431;
			if (Instrument == Instrument::Hat && Note == 16 && !Powered) return 432;
			if (Instrument == Instrument::Hat && Note == 17 && Powered) return 433;
			if (Instrument == Instrument::Hat && Note == 17 && !Powered) return 434;
			if (Instrument == Instrument::Hat && Note == 18 && Powered) return 435;
			if (Instrument == Instrument::Hat && Note == 18 && !Powered) return 436;
			if (Instrument == Instrument::Hat && Note == 19 && Powered) return 437;
			if (Instrument == Instrument::Hat && Note == 19 && !Powered) return 438;
			if (Instrument == Instrument::Hat && Note == 20 && Powered) return 439;
			if (Instrument == Instrument::Hat && Note == 20 && !Powered) return 440;
			if (Instrument == Instrument::Hat && Note == 21 && Powered) return 441;
			if (Instrument == Instrument::Hat && Note == 21 && !Powered) return 442;
			if (Instrument == Instrument::Hat && Note == 22 && Powered) return 443;
			if (Instrument == Instrument::Hat && Note == 22 && !Powered) return 444;
			if (Instrument == Instrument::Hat && Note == 23 && Powered) return 445;
			if (Instrument == Instrument::Hat && Note == 23 && !Powered) return 446;
			if (Instrument == Instrument::Hat && Note == 24 && Powered) return 447;
			if (Instrument == Instrument::Hat && Note == 24 && !Powered) return 448;
			if (Instrument == Instrument::Bass && Note == 0 && Powered) return 449;
			if (Instrument == Instrument::Bass && Note == 0 && !Powered) return 450;
			if (Instrument == Instrument::Bass && Note == 1 && Powered) return 451;
			if (Instrument == Instrument::Bass && Note == 1 && !Powered) return 452;
			if (Instrument == Instrument::Bass && Note == 2 && Powered) return 453;
			if (Instrument == Instrument::Bass && Note == 2 && !Powered) return 454;
			if (Instrument == Instrument::Bass && Note == 3 && Powered) return 455;
			if (Instrument == Instrument::Bass && Note == 3 && !Powered) return 456;
			if (Instrument == Instrument::Bass && Note == 4 && Powered) return 457;
			if (Instrument == Instrument::Bass && Note == 4 && !Powered) return 458;
			if (Instrument == Instrument::Bass && Note == 5 && Powered) return 459;
			if (Instrument == Instrument::Bass && Note == 5 && !Powered) return 460;
			if (Instrument == Instrument::Bass && Note == 6 && Powered) return 461;
			if (Instrument == Instrument::Bass && Note == 6 && !Powered) return 462;
			if (Instrument == Instrument::Bass && Note == 7 && Powered) return 463;
			if (Instrument == Instrument::Bass && Note == 7 && !Powered) return 464;
			if (Instrument == Instrument::Bass && Note == 8 && Powered) return 465;
			if (Instrument == Instrument::Bass && Note == 8 && !Powered) return 466;
			if (Instrument == Instrument::Bass && Note == 9 && Powered) return 467;
			if (Instrument == Instrument::Bass && Note == 9 && !Powered) return 468;
			if (Instrument == Instrument::Bass && Note == 10 && Powered) return 469;
			if (Instrument == Instrument::Bass && Note == 10 && !Powered) return 470;
			if (Instrument == Instrument::Bass && Note == 11 && Powered) return 471;
			if (Instrument == Instrument::Bass && Note == 11 && !Powered) return 472;
			if (Instrument == Instrument::Bass && Note == 12 && Powered) return 473;
			if (Instrument == Instrument::Bass && Note == 12 && !Powered) return 474;
			if (Instrument == Instrument::Bass && Note == 13 && Powered) return 475;
			if (Instrument == Instrument::Bass && Note == 13 && !Powered) return 476;
			if (Instrument == Instrument::Bass && Note == 14 && Powered) return 477;
			if (Instrument == Instrument::Bass && Note == 14 && !Powered) return 478;
			if (Instrument == Instrument::Bass && Note == 15 && Powered) return 479;
			if (Instrument == Instrument::Bass && Note == 15 && !Powered) return 480;
			if (Instrument == Instrument::Bass && Note == 16 && Powered) return 481;
			if (Instrument == Instrument::Bass && Note == 16 && !Powered) return 482;
			if (Instrument == Instrument::Bass && Note == 17 && Powered) return 483;
			if (Instrument == Instrument::Bass && Note == 17 && !Powered) return 484;
			if (Instrument == Instrument::Bass && Note == 18 && Powered) return 485;
			if (Instrument == Instrument::Bass && Note == 18 && !Powered) return 486;
			if (Instrument == Instrument::Bass && Note == 19 && Powered) return 487;
			if (Instrument == Instrument::Bass && Note == 19 && !Powered) return 488;
			if (Instrument == Instrument::Bass && Note == 20 && Powered) return 489;
			if (Instrument == Instrument::Bass && Note == 20 && !Powered) return 490;
			if (Instrument == Instrument::Bass && Note == 21 && Powered) return 491;
			if (Instrument == Instrument::Bass && Note == 21 && !Powered) return 492;
			if (Instrument == Instrument::Bass && Note == 22 && Powered) return 493;
			if (Instrument == Instrument::Bass && Note == 22 && !Powered) return 494;
			if (Instrument == Instrument::Bass && Note == 23 && Powered) return 495;
			if (Instrument == Instrument::Bass && Note == 23 && !Powered) return 496;
			if (Instrument == Instrument::Bass && Note == 24 && Powered) return 497;
			if (Instrument == Instrument::Bass && Note == 24 && !Powered) return 498;
			if (Instrument == Instrument::Flute && Note == 0 && Powered) return 499;
			if (Instrument == Instrument::Flute && Note == 0 && !Powered) return 500;
			if (Instrument == Instrument::Flute && Note == 1 && Powered) return 501;
			if (Instrument == Instrument::Flute && Note == 1 && !Powered) return 502;
			if (Instrument == Instrument::Flute && Note == 2 && Powered) return 503;
			if (Instrument == Instrument::Flute && Note == 2 && !Powered) return 504;
			if (Instrument == Instrument::Flute && Note == 3 && Powered) return 505;
			if (Instrument == Instrument::Flute && Note == 3 && !Powered) return 506;
			if (Instrument == Instrument::Flute && Note == 4 && Powered) return 507;
			if (Instrument == Instrument::Flute && Note == 4 && !Powered) return 508;
			if (Instrument == Instrument::Flute && Note == 5 && Powered) return 509;
			if (Instrument == Instrument::Flute && Note == 5 && !Powered) return 510;
			if (Instrument == Instrument::Flute && Note == 6 && Powered) return 511;
			if (Instrument == Instrument::Flute && Note == 6 && !Powered) return 512;
			if (Instrument == Instrument::Flute && Note == 7 && Powered) return 513;
			if (Instrument == Instrument::Flute && Note == 7 && !Powered) return 514;
			if (Instrument == Instrument::Flute && Note == 8 && Powered) return 515;
			if (Instrument == Instrument::Flute && Note == 8 && !Powered) return 516;
			if (Instrument == Instrument::Flute && Note == 9 && Powered) return 517;
			if (Instrument == Instrument::Flute && Note == 9 && !Powered) return 518;
			if (Instrument == Instrument::Flute && Note == 10 && Powered) return 519;
			if (Instrument == Instrument::Flute && Note == 10 && !Powered) return 520;
			if (Instrument == Instrument::Flute && Note == 11 && Powered) return 521;
			if (Instrument == Instrument::Flute && Note == 11 && !Powered) return 522;
			if (Instrument == Instrument::Flute && Note == 12 && Powered) return 523;
			if (Instrument == Instrument::Flute && Note == 12 && !Powered) return 524;
			if (Instrument == Instrument::Flute && Note == 13 && Powered) return 525;
			if (Instrument == Instrument::Flute && Note == 13 && !Powered) return 526;
			if (Instrument == Instrument::Flute && Note == 14 && Powered) return 527;
			if (Instrument == Instrument::Flute && Note == 14 && !Powered) return 528;
			if (Instrument == Instrument::Flute && Note == 15 && Powered) return 529;
			if (Instrument == Instrument::Flute && Note == 15 && !Powered) return 530;
			if (Instrument == Instrument::Flute && Note == 16 && Powered) return 531;
			if (Instrument == Instrument::Flute && Note == 16 && !Powered) return 532;
			if (Instrument == Instrument::Flute && Note == 17 && Powered) return 533;
			if (Instrument == Instrument::Flute && Note == 17 && !Powered) return 534;
			if (Instrument == Instrument::Flute && Note == 18 && Powered) return 535;
			if (Instrument == Instrument::Flute && Note == 18 && !Powered) return 536;
			if (Instrument == Instrument::Flute && Note == 19 && Powered) return 537;
			if (Instrument == Instrument::Flute && Note == 19 && !Powered) return 538;
			if (Instrument == Instrument::Flute && Note == 20 && Powered) return 539;
			if (Instrument == Instrument::Flute && Note == 20 && !Powered) return 540;
			if (Instrument == Instrument::Flute && Note == 21 && Powered) return 541;
			if (Instrument == Instrument::Flute && Note == 21 && !Powered) return 542;
			if (Instrument == Instrument::Flute && Note == 22 && Powered) return 543;
			if (Instrument == Instrument::Flute && Note == 22 && !Powered) return 544;
			if (Instrument == Instrument::Flute && Note == 23 && Powered) return 545;
			if (Instrument == Instrument::Flute && Note == 23 && !Powered) return 546;
			if (Instrument == Instrument::Flute && Note == 24 && Powered) return 547;
			if (Instrument == Instrument::Flute && Note == 24 && !Powered) return 548;
			if (Instrument == Instrument::Bell && Note == 0 && Powered) return 549;
			if (Instrument == Instrument::Bell && Note == 0 && !Powered) return 550;
			if (Instrument == Instrument::Bell && Note == 1 && Powered) return 551;
			if (Instrument == Instrument::Bell && Note == 1 && !Powered) return 552;
			if (Instrument == Instrument::Bell && Note == 2 && Powered) return 553;
			if (Instrument == Instrument::Bell && Note == 2 && !Powered) return 554;
			if (Instrument == Instrument::Bell && Note == 3 && Powered) return 555;
			if (Instrument == Instrument::Bell && Note == 3 && !Powered) return 556;
			if (Instrument == Instrument::Bell && Note == 4 && Powered) return 557;
			if (Instrument == Instrument::Bell && Note == 4 && !Powered) return 558;
			if (Instrument == Instrument::Bell && Note == 5 && Powered) return 559;
			if (Instrument == Instrument::Bell && Note == 5 && !Powered) return 560;
			if (Instrument == Instrument::Bell && Note == 6 && Powered) return 561;
			if (Instrument == Instrument::Bell && Note == 6 && !Powered) return 562;
			if (Instrument == Instrument::Bell && Note == 7 && Powered) return 563;
			if (Instrument == Instrument::Bell && Note == 7 && !Powered) return 564;
			if (Instrument == Instrument::Bell && Note == 8 && Powered) return 565;
			if (Instrument == Instrument::Bell && Note == 8 && !Powered) return 566;
			if (Instrument == Instrument::Bell && Note == 9 && Powered) return 567;
			if (Instrument == Instrument::Bell && Note == 9 && !Powered) return 568;
			if (Instrument == Instrument::Bell && Note == 10 && Powered) return 569;
			if (Instrument == Instrument::Bell && Note == 10 && !Powered) return 570;
			if (Instrument == Instrument::Bell && Note == 11 && Powered) return 571;
			if (Instrument == Instrument::Bell && Note == 11 && !Powered) return 572;
			if (Instrument == Instrument::Bell && Note == 12 && Powered) return 573;
			if (Instrument == Instrument::Bell && Note == 12 && !Powered) return 574;
			if (Instrument == Instrument::Bell && Note == 13 && Powered) return 575;
			if (Instrument == Instrument::Bell && Note == 13 && !Powered) return 576;
			if (Instrument == Instrument::Bell && Note == 14 && Powered) return 577;
			if (Instrument == Instrument::Bell && Note == 14 && !Powered) return 578;
			if (Instrument == Instrument::Bell && Note == 15 && Powered) return 579;
			if (Instrument == Instrument::Bell && Note == 15 && !Powered) return 580;
			if (Instrument == Instrument::Bell && Note == 16 && Powered) return 581;
			if (Instrument == Instrument::Bell && Note == 16 && !Powered) return 582;
			if (Instrument == Instrument::Bell && Note == 17 && Powered) return 583;
			if (Instrument == Instrument::Bell && Note == 17 && !Powered) return 584;
			if (Instrument == Instrument::Bell && Note == 18 && Powered) return 585;
			if (Instrument == Instrument::Bell && Note == 18 && !Powered) return 586;
			if (Instrument == Instrument::Bell && Note == 19 && Powered) return 587;
			if (Instrument == Instrument::Bell && Note == 19 && !Powered) return 588;
			if (Instrument == Instrument::Bell && Note == 20 && Powered) return 589;
			if (Instrument == Instrument::Bell && Note == 20 && !Powered) return 590;
			if (Instrument == Instrument::Bell && Note == 21 && Powered) return 591;
			if (Instrument == Instrument::Bell && Note == 21 && !Powered) return 592;
			if (Instrument == Instrument::Bell && Note == 22 && Powered) return 593;
			if (Instrument == Instrument::Bell && Note == 22 && !Powered) return 594;
			if (Instrument == Instrument::Bell && Note == 23 && Powered) return 595;
			if (Instrument == Instrument::Bell && Note == 23 && !Powered) return 596;
			if (Instrument == Instrument::Bell && Note == 24 && Powered) return 597;
			if (Instrument == Instrument::Bell && Note == 24 && !Powered) return 598;
			if (Instrument == Instrument::Guitar && Note == 0 && Powered) return 599;
			if (Instrument == Instrument::Guitar && Note == 0 && !Powered) return 600;
			if (Instrument == Instrument::Guitar && Note == 1 && Powered) return 601;
			if (Instrument == Instrument::Guitar && Note == 1 && !Powered) return 602;
			if (Instrument == Instrument::Guitar && Note == 2 && Powered) return 603;
			if (Instrument == Instrument::Guitar && Note == 2 && !Powered) return 604;
			if (Instrument == Instrument::Guitar && Note == 3 && Powered) return 605;
			if (Instrument == Instrument::Guitar && Note == 3 && !Powered) return 606;
			if (Instrument == Instrument::Guitar && Note == 4 && Powered) return 607;
			if (Instrument == Instrument::Guitar && Note == 4 && !Powered) return 608;
			if (Instrument == Instrument::Guitar && Note == 5 && Powered) return 609;
			if (Instrument == Instrument::Guitar && Note == 5 && !Powered) return 610;
			if (Instrument == Instrument::Guitar && Note == 6 && Powered) return 611;
			if (Instrument == Instrument::Guitar && Note == 6 && !Powered) return 612;
			if (Instrument == Instrument::Guitar && Note == 7 && Powered) return 613;
			if (Instrument == Instrument::Guitar && Note == 7 && !Powered) return 614;
			if (Instrument == Instrument::Guitar && Note == 8 && Powered) return 615;
			if (Instrument == Instrument::Guitar && Note == 8 && !Powered) return 616;
			if (Instrument == Instrument::Guitar && Note == 9 && Powered) return 617;
			if (Instrument == Instrument::Guitar && Note == 9 && !Powered) return 618;
			if (Instrument == Instrument::Guitar && Note == 10 && Powered) return 619;
			if (Instrument == Instrument::Guitar && Note == 10 && !Powered) return 620;
			if (Instrument == Instrument::Guitar && Note == 11 && Powered) return 621;
			if (Instrument == Instrument::Guitar && Note == 11 && !Powered) return 622;
			if (Instrument == Instrument::Guitar && Note == 12 && Powered) return 623;
			if (Instrument == Instrument::Guitar && Note == 12 && !Powered) return 624;
			if (Instrument == Instrument::Guitar && Note == 13 && Powered) return 625;
			if (Instrument == Instrument::Guitar && Note == 13 && !Powered) return 626;
			if (Instrument == Instrument::Guitar && Note == 14 && Powered) return 627;
			if (Instrument == Instrument::Guitar && Note == 14 && !Powered) return 628;
			if (Instrument == Instrument::Guitar && Note == 15 && Powered) return 629;
			if (Instrument == Instrument::Guitar && Note == 15 && !Powered) return 630;
			if (Instrument == Instrument::Guitar && Note == 16 && Powered) return 631;
			if (Instrument == Instrument::Guitar && Note == 16 && !Powered) return 632;
			if (Instrument == Instrument::Guitar && Note == 17 && Powered) return 633;
			if (Instrument == Instrument::Guitar && Note == 17 && !Powered) return 634;
			if (Instrument == Instrument::Guitar && Note == 18 && Powered) return 635;
			if (Instrument == Instrument::Guitar && Note == 18 && !Powered) return 636;
			if (Instrument == Instrument::Guitar && Note == 19 && Powered) return 637;
			if (Instrument == Instrument::Guitar && Note == 19 && !Powered) return 638;
			if (Instrument == Instrument::Guitar && Note == 20 && Powered) return 639;
			if (Instrument == Instrument::Guitar && Note == 20 && !Powered) return 640;
			if (Instrument == Instrument::Guitar && Note == 21 && Powered) return 641;
			if (Instrument == Instrument::Guitar && Note == 21 && !Powered) return 642;
			if (Instrument == Instrument::Guitar && Note == 22 && Powered) return 643;
			if (Instrument == Instrument::Guitar && Note == 22 && !Powered) return 644;
			if (Instrument == Instrument::Guitar && Note == 23 && Powered) return 645;
			if (Instrument == Instrument::Guitar && Note == 23 && !Powered) return 646;
			if (Instrument == Instrument::Guitar && Note == 24 && Powered) return 647;
			if (Instrument == Instrument::Guitar && Note == 24 && !Powered) return 648;
			if (Instrument == Instrument::Chime && Note == 0 && Powered) return 649;
			if (Instrument == Instrument::Chime && Note == 0 && !Powered) return 650;
			if (Instrument == Instrument::Chime && Note == 1 && Powered) return 651;
			if (Instrument == Instrument::Chime && Note == 1 && !Powered) return 652;
			if (Instrument == Instrument::Chime && Note == 2 && Powered) return 653;
			if (Instrument == Instrument::Chime && Note == 2 && !Powered) return 654;
			if (Instrument == Instrument::Chime && Note == 3 && Powered) return 655;
			if (Instrument == Instrument::Chime && Note == 3 && !Powered) return 656;
			if (Instrument == Instrument::Chime && Note == 4 && Powered) return 657;
			if (Instrument == Instrument::Chime && Note == 4 && !Powered) return 658;
			if (Instrument == Instrument::Chime && Note == 5 && Powered) return 659;
			if (Instrument == Instrument::Chime && Note == 5 && !Powered) return 660;
			if (Instrument == Instrument::Chime && Note == 6 && Powered) return 661;
			if (Instrument == Instrument::Chime && Note == 6 && !Powered) return 662;
			if (Instrument == Instrument::Chime && Note == 7 && Powered) return 663;
			if (Instrument == Instrument::Chime && Note == 7 && !Powered) return 664;
			if (Instrument == Instrument::Chime && Note == 8 && Powered) return 665;
			if (Instrument == Instrument::Chime && Note == 8 && !Powered) return 666;
			if (Instrument == Instrument::Chime && Note == 9 && Powered) return 667;
			if (Instrument == Instrument::Chime && Note == 9 && !Powered) return 668;
			if (Instrument == Instrument::Chime && Note == 10 && Powered) return 669;
			if (Instrument == Instrument::Chime && Note == 10 && !Powered) return 670;
			if (Instrument == Instrument::Chime && Note == 11 && Powered) return 671;
			if (Instrument == Instrument::Chime && Note == 11 && !Powered) return 672;
			if (Instrument == Instrument::Chime && Note == 12 && Powered) return 673;
			if (Instrument == Instrument::Chime && Note == 12 && !Powered) return 674;
			if (Instrument == Instrument::Chime && Note == 13 && Powered) return 675;
			if (Instrument == Instrument::Chime && Note == 13 && !Powered) return 676;
			if (Instrument == Instrument::Chime && Note == 14 && Powered) return 677;
			if (Instrument == Instrument::Chime && Note == 14 && !Powered) return 678;
			if (Instrument == Instrument::Chime && Note == 15 && Powered) return 679;
			if (Instrument == Instrument::Chime && Note == 15 && !Powered) return 680;
			if (Instrument == Instrument::Chime && Note == 16 && Powered) return 681;
			if (Instrument == Instrument::Chime && Note == 16 && !Powered) return 682;
			if (Instrument == Instrument::Chime && Note == 17 && Powered) return 683;
			if (Instrument == Instrument::Chime && Note == 17 && !Powered) return 684;
			if (Instrument == Instrument::Chime && Note == 18 && Powered) return 685;
			if (Instrument == Instrument::Chime && Note == 18 && !Powered) return 686;
			if (Instrument == Instrument::Chime && Note == 19 && Powered) return 687;
			if (Instrument == Instrument::Chime && Note == 19 && !Powered) return 688;
			if (Instrument == Instrument::Chime && Note == 20 && Powered) return 689;
			if (Instrument == Instrument::Chime && Note == 20 && !Powered) return 690;
			if (Instrument == Instrument::Chime && Note == 21 && Powered) return 691;
			if (Instrument == Instrument::Chime && Note == 21 && !Powered) return 692;
			if (Instrument == Instrument::Chime && Note == 22 && Powered) return 693;
			if (Instrument == Instrument::Chime && Note == 22 && !Powered) return 694;
			if (Instrument == Instrument::Chime && Note == 23 && Powered) return 695;
			if (Instrument == Instrument::Chime && Note == 23 && !Powered) return 696;
			if (Instrument == Instrument::Chime && Note == 24 && Powered) return 697;
			if (Instrument == Instrument::Chime && Note == 24 && !Powered) return 698;
			if (Instrument == Instrument::Xylophone && Note == 0 && Powered) return 699;
			if (Instrument == Instrument::Xylophone && Note == 0 && !Powered) return 700;
			if (Instrument == Instrument::Xylophone && Note == 1 && Powered) return 701;
			if (Instrument == Instrument::Xylophone && Note == 1 && !Powered) return 702;
			if (Instrument == Instrument::Xylophone && Note == 2 && Powered) return 703;
			if (Instrument == Instrument::Xylophone && Note == 2 && !Powered) return 704;
			if (Instrument == Instrument::Xylophone && Note == 3 && Powered) return 705;
			if (Instrument == Instrument::Xylophone && Note == 3 && !Powered) return 706;
			if (Instrument == Instrument::Xylophone && Note == 4 && Powered) return 707;
			if (Instrument == Instrument::Xylophone && Note == 4 && !Powered) return 708;
			if (Instrument == Instrument::Xylophone && Note == 5 && Powered) return 709;
			if (Instrument == Instrument::Xylophone && Note == 5 && !Powered) return 710;
			if (Instrument == Instrument::Xylophone && Note == 6 && Powered) return 711;
			if (Instrument == Instrument::Xylophone && Note == 6 && !Powered) return 712;
			if (Instrument == Instrument::Xylophone && Note == 7 && Powered) return 713;
			if (Instrument == Instrument::Xylophone && Note == 7 && !Powered) return 714;
			if (Instrument == Instrument::Xylophone && Note == 8 && Powered) return 715;
			if (Instrument == Instrument::Xylophone && Note == 8 && !Powered) return 716;
			if (Instrument == Instrument::Xylophone && Note == 9 && Powered) return 717;
			if (Instrument == Instrument::Xylophone && Note == 9 && !Powered) return 718;
			if (Instrument == Instrument::Xylophone && Note == 10 && Powered) return 719;
			if (Instrument == Instrument::Xylophone && Note == 10 && !Powered) return 720;
			if (Instrument == Instrument::Xylophone && Note == 11 && Powered) return 721;
			if (Instrument == Instrument::Xylophone && Note == 11 && !Powered) return 722;
			if (Instrument == Instrument::Xylophone && Note == 12 && Powered) return 723;
			if (Instrument == Instrument::Xylophone && Note == 12 && !Powered) return 724;
			if (Instrument == Instrument::Xylophone && Note == 13 && Powered) return 725;
			if (Instrument == Instrument::Xylophone && Note == 13 && !Powered) return 726;
			if (Instrument == Instrument::Xylophone && Note == 14 && Powered) return 727;
			if (Instrument == Instrument::Xylophone && Note == 14 && !Powered) return 728;
			if (Instrument == Instrument::Xylophone && Note == 15 && Powered) return 729;
			if (Instrument == Instrument::Xylophone && Note == 15 && !Powered) return 730;
			if (Instrument == Instrument::Xylophone && Note == 16 && Powered) return 731;
			if (Instrument == Instrument::Xylophone && Note == 16 && !Powered) return 732;
			if (Instrument == Instrument::Xylophone && Note == 17 && Powered) return 733;
			if (Instrument == Instrument::Xylophone && Note == 17 && !Powered) return 734;
			if (Instrument == Instrument::Xylophone && Note == 18 && Powered) return 735;
			if (Instrument == Instrument::Xylophone && Note == 18 && !Powered) return 736;
			if (Instrument == Instrument::Xylophone && Note == 19 && Powered) return 737;
			if (Instrument == Instrument::Xylophone && Note == 19 && !Powered) return 738;
			if (Instrument == Instrument::Xylophone && Note == 20 && Powered) return 739;
			if (Instrument == Instrument::Xylophone && Note == 20 && !Powered) return 740;
			if (Instrument == Instrument::Xylophone && Note == 21 && Powered) return 741;
			if (Instrument == Instrument::Xylophone && Note == 21 && !Powered) return 742;
			if (Instrument == Instrument::Xylophone && Note == 22 && Powered) return 743;
			if (Instrument == Instrument::Xylophone && Note == 22 && !Powered) return 744;
			if (Instrument == Instrument::Xylophone && Note == 23 && Powered) return 745;
			if (Instrument == Instrument::Xylophone && Note == 23 && !Powered) return 746;
			if (Instrument == Instrument::Xylophone && Note == 24 && Powered) return 747;
			if (Instrument == Instrument::Xylophone && Note == 24 && !Powered) return 748;
			if (Instrument == Instrument::IronXylophone && Note == 0 && Powered) return 749;
			if (Instrument == Instrument::IronXylophone && Note == 0 && !Powered) return 750;
			if (Instrument == Instrument::IronXylophone && Note == 1 && Powered) return 751;
			if (Instrument == Instrument::IronXylophone && Note == 1 && !Powered) return 752;
			if (Instrument == Instrument::IronXylophone && Note == 2 && Powered) return 753;
			if (Instrument == Instrument::IronXylophone && Note == 2 && !Powered) return 754;
			if (Instrument == Instrument::IronXylophone && Note == 3 && Powered) return 755;
			if (Instrument == Instrument::IronXylophone && Note == 3 && !Powered) return 756;
			if (Instrument == Instrument::IronXylophone && Note == 4 && Powered) return 757;
			if (Instrument == Instrument::IronXylophone && Note == 4 && !Powered) return 758;
			if (Instrument == Instrument::IronXylophone && Note == 5 && Powered) return 759;
			if (Instrument == Instrument::IronXylophone && Note == 5 && !Powered) return 760;
			if (Instrument == Instrument::IronXylophone && Note == 6 && Powered) return 761;
			if (Instrument == Instrument::IronXylophone && Note == 6 && !Powered) return 762;
			if (Instrument == Instrument::IronXylophone && Note == 7 && Powered) return 763;
			if (Instrument == Instrument::IronXylophone && Note == 7 && !Powered) return 764;
			if (Instrument == Instrument::IronXylophone && Note == 8 && Powered) return 765;
			if (Instrument == Instrument::IronXylophone && Note == 8 && !Powered) return 766;
			if (Instrument == Instrument::IronXylophone && Note == 9 && Powered) return 767;
			if (Instrument == Instrument::IronXylophone && Note == 9 && !Powered) return 768;
			if (Instrument == Instrument::IronXylophone && Note == 10 && Powered) return 769;
			if (Instrument == Instrument::IronXylophone && Note == 10 && !Powered) return 770;
			if (Instrument == Instrument::IronXylophone && Note == 11 && Powered) return 771;
			if (Instrument == Instrument::IronXylophone && Note == 11 && !Powered) return 772;
			if (Instrument == Instrument::IronXylophone && Note == 12 && Powered) return 773;
			if (Instrument == Instrument::IronXylophone && Note == 12 && !Powered) return 774;
			if (Instrument == Instrument::IronXylophone && Note == 13 && Powered) return 775;
			if (Instrument == Instrument::IronXylophone && Note == 13 && !Powered) return 776;
			if (Instrument == Instrument::IronXylophone && Note == 14 && Powered) return 777;
			if (Instrument == Instrument::IronXylophone && Note == 14 && !Powered) return 778;
			if (Instrument == Instrument::IronXylophone && Note == 15 && Powered) return 779;
			if (Instrument == Instrument::IronXylophone && Note == 15 && !Powered) return 780;
			if (Instrument == Instrument::IronXylophone && Note == 16 && Powered) return 781;
			if (Instrument == Instrument::IronXylophone && Note == 16 && !Powered) return 782;
			if (Instrument == Instrument::IronXylophone && Note == 17 && Powered) return 783;
			if (Instrument == Instrument::IronXylophone && Note == 17 && !Powered) return 784;
			if (Instrument == Instrument::IronXylophone && Note == 18 && Powered) return 785;
			if (Instrument == Instrument::IronXylophone && Note == 18 && !Powered) return 786;
			if (Instrument == Instrument::IronXylophone && Note == 19 && Powered) return 787;
			if (Instrument == Instrument::IronXylophone && Note == 19 && !Powered) return 788;
			if (Instrument == Instrument::IronXylophone && Note == 20 && Powered) return 789;
			if (Instrument == Instrument::IronXylophone && Note == 20 && !Powered) return 790;
			if (Instrument == Instrument::IronXylophone && Note == 21 && Powered) return 791;
			if (Instrument == Instrument::IronXylophone && Note == 21 && !Powered) return 792;
			if (Instrument == Instrument::IronXylophone && Note == 22 && Powered) return 793;
			if (Instrument == Instrument::IronXylophone && Note == 22 && !Powered) return 794;
			if (Instrument == Instrument::IronXylophone && Note == 23 && Powered) return 795;
			if (Instrument == Instrument::IronXylophone && Note == 23 && !Powered) return 796;
			if (Instrument == Instrument::IronXylophone && Note == 24 && Powered) return 797;
			if (Instrument == Instrument::IronXylophone && Note == 24 && !Powered) return 798;
			if (Instrument == Instrument::CowBell && Note == 0 && Powered) return 799;
			if (Instrument == Instrument::CowBell && Note == 0 && !Powered) return 800;
			if (Instrument == Instrument::CowBell && Note == 1 && Powered) return 801;
			if (Instrument == Instrument::CowBell && Note == 1 && !Powered) return 802;
			if (Instrument == Instrument::CowBell && Note == 2 && Powered) return 803;
			if (Instrument == Instrument::CowBell && Note == 2 && !Powered) return 804;
			if (Instrument == Instrument::CowBell && Note == 3 && Powered) return 805;
			if (Instrument == Instrument::CowBell && Note == 3 && !Powered) return 806;
			if (Instrument == Instrument::CowBell && Note == 4 && Powered) return 807;
			if (Instrument == Instrument::CowBell && Note == 4 && !Powered) return 808;
			if (Instrument == Instrument::CowBell && Note == 5 && Powered) return 809;
			if (Instrument == Instrument::CowBell && Note == 5 && !Powered) return 810;
			if (Instrument == Instrument::CowBell && Note == 6 && Powered) return 811;
			if (Instrument == Instrument::CowBell && Note == 6 && !Powered) return 812;
			if (Instrument == Instrument::CowBell && Note == 7 && Powered) return 813;
			if (Instrument == Instrument::CowBell && Note == 7 && !Powered) return 814;
			if (Instrument == Instrument::CowBell && Note == 8 && Powered) return 815;
			if (Instrument == Instrument::CowBell && Note == 8 && !Powered) return 816;
			if (Instrument == Instrument::CowBell && Note == 9 && Powered) return 817;
			if (Instrument == Instrument::CowBell && Note == 9 && !Powered) return 818;
			if (Instrument == Instrument::CowBell && Note == 10 && Powered) return 819;
			if (Instrument == Instrument::CowBell && Note == 10 && !Powered) return 820;
			if (Instrument == Instrument::CowBell && Note == 11 && Powered) return 821;
			if (Instrument == Instrument::CowBell && Note == 11 && !Powered) return 822;
			if (Instrument == Instrument::CowBell && Note == 12 && Powered) return 823;
			if (Instrument == Instrument::CowBell && Note == 12 && !Powered) return 824;
			if (Instrument == Instrument::CowBell && Note == 13 && Powered) return 825;
			if (Instrument == Instrument::CowBell && Note == 13 && !Powered) return 826;
			if (Instrument == Instrument::CowBell && Note == 14 && Powered) return 827;
			if (Instrument == Instrument::CowBell && Note == 14 && !Powered) return 828;
			if (Instrument == Instrument::CowBell && Note == 15 && Powered) return 829;
			if (Instrument == Instrument::CowBell && Note == 15 && !Powered) return 830;
			if (Instrument == Instrument::CowBell && Note == 16 && Powered) return 831;
			if (Instrument == Instrument::CowBell && Note == 16 && !Powered) return 832;
			if (Instrument == Instrument::CowBell && Note == 17 && Powered) return 833;
			if (Instrument == Instrument::CowBell && Note == 17 && !Powered) return 834;
			if (Instrument == Instrument::CowBell && Note == 18 && Powered) return 835;
			if (Instrument == Instrument::CowBell && Note == 18 && !Powered) return 836;
			if (Instrument == Instrument::CowBell && Note == 19 && Powered) return 837;
			if (Instrument == Instrument::CowBell && Note == 19 && !Powered) return 838;
			if (Instrument == Instrument::CowBell && Note == 20 && Powered) return 839;
			if (Instrument == Instrument::CowBell && Note == 20 && !Powered) return 840;
			if (Instrument == Instrument::CowBell && Note == 21 && Powered) return 841;
			if (Instrument == Instrument::CowBell && Note == 21 && !Powered) return 842;
			if (Instrument == Instrument::CowBell && Note == 22 && Powered) return 843;
			if (Instrument == Instrument::CowBell && Note == 22 && !Powered) return 844;
			if (Instrument == Instrument::CowBell && Note == 23 && Powered) return 845;
			if (Instrument == Instrument::CowBell && Note == 23 && !Powered) return 846;
			if (Instrument == Instrument::CowBell && Note == 24 && Powered) return 847;
			if (Instrument == Instrument::CowBell && Note == 24 && !Powered) return 848;
			if (Instrument == Instrument::Didgeridoo && Note == 0 && Powered) return 849;
			if (Instrument == Instrument::Didgeridoo && Note == 0 && !Powered) return 850;
			if (Instrument == Instrument::Didgeridoo && Note == 1 && Powered) return 851;
			if (Instrument == Instrument::Didgeridoo && Note == 1 && !Powered) return 852;
			if (Instrument == Instrument::Didgeridoo && Note == 2 && Powered) return 853;
			if (Instrument == Instrument::Didgeridoo && Note == 2 && !Powered) return 854;
			if (Instrument == Instrument::Didgeridoo && Note == 3 && Powered) return 855;
			if (Instrument == Instrument::Didgeridoo && Note == 3 && !Powered) return 856;
			if (Instrument == Instrument::Didgeridoo && Note == 4 && Powered) return 857;
			if (Instrument == Instrument::Didgeridoo && Note == 4 && !Powered) return 858;
			if (Instrument == Instrument::Didgeridoo && Note == 5 && Powered) return 859;
			if (Instrument == Instrument::Didgeridoo && Note == 5 && !Powered) return 860;
			if (Instrument == Instrument::Didgeridoo && Note == 6 && Powered) return 861;
			if (Instrument == Instrument::Didgeridoo && Note == 6 && !Powered) return 862;
			if (Instrument == Instrument::Didgeridoo && Note == 7 && Powered) return 863;
			if (Instrument == Instrument::Didgeridoo && Note == 7 && !Powered) return 864;
			if (Instrument == Instrument::Didgeridoo && Note == 8 && Powered) return 865;
			if (Instrument == Instrument::Didgeridoo && Note == 8 && !Powered) return 866;
			if (Instrument == Instrument::Didgeridoo && Note == 9 && Powered) return 867;
			if (Instrument == Instrument::Didgeridoo && Note == 9 && !Powered) return 868;
			if (Instrument == Instrument::Didgeridoo && Note == 10 && Powered) return 869;
			if (Instrument == Instrument::Didgeridoo && Note == 10 && !Powered) return 870;
			if (Instrument == Instrument::Didgeridoo && Note == 11 && Powered) return 871;
			if (Instrument == Instrument::Didgeridoo && Note == 11 && !Powered) return 872;
			if (Instrument == Instrument::Didgeridoo && Note == 12 && Powered) return 873;
			if (Instrument == Instrument::Didgeridoo && Note == 12 && !Powered) return 874;
			if (Instrument == Instrument::Didgeridoo && Note == 13 && Powered) return 875;
			if (Instrument == Instrument::Didgeridoo && Note == 13 && !Powered) return 876;
			if (Instrument == Instrument::Didgeridoo && Note == 14 && Powered) return 877;
			if (Instrument == Instrument::Didgeridoo && Note == 14 && !Powered) return 878;
			if (Instrument == Instrument::Didgeridoo && Note == 15 && Powered) return 879;
			if (Instrument == Instrument::Didgeridoo && Note == 15 && !Powered) return 880;
			if (Instrument == Instrument::Didgeridoo && Note == 16 && Powered) return 881;
			if (Instrument == Instrument::Didgeridoo && Note == 16 && !Powered) return 882;
			if (Instrument == Instrument::Didgeridoo && Note == 17 && Powered) return 883;
			if (Instrument == Instrument::Didgeridoo && Note == 17 && !Powered) return 884;
			if (Instrument == Instrument::Didgeridoo && Note == 18 && Powered) return 885;
			if (Instrument == Instrument::Didgeridoo && Note == 18 && !Powered) return 886;
			if (Instrument == Instrument::Didgeridoo && Note == 19 && Powered) return 887;
			if (Instrument == Instrument::Didgeridoo && Note == 19 && !Powered) return 888;
			if (Instrument == Instrument::Didgeridoo && Note == 20 && Powered) return 889;
			if (Instrument == Instrument::Didgeridoo && Note == 20 && !Powered) return 890;
			if (Instrument == Instrument::Didgeridoo && Note == 21 && Powered) return 891;
			if (Instrument == Instrument::Didgeridoo && Note == 21 && !Powered) return 892;
			if (Instrument == Instrument::Didgeridoo && Note == 22 && Powered) return 893;
			if (Instrument == Instrument::Didgeridoo && Note == 22 && !Powered) return 894;
			if (Instrument == Instrument::Didgeridoo && Note == 23 && Powered) return 895;
			if (Instrument == Instrument::Didgeridoo && Note == 23 && !Powered) return 896;
			if (Instrument == Instrument::Didgeridoo && Note == 24 && Powered) return 897;
			if (Instrument == Instrument::Didgeridoo && Note == 24 && !Powered) return 898;
			if (Instrument == Instrument::Bit && Note == 0 && Powered) return 899;
			if (Instrument == Instrument::Bit && Note == 0 && !Powered) return 900;
			if (Instrument == Instrument::Bit && Note == 1 && Powered) return 901;
			if (Instrument == Instrument::Bit && Note == 1 && !Powered) return 902;
			if (Instrument == Instrument::Bit && Note == 2 && Powered) return 903;
			if (Instrument == Instrument::Bit && Note == 2 && !Powered) return 904;
			if (Instrument == Instrument::Bit && Note == 3 && Powered) return 905;
			if (Instrument == Instrument::Bit && Note == 3 && !Powered) return 906;
			if (Instrument == Instrument::Bit && Note == 4 && Powered) return 907;
			if (Instrument == Instrument::Bit && Note == 4 && !Powered) return 908;
			if (Instrument == Instrument::Bit && Note == 5 && Powered) return 909;
			if (Instrument == Instrument::Bit && Note == 5 && !Powered) return 910;
			if (Instrument == Instrument::Bit && Note == 6 && Powered) return 911;
			if (Instrument == Instrument::Bit && Note == 6 && !Powered) return 912;
			if (Instrument == Instrument::Bit && Note == 7 && Powered) return 913;
			if (Instrument == Instrument::Bit && Note == 7 && !Powered) return 914;
			if (Instrument == Instrument::Bit && Note == 8 && Powered) return 915;
			if (Instrument == Instrument::Bit && Note == 8 && !Powered) return 916;
			if (Instrument == Instrument::Bit && Note == 9 && Powered) return 917;
			if (Instrument == Instrument::Bit && Note == 9 && !Powered) return 918;
			if (Instrument == Instrument::Bit && Note == 10 && Powered) return 919;
			if (Instrument == Instrument::Bit && Note == 10 && !Powered) return 920;
			if (Instrument == Instrument::Bit && Note == 11 && Powered) return 921;
			if (Instrument == Instrument::Bit && Note == 11 && !Powered) return 922;
			if (Instrument == Instrument::Bit && Note == 12 && Powered) return 923;
			if (Instrument == Instrument::Bit && Note == 12 && !Powered) return 924;
			if (Instrument == Instrument::Bit && Note == 13 && Powered) return 925;
			if (Instrument == Instrument::Bit && Note == 13 && !Powered) return 926;
			if (Instrument == Instrument::Bit && Note == 14 && Powered) return 927;
			if (Instrument == Instrument::Bit && Note == 14 && !Powered) return 928;
			if (Instrument == Instrument::Bit && Note == 15 && Powered) return 929;
			if (Instrument == Instrument::Bit && Note == 15 && !Powered) return 930;
			if (Instrument == Instrument::Bit && Note == 16 && Powered) return 931;
			if (Instrument == Instrument::Bit && Note == 16 && !Powered) return 932;
			if (Instrument == Instrument::Bit && Note == 17 && Powered) return 933;
			if (Instrument == Instrument::Bit && Note == 17 && !Powered) return 934;
			if (Instrument == Instrument::Bit && Note == 18 && Powered) return 935;
			if (Instrument == Instrument::Bit && Note == 18 && !Powered) return 936;
			if (Instrument == Instrument::Bit && Note == 19 && Powered) return 937;
			if (Instrument == Instrument::Bit && Note == 19 && !Powered) return 938;
			if (Instrument == Instrument::Bit && Note == 20 && Powered) return 939;
			if (Instrument == Instrument::Bit && Note == 20 && !Powered) return 940;
			if (Instrument == Instrument::Bit && Note == 21 && Powered) return 941;
			if (Instrument == Instrument::Bit && Note == 21 && !Powered) return 942;
			if (Instrument == Instrument::Bit && Note == 22 && Powered) return 943;
			if (Instrument == Instrument::Bit && Note == 22 && !Powered) return 944;
			if (Instrument == Instrument::Bit && Note == 23 && Powered) return 945;
			if (Instrument == Instrument::Bit && Note == 23 && !Powered) return 946;
			if (Instrument == Instrument::Bit && Note == 24 && Powered) return 947;
			if (Instrument == Instrument::Bit && Note == 24 && !Powered) return 948;
			if (Instrument == Instrument::Banjo && Note == 0 && Powered) return 949;
			if (Instrument == Instrument::Banjo && Note == 0 && !Powered) return 950;
			if (Instrument == Instrument::Banjo && Note == 1 && Powered) return 951;
			if (Instrument == Instrument::Banjo && Note == 1 && !Powered) return 952;
			if (Instrument == Instrument::Banjo && Note == 2 && Powered) return 953;
			if (Instrument == Instrument::Banjo && Note == 2 && !Powered) return 954;
			if (Instrument == Instrument::Banjo && Note == 3 && Powered) return 955;
			if (Instrument == Instrument::Banjo && Note == 3 && !Powered) return 956;
			if (Instrument == Instrument::Banjo && Note == 4 && Powered) return 957;
			if (Instrument == Instrument::Banjo && Note == 4 && !Powered) return 958;
			if (Instrument == Instrument::Banjo && Note == 5 && Powered) return 959;
			if (Instrument == Instrument::Banjo && Note == 5 && !Powered) return 960;
			if (Instrument == Instrument::Banjo && Note == 6 && Powered) return 961;
			if (Instrument == Instrument::Banjo && Note == 6 && !Powered) return 962;
			if (Instrument == Instrument::Banjo && Note == 7 && Powered) return 963;
			if (Instrument == Instrument::Banjo && Note == 7 && !Powered) return 964;
			if (Instrument == Instrument::Banjo && Note == 8 && Powered) return 965;
			if (Instrument == Instrument::Banjo && Note == 8 && !Powered) return 966;
			if (Instrument == Instrument::Banjo && Note == 9 && Powered) return 967;
			if (Instrument == Instrument::Banjo && Note == 9 && !Powered) return 968;
			if (Instrument == Instrument::Banjo && Note == 10 && Powered) return 969;
			if (Instrument == Instrument::Banjo && Note == 10 && !Powered) return 970;
			if (Instrument == Instrument::Banjo && Note == 11 && Powered) return 971;
			if (Instrument == Instrument::Banjo && Note == 11 && !Powered) return 972;
			if (Instrument == Instrument::Banjo && Note == 12 && Powered) return 973;
			if (Instrument == Instrument::Banjo && Note == 12 && !Powered) return 974;
			if (Instrument == Instrument::Banjo && Note == 13 && Powered) return 975;
			if (Instrument == Instrument::Banjo && Note == 13 && !Powered) return 976;
			if (Instrument == Instrument::Banjo && Note == 14 && Powered) return 977;
			if (Instrument == Instrument::Banjo && Note == 14 && !Powered) return 978;
			if (Instrument == Instrument::Banjo && Note == 15 && Powered) return 979;
			if (Instrument == Instrument::Banjo && Note == 15 && !Powered) return 980;
			if (Instrument == Instrument::Banjo && Note == 16 && Powered) return 981;
			if (Instrument == Instrument::Banjo && Note == 16 && !Powered) return 982;
			if (Instrument == Instrument::Banjo && Note == 17 && Powered) return 983;
			if (Instrument == Instrument::Banjo && Note == 17 && !Powered) return 984;
			if (Instrument == Instrument::Banjo && Note == 18 && Powered) return 985;
			if (Instrument == Instrument::Banjo && Note == 18 && !Powered) return 986;
			if (Instrument == Instrument::Banjo && Note == 19 && Powered) return 987;
			if (Instrument == Instrument::Banjo && Note == 19 && !Powered) return 988;
			if (Instrument == Instrument::Banjo && Note == 20 && Powered) return 989;
			if (Instrument == Instrument::Banjo && Note == 20 && !Powered) return 990;
			if (Instrument == Instrument::Banjo && Note == 21 && Powered) return 991;
			if (Instrument == Instrument::Banjo && Note == 21 && !Powered) return 992;
			if (Instrument == Instrument::Banjo && Note == 22 && Powered) return 993;
			if (Instrument == Instrument::Banjo && Note == 22 && !Powered) return 994;
			if (Instrument == Instrument::Banjo && Note == 23 && Powered) return 995;
			if (Instrument == Instrument::Banjo && Note == 23 && !Powered) return 996;
			if (Instrument == Instrument::Banjo && Note == 24 && Powered) return 997;
			if (Instrument == Instrument::Banjo && Note == 24 && !Powered) return 998;
			if (Instrument == Instrument::Pling && Note == 0 && Powered) return 999;
			if (Instrument == Instrument::Pling && Note == 0 && !Powered) return 1000;
			if (Instrument == Instrument::Pling && Note == 1 && Powered) return 1001;
			if (Instrument == Instrument::Pling && Note == 1 && !Powered) return 1002;
			if (Instrument == Instrument::Pling && Note == 2 && Powered) return 1003;
			if (Instrument == Instrument::Pling && Note == 2 && !Powered) return 1004;
			if (Instrument == Instrument::Pling && Note == 3 && Powered) return 1005;
			if (Instrument == Instrument::Pling && Note == 3 && !Powered) return 1006;
			if (Instrument == Instrument::Pling && Note == 4 && Powered) return 1007;
			if (Instrument == Instrument::Pling && Note == 4 && !Powered) return 1008;
			if (Instrument == Instrument::Pling && Note == 5 && Powered) return 1009;
			if (Instrument == Instrument::Pling && Note == 5 && !Powered) return 1010;
			if (Instrument == Instrument::Pling && Note == 6 && Powered) return 1011;
			if (Instrument == Instrument::Pling && Note == 6 && !Powered) return 1012;
			if (Instrument == Instrument::Pling && Note == 7 && Powered) return 1013;
			if (Instrument == Instrument::Pling && Note == 7 && !Powered) return 1014;
			if (Instrument == Instrument::Pling && Note == 8 && Powered) return 1015;
			if (Instrument == Instrument::Pling && Note == 8 && !Powered) return 1016;
			if (Instrument == Instrument::Pling && Note == 9 && Powered) return 1017;
			if (Instrument == Instrument::Pling && Note == 9 && !Powered) return 1018;
			if (Instrument == Instrument::Pling && Note == 10 && Powered) return 1019;
			if (Instrument == Instrument::Pling && Note == 10 && !Powered) return 1020;
			if (Instrument == Instrument::Pling && Note == 11 && Powered) return 1021;
			if (Instrument == Instrument::Pling && Note == 11 && !Powered) return 1022;
			if (Instrument == Instrument::Pling && Note == 12 && Powered) return 1023;
			if (Instrument == Instrument::Pling && Note == 12 && !Powered) return 1024;
			if (Instrument == Instrument::Pling && Note == 23 && Powered) return 1045;
			if (Instrument == Instrument::Pling && Note == 23 && !Powered) return 1046;
			if (Instrument == Instrument::Pling && Note == 24 && Powered) return 1047;
			if (Instrument == Instrument::Pling && Note == 24 && !Powered) return 1048;
			if (Instrument == Instrument::Pling && Note == 13 && Powered) return 1025;
			if (Instrument == Instrument::Pling && Note == 13 && !Powered) return 1026;
			if (Instrument == Instrument::Pling && Note == 14 && Powered) return 1027;
			if (Instrument == Instrument::Pling && Note == 14 && !Powered) return 1028;
			if (Instrument == Instrument::Pling && Note == 15 && Powered) return 1029;
			if (Instrument == Instrument::Pling && Note == 15 && !Powered) return 1030;
			if (Instrument == Instrument::Pling && Note == 16 && Powered) return 1031;
			if (Instrument == Instrument::Pling && Note == 16 && !Powered) return 1032;
			if (Instrument == Instrument::Pling && Note == 17 && Powered) return 1033;
			if (Instrument == Instrument::Pling && Note == 17 && !Powered) return 1034;
			if (Instrument == Instrument::Pling && Note == 18 && Powered) return 1035;
			if (Instrument == Instrument::Pling && Note == 18 && !Powered) return 1036;
			if (Instrument == Instrument::Pling && Note == 19 && Powered) return 1037;
			if (Instrument == Instrument::Pling && Note == 19 && !Powered) return 1038;
			if (Instrument == Instrument::Pling && Note == 20 && Powered) return 1039;
			if (Instrument == Instrument::Pling && Note == 20 && !Powered) return 1040;
			if (Instrument == Instrument::Pling && Note == 21 && Powered) return 1041;
			if (Instrument == Instrument::Pling && Note == 21 && !Powered) return 1042;
			if (Instrument == Instrument::Pling && Note == 22 && Powered) return 1043;
			return 1044;
		}
		short NoteBlock();
		enum Instrument Instrument(short ID);
		unsigned char Note(short ID);
		bool Powered(short ID);
	}
	namespace OakButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short OakButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6346;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6350;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6354;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6358;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6362;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6366;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6347;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6351;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6355;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6359;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6363;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6367;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6348;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6352;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6356;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6360;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6364;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6368;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6349;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6353;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6357;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6361;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6365;
			return 6369;
		}
		short OakButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace OakDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short OakDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 3610;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 3618;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 3626;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 3634;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 3579;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 3587;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 3595;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 3603;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 3611;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 3619;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 3627;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 3635;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 3580;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 3588;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 3596;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 3604;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 3612;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 3620;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Right) return 3628;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 3573;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 3581;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 3589;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 3597;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 3605;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 3613;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 3621;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 3629;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 3574;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 3582;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 3590;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 3598;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 3606;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 3614;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 3622;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 3630;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 3575;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 3583;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 3591;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 3599;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 3607;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 3615;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 3623;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 3631;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 3576;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 3584;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 3592;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 3600;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 3608;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 3616;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 3624;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 3632;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 3577;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 3585;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 3593;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 3601;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 3609;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 3617;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 3625;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 3633;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 3578;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 3586;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 3594;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 3602;
			return 3636;
		}
		short OakDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace OakFence
	{
		constexpr short OakFence(bool East, bool North, bool South, bool West)
		{
			if (false && !South && !West && East && !North) return 3979;
			if (!false && !South && !West && East && !North) return 3981;
			if (false && South && !West && !East && North) return 3983;
			if (!false && South && !West && !East && North) return 3985;
			if (false && !South && !West && !East && North) return 3987;
			if (!false && !South && !West && !East && North) return 3989;
			if (false && South && !West && !East && !North) return 3991;
			if (!false && South && !West && !East && !North) return 3993;
			if (false && !South && !West && !East && !North) return 3995;
			if (false && South && West && East && North) return 3966;
			if (!false && South && West && East && North) return 3968;
			if (false && !South && West && East && North) return 3970;
			if (!false && !South && West && East && North) return 3972;
			if (false && South && West && East && !North) return 3974;
			if (!false && South && West && East && !North) return 3976;
			if (false && !South && West && East && !North) return 3978;
			if (!false && !South && West && East && !North) return 3980;
			if (false && South && West && !East && North) return 3982;
			if (!false && South && West && !East && North) return 3984;
			if (false && !South && West && !East && North) return 3986;
			if (!false && !South && West && !East && North) return 3988;
			if (false && South && West && !East && !North) return 3990;
			if (!false && South && West && !East && !North) return 3992;
			if (false && !South && West && !East && !North) return 3994;
			if (!false && !South && West && !East && !North) return 3996;
			if (false && South && !West && East && North) return 3967;
			if (!false && South && !West && East && North) return 3969;
			if (false && !South && !West && East && North) return 3971;
			if (!false && !South && !West && East && North) return 3973;
			if (false && South && !West && East && !North) return 3975;
			if (!false && South && !West && East && !North) return 3977;
			return 3997;
		}
		short OakFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace OakFenceGate
	{
		constexpr short OakFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 4823;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 4827;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 4831;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 4835;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 4839;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 4843;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 4847;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 4820;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 4824;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 4828;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 4832;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 4836;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 4840;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 4844;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 4848;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 4821;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 4825;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 4829;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 4833;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 4837;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 4841;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 4845;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 4849;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 4822;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 4826;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 4830;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 4834;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 4838;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 4842;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 4846;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 4850;
			return 4851;
		}
		short OakFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace OakLeaves
	{
		constexpr short OakLeaves(unsigned char Distance, bool Persistent)
		{
			if (Persistent && Distance == 5) return 153;
			if (!Persistent && Distance == 1) return 146;
			if (!Persistent && Distance == 5) return 154;
			if (Persistent && Distance == 2) return 147;
			if (Persistent && Distance == 6) return 155;
			if (!Persistent && Distance == 2) return 148;
			if (!Persistent && Distance == 6) return 156;
			if (Persistent && Distance == 3) return 149;
			if (Persistent && Distance == 7) return 157;
			if (!Persistent && Distance == 3) return 150;
			if (!Persistent && Distance == 7) return 158;
			if (Persistent && Distance == 4) return 151;
			if (!Persistent && Distance == 4) return 152;
			return 145;
		}
		short OakLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace OakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short OakLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 73;
			if (Axis == Axis::Y) return 74;
			return 75;
		}
		short OakLog();
		enum Axis Axis(short ID);
	}
	namespace OakPlanks
	{
		constexpr short OakPlanks()
		{
			return 15;
		}
	}
	namespace OakPressurePlate
	{
		constexpr short OakPressurePlate(bool Powered)
		{
			if (Powered) return 3873;
			return 3874;
		}
		short OakPressurePlate();
		bool Powered(short ID);
	}
	namespace OakSapling
	{
		constexpr short OakSapling(unsigned char Stage)
		{
			if (Stage == 0) return 21;
			return 22;
		}
		short OakSapling();
		unsigned char Stage(short ID);
	}
	namespace OakSign
	{
		constexpr short OakSign(unsigned char Rotation)
		{
			if (Rotation == 4 && !false) return 3390;
			if (Rotation == 5 && !false) return 3392;
			if (Rotation == 6 && !false) return 3394;
			if (Rotation == 7 && !false) return 3396;
			if (Rotation == 8 && !false) return 3398;
			if (Rotation == 9 && !false) return 3400;
			if (Rotation == 10 && !false) return 3402;
			if (Rotation == 11 && !false) return 3404;
			if (Rotation == 12 && !false) return 3406;
			if (Rotation == 13 && !false) return 3408;
			if (Rotation == 14 && !false) return 3410;
			if (Rotation == 0 && false) return 3381;
			if (Rotation == 1 && false) return 3383;
			if (Rotation == 2 && false) return 3385;
			if (Rotation == 3 && false) return 3387;
			if (Rotation == 4 && false) return 3389;
			if (Rotation == 5 && false) return 3391;
			if (Rotation == 6 && false) return 3393;
			if (Rotation == 7 && false) return 3395;
			if (Rotation == 8 && false) return 3397;
			if (Rotation == 9 && false) return 3399;
			if (Rotation == 10 && false) return 3401;
			if (Rotation == 11 && false) return 3403;
			if (Rotation == 12 && false) return 3405;
			if (Rotation == 13 && false) return 3407;
			if (Rotation == 14 && false) return 3409;
			if (Rotation == 15 && false) return 3411;
			if (Rotation == 0 && !false) return 3382;
			if (Rotation == 1 && !false) return 3384;
			if (Rotation == 2 && !false) return 3386;
			if (Rotation == 3 && !false) return 3388;
			return 3412;
		}
		short OakSign();
		unsigned char Rotation(short ID);
		bool Waterlogged(short ID);
	}
	namespace OakSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short OakSlab(enum Type Type)
		{
			if (Type == Type::Double && false) return 8304;
			if (Type == Type::Top && !false) return 8301;
			if (Type == Type::Double && !false) return 8305;
			if (Type == Type::Bottom && false) return 8302;
			if (Type == Type::Bottom && !false) return 8303;
			return 8300;
		}
		short OakSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace OakStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short OakStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 2031;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1968;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1984;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 2000;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 2016;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 2032;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1969;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1985;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 2001;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 2017;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 2033;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1954;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 1970;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 1986;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 2002;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 2018;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1955;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 1971;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 1987;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 2003;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 2019;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 1956;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1972;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1988;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 2004;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 2020;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 1957;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1973;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1989;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 2005;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 2021;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1958;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1974;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 1990;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 2006;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 2022;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1959;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1975;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 1991;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 2007;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 2023;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 1960;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 1976;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1992;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 2008;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 2024;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 1961;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 1977;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1993;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 2009;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 2025;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1962;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1978;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 1994;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 2010;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 2026;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1963;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1979;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 1995;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 2011;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 2027;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1964;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 1980;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 1996;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 2012;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 2028;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 1965;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 1981;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 1997;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 2013;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 2029;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 1966;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1982;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 1998;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 2014;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 2030;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 1967;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 1983;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 1999;
			return 2015;
		}
		short OakStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace OakTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short OakTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4132;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4148;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4164;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4117;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4133;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4149;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4165;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4118;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4134;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4150;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4166;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4119;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4135;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4151;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4167;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4120;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4136;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4152;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4168;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4121;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4137;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4153;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4169;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4122;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4138;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4154;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4170;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4123;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4139;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4155;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4171;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4124;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4140;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4156;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4172;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4125;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4141;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4157;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4173;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4126;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4142;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4158;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4111;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4127;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4143;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4159;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4112;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4128;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4144;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4160;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4113;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4129;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4145;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4161;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4114;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4130;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4146;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4162;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4115;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4131;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4147;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4163;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4116;
			return 4174;
		}
		short OakTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
		bool Waterlogged(short ID);
	}
	namespace OakWallSign
	{
		constexpr short OakWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 3736;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 3737;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 3738;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 3739;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 3740;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 3741;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 3735;
			return 3742;
		}
		short OakWallSign();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace OakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short OakWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 109;
			if (Axis == Axis::Y) return 110;
			return 111;
		}
		short OakWood();
		enum Axis Axis(short ID);
	}
	namespace Observer
	{
		constexpr short Observer(eBlockFace Facing, bool Powered)
		{
			if (Facing == eBlockFace::BLOCK_FACE_YM && Powered) return 9270;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Powered) return 9261;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !Powered) return 9263;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Powered) return 9265;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Powered) return 9267;
			if (Facing == eBlockFace::BLOCK_FACE_YP && !Powered) return 9269;
			if (Facing == eBlockFace::BLOCK_FACE_YM && !Powered) return 9271;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Powered) return 9260;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Powered) return 9262;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Powered) return 9264;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Powered) return 9266;
			return 9268;
		}
		short Observer();
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace Obsidian
	{
		constexpr short Obsidian()
		{
			return 1434;
		}
	}
	namespace OrangeBanner
	{
		constexpr short OrangeBanner(unsigned char Rotation)
		{
			if (Rotation == 8) return 7921;
			if (Rotation == 9) return 7922;
			if (Rotation == 10) return 7923;
			if (Rotation == 11) return 7924;
			if (Rotation == 12) return 7925;
			if (Rotation == 13) return 7926;
			if (Rotation == 14) return 7927;
			if (Rotation == 0) return 7913;
			if (Rotation == 1) return 7914;
			if (Rotation == 2) return 7915;
			if (Rotation == 3) return 7916;
			if (Rotation == 4) return 7917;
			if (Rotation == 5) return 7918;
			if (Rotation == 6) return 7919;
			if (Rotation == 7) return 7920;
			return 7928;
		}
		short OrangeBanner();
		unsigned char Rotation(short ID);
	}
	namespace OrangeBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short OrangeBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1077;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1066;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1070;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1074;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1078;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1067;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1071;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1075;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1079;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1068;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1072;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1076;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1065;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1069;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1073;
			return 1080;
		}
		short OrangeBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace OrangeCarpet
	{
		constexpr short OrangeCarpet()
		{
			return 7867;
		}
	}
	namespace OrangeConcrete
	{
		constexpr short OrangeConcrete()
		{
			return 9439;
		}
	}
	namespace OrangeConcretePowder
	{
		constexpr short OrangeConcretePowder()
		{
			return 9455;
		}
	}
	namespace OrangeGlazedTerracotta
	{
		constexpr short OrangeGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9378;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9380;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9379;
			return 9381;
		}
		short OrangeGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace OrangeShulkerBox
	{
		constexpr short OrangeShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9284;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9288;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9285;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9289;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9286;
			return 9287;
		}
		short OrangeShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace OrangeStainedGlass
	{
		constexpr short OrangeStainedGlass()
		{
			return 4096;
		}
	}
	namespace OrangeStainedGlassPane
	{
		constexpr short OrangeStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (false && !South && !West && East && North) return 6900;
			if (false && South && !West && East && !North) return 6904;
			if (false && !South && !West && East && !North) return 6908;
			if (false && South && !West && !East && North) return 6912;
			if (false && !South && !West && !East && North) return 6916;
			if (false && South && !West && !East && !North) return 6920;
			if (false && !South && !West && !East && !North) return 6924;
			if (!false && South && West && East && North) return 6897;
			if (!false && !South && West && East && North) return 6901;
			if (!false && South && West && East && !North) return 6905;
			if (!false && !South && West && East && !North) return 6909;
			if (!false && South && West && !East && North) return 6913;
			if (!false && !South && West && !East && North) return 6917;
			if (!false && South && West && !East && !North) return 6921;
			if (!false && !South && West && !East && !North) return 6925;
			if (!false && South && !West && East && North) return 6898;
			if (!false && !South && !West && East && North) return 6902;
			if (!false && South && !West && East && !North) return 6906;
			if (!false && !South && !West && East && !North) return 6910;
			if (!false && South && !West && !East && North) return 6914;
			if (!false && !South && !West && !East && North) return 6918;
			if (!false && South && !West && !East && !North) return 6922;
			if (false && South && West && East && North) return 6895;
			if (false && !South && West && East && North) return 6899;
			if (false && South && West && East && !North) return 6903;
			if (false && !South && West && East && !North) return 6907;
			if (false && South && West && !East && North) return 6911;
			if (false && !South && West && !East && North) return 6915;
			if (false && South && West && !East && !North) return 6919;
			if (false && !South && West && !East && !North) return 6923;
			if (false && South && !West && East && North) return 6896;
			return 6926;
		}
		short OrangeStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace OrangeTerracotta
	{
		constexpr short OrangeTerracotta()
		{
			return 6848;
		}
	}
	namespace OrangeTulip
	{
		constexpr short OrangeTulip()
		{
			return 1418;
		}
	}
	namespace OrangeWallBanner
	{
		constexpr short OrangeWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8158;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8159;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8157;
			return 8160;
		}
		short OrangeWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace OrangeWool
	{
		constexpr short OrangeWool()
		{
			return 1385;
		}
	}
	namespace OxeyeDaisy
	{
		constexpr short OxeyeDaisy()
		{
			return 1421;
		}
	}
	namespace PackedIce
	{
		constexpr short PackedIce()
		{
			return 7884;
		}
	}
	namespace Peony
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short Peony(enum Half Half)
		{
			if (Half == Half::Upper) return 7891;
			return 7892;
		}
		short Peony();
		enum Half Half(short ID);
	}
	namespace PetrifiedOakSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PetrifiedOakSlab(enum Type Type)
		{
			if (Type == Type::Top && false) return 8360;
			if (Type == Type::Double && false) return 8364;
			if (Type == Type::Top && !false) return 8361;
			if (Type == Type::Double && !false) return 8365;
			if (Type == Type::Bottom && false) return 8362;
			return 8363;
		}
		short PetrifiedOakSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace PinkBanner
	{
		constexpr short PinkBanner(unsigned char Rotation)
		{
			if (Rotation == 3) return 7996;
			if (Rotation == 4) return 7997;
			if (Rotation == 5) return 7998;
			if (Rotation == 6) return 7999;
			if (Rotation == 7) return 8000;
			if (Rotation == 8) return 8001;
			if (Rotation == 9) return 8002;
			if (Rotation == 10) return 8003;
			if (Rotation == 11) return 8004;
			if (Rotation == 12) return 8005;
			if (Rotation == 13) return 8006;
			if (Rotation == 14) return 8007;
			if (Rotation == 0) return 7993;
			if (Rotation == 1) return 7994;
			if (Rotation == 2) return 7995;
			return 8008;
		}
		short PinkBanner();
		unsigned char Rotation(short ID);
	}
	namespace PinkBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short PinkBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1152;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1156;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1145;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1149;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1153;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1157;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1146;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1150;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1154;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1158;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1147;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1151;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1155;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1159;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1148;
			return 1160;
		}
		short PinkBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace PinkCarpet
	{
		constexpr short PinkCarpet()
		{
			return 7872;
		}
	}
	namespace PinkConcrete
	{
		constexpr short PinkConcrete()
		{
			return 9444;
		}
	}
	namespace PinkConcretePowder
	{
		constexpr short PinkConcretePowder()
		{
			return 9460;
		}
	}
	namespace PinkGlazedTerracotta
	{
		constexpr short PinkGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9399;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9398;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9400;
			return 9401;
		}
		short PinkGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace PinkShulkerBox
	{
		constexpr short PinkShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9319;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9316;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9317;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9314;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9318;
			return 9315;
		}
		short PinkShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace PinkStainedGlass
	{
		constexpr short PinkStainedGlass()
		{
			return 4101;
		}
	}
	namespace PinkStainedGlassPane
	{
		constexpr short PinkStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (false && South && West && East && North) return 7055;
			if (false && !South && West && East && North) return 7059;
			if (false && South && West && East && !North) return 7063;
			if (false && !South && West && East && !North) return 7067;
			if (false && South && West && !East && North) return 7071;
			if (false && !South && West && !East && North) return 7075;
			if (false && South && West && !East && !North) return 7079;
			if (false && !South && West && !East && !North) return 7083;
			if (false && South && !West && East && North) return 7056;
			if (false && !South && !West && East && North) return 7060;
			if (false && South && !West && East && !North) return 7064;
			if (false && !South && !West && East && !North) return 7068;
			if (false && South && !West && !East && North) return 7072;
			if (false && !South && !West && !East && North) return 7076;
			if (false && South && !West && !East && !North) return 7080;
			if (false && !South && !West && !East && !North) return 7084;
			if (!false && South && West && East && North) return 7057;
			if (!false && !South && West && East && North) return 7061;
			if (!false && South && West && East && !North) return 7065;
			if (!false && !South && West && East && !North) return 7069;
			if (!false && South && West && !East && North) return 7073;
			if (!false && !South && West && !East && North) return 7077;
			if (!false && South && West && !East && !North) return 7081;
			if (!false && !South && West && !East && !North) return 7085;
			if (!false && South && !West && East && North) return 7058;
			if (!false && !South && !West && East && North) return 7062;
			if (!false && South && !West && East && !North) return 7066;
			if (!false && !South && !West && East && !North) return 7070;
			if (!false && South && !West && !East && North) return 7074;
			if (!false && !South && !West && !East && North) return 7078;
			if (!false && South && !West && !East && !North) return 7082;
			return 7086;
		}
		short PinkStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace PinkTerracotta
	{
		constexpr short PinkTerracotta()
		{
			return 6853;
		}
	}
	namespace PinkTulip
	{
		constexpr short PinkTulip()
		{
			return 1420;
		}
	}
	namespace PinkWallBanner
	{
		constexpr short PinkWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8179;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8177;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8178;
			return 8180;
		}
		short PinkWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace PinkWool
	{
		constexpr short PinkWool()
		{
			return 1390;
		}
	}
	namespace Piston
	{
		constexpr short Piston(bool Extended, eBlockFace Facing)
		{
			if (Extended && Facing == eBlockFace::BLOCK_FACE_XM) return 1351;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_XP) return 1355;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_YM) return 1359;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_ZM) return 1348;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_YP) return 1352;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_ZP) return 1356;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_XP) return 1349;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_YM) return 1353;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_XM) return 1357;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_ZP) return 1350;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_ZM) return 1354;
			return 1358;
		}
		short Piston();
		bool Extended(short ID);
		eBlockFace Facing(short ID);
	}
	namespace PistonHead
	{
		enum class Type
		{
			Normal,
			Sticky
		};
		constexpr short PistonHead(eBlockFace Facing, bool Short, enum Type Type)
		{
			if (Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_ZM) return 1360;
			if (Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_ZM) return 1361;
			if (!Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_ZM) return 1362;
			if (!Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_ZM) return 1363;
			if (Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_XP) return 1364;
			if (Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_XP) return 1365;
			if (!Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_XP) return 1366;
			if (!Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_XP) return 1367;
			if (Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_ZP) return 1368;
			if (Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_ZP) return 1369;
			if (!Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_ZP) return 1370;
			if (!Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_ZP) return 1371;
			if (Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_XM) return 1372;
			if (Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_XM) return 1373;
			if (!Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_XM) return 1374;
			if (!Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_XM) return 1375;
			if (Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_YP) return 1376;
			if (Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_YP) return 1377;
			if (!Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_YP) return 1378;
			if (!Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_YP) return 1379;
			if (Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_YM) return 1380;
			if (Short && Type == Type::Sticky && Facing == eBlockFace::BLOCK_FACE_YM) return 1381;
			if (!Short && Type == Type::Normal && Facing == eBlockFace::BLOCK_FACE_YM) return 1382;
			return 1383;
		}
		short PistonHead();
		eBlockFace Facing(short ID);
		bool Short(short ID);
		enum Type Type(short ID);
	}
	namespace PlayerHead
	{
		constexpr short PlayerHead(unsigned char Rotation)
		{
			if (Rotation == 6) return 6556;
			if (Rotation == 7) return 6557;
			if (Rotation == 8) return 6558;
			if (Rotation == 9) return 6559;
			if (Rotation == 10) return 6560;
			if (Rotation == 11) return 6561;
			if (Rotation == 12) return 6562;
			if (Rotation == 13) return 6563;
			if (Rotation == 14) return 6564;
			if (Rotation == 0) return 6550;
			if (Rotation == 1) return 6551;
			if (Rotation == 2) return 6552;
			if (Rotation == 3) return 6553;
			if (Rotation == 4) return 6554;
			if (Rotation == 5) return 6555;
			return 6565;
		}
		short PlayerHead();
		unsigned char Rotation(short ID);
	}
	namespace PlayerWallHead
	{
		constexpr short PlayerWallHead(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6568;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6566;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6567;
			return 6569;
		}
		short PlayerWallHead();
		eBlockFace Facing(short ID);
	}
	namespace Podzol
	{
		constexpr short Podzol(bool Snowy)
		{
			if (Snowy) return 12;
			return 13;
		}
		short Podzol();
		bool Snowy(short ID);
	}
	namespace PolishedAndesite
	{
		constexpr short PolishedAndesite()
		{
			return 7;
		}
	}
	namespace PolishedAndesiteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedAndesiteSlab(enum Type Type)
		{
			if (Type == Type::Double && false) return 10859;
			if (Type == Type::Top && !false) return 10856;
			if (Type == Type::Double && !false) return 10860;
			if (Type == Type::Bottom && false) return 10857;
			if (Type == Type::Bottom && !false) return 10858;
			return 10855;
		}
		short PolishedAndesiteSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace PolishedAndesiteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedAndesiteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10629;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10630;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10631;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10632;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10633;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10634;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10635;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10636;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10637;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10638;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10639;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10640;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10641;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10642;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10643;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10644;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10645;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10646;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10647;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10648;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10649;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10650;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10651;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10652;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10653;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10654;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10655;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10656;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10657;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10658;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10659;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10660;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10661;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10662;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10663;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10664;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10665;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10666;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10667;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10668;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10669;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10670;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10671;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10672;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10673;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10674;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10675;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10676;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10677;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10678;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10679;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10680;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10681;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10682;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10683;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10684;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10685;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10686;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10687;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10688;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10689;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10690;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10691;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10692;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10693;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10694;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10695;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10696;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10697;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10698;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10699;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10700;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10701;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10702;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10703;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10704;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10705;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10706;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10707;
			return 10708;
		}
		short PolishedAndesiteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace PolishedBasalt
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short PolishedBasalt(enum Axis Axis)
		{
			if (Axis == Axis::Y) return 4006;
			if (Axis == Axis::X) return 4005;
			return 4007;
		}
		short PolishedBasalt();
		enum Axis Axis(short ID);
	}
	namespace PolishedBlackstone
	{
		constexpr short PolishedBlackstone()
		{
			return 16250;
		}
	}
	namespace PolishedBlackstoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedBlackstoneBrickSlab(enum Type Type)
		{
			if (Type == Type::Bottom && false) return 16256;
			if (Type == Type::Bottom && !false) return 16257;
			if (Type == Type::Top && false) return 16254;
			if (Type == Type::Double && false) return 16258;
			if (Type == Type::Top && !false) return 16255;
			return 16259;
		}
		short PolishedBlackstoneBrickSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace PolishedBlackstoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedBlackstoneBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 16310;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 16311;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16312;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16313;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16314;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16315;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16316;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16317;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16318;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16319;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 16320;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 16321;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16322;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16323;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16324;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16325;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16326;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16327;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16328;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16329;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 16330;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 16331;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16332;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16333;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16334;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16335;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16336;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16337;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16338;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16339;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16260;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16261;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16262;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16263;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16264;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16265;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16266;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16267;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16268;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16269;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16270;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16271;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16272;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16273;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16274;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16275;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16276;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16277;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16278;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16279;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16280;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16281;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16282;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16283;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16284;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16285;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16286;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16287;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16288;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16289;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16290;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16291;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16292;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16293;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16294;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16295;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16296;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16297;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16298;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16299;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 16300;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 16301;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16302;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16303;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16304;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16305;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16306;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16307;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16308;
			return 16309;
		}
		short PolishedBlackstoneBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace PolishedBlackstoneBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short PolishedBlackstoneBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 16415;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16423;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 16431;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 16439;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16447;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 16455;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 16463;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 16471;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 16479;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 16487;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16495;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 16503;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 16511;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16519;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16527;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 16535;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16543;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16551;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 16559;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16567;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 16575;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 16583;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16591;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16599;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 16607;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16615;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16623;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 16631;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16639;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16647;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 16655;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16663;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 16340;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 16344;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 16348;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 16352;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 16356;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 16360;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 16364;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 16368;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 16372;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 16376;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 16380;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 16384;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 16392;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 16400;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 16408;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 16416;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 16424;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16432;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 16440;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 16448;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 16456;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 16464;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 16472;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 16480;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 16488;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 16496;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16504;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 16512;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 16520;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16528;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 16536;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 16544;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16552;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 16560;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 16568;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16576;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 16584;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 16592;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16600;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 16608;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 16616;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16624;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16632;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 16640;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16648;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16656;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 16385;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 16393;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 16401;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 16409;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 16417;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 16425;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 16433;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 16441;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 16449;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 16457;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 16465;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 16473;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 16481;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 16489;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 16497;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 16505;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 16513;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 16521;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 16529;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16537;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 16545;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 16553;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 16561;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 16569;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 16577;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 16585;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 16593;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 16601;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16609;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 16617;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 16625;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16633;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16641;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16649;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16657;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 16341;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 16345;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 16349;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 16353;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 16357;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 16361;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 16365;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 16369;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 16373;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 16377;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 16381;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 16386;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 16394;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 16402;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 16410;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 16418;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 16426;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 16434;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 16442;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 16450;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 16458;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 16466;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 16474;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 16482;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 16490;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 16498;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 16506;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 16514;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16522;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16530;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 16538;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16546;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16554;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 16562;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 16570;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 16578;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 16586;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16594;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16602;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 16610;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16618;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16626;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16634;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16642;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16650;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16658;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 16387;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 16395;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 16403;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 16411;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 16419;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 16427;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16435;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 16443;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 16451;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 16459;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 16467;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 16475;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 16483;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 16491;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 16499;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16507;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 16515;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 16523;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16531;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16539;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 16547;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16555;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 16563;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 16571;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16579;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 16587;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 16595;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16603;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16611;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 16619;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16627;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16635;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 16643;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16651;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16659;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 16342;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 16346;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 16350;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 16354;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 16358;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 16362;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 16366;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 16370;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 16374;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 16378;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 16382;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 16388;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 16396;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 16404;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 16412;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16420;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 16428;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 16436;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16444;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 16452;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 16460;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 16468;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 16476;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 16484;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16492;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 16500;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 16508;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16516;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 16524;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 16532;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16540;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 16548;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 16556;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16564;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 16572;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 16580;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 16588;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 16596;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 16604;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 16612;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 16620;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 16628;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16636;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16644;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 16652;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 16660;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 16389;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 16397;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 16405;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 16413;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 16421;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 16429;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 16437;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 16445;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 16453;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 16461;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 16469;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 16477;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 16485;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 16493;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 16501;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 16509;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 16517;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16525;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 16533;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 16541;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16549;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 16557;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 16565;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 16573;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 16581;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 16589;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16597;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 16605;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 16613;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16621;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16629;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16637;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16645;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 16653;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16661;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 16343;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 16347;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 16351;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 16355;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 16359;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 16363;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 16367;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 16371;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 16375;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 16379;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 16383;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 16390;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 16398;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 16406;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 16414;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 16422;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 16430;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 16438;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 16446;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 16454;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 16462;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 16470;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 16478;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 16486;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 16494;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 16502;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 16510;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 16518;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 16526;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16534;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16542;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 16550;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 16558;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 16566;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 16574;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 16582;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 16590;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 16598;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 16606;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 16614;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 16622;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16630;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16638;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 16646;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 16654;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 16662;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 16391;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 16399;
			return 16407;
		}
		short PolishedBlackstoneBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace PolishedBlackstoneBricks
	{
		constexpr short PolishedBlackstoneBricks()
		{
			return 16251;
		}
	}
	namespace PolishedBlackstoneButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short PolishedBlackstoneButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 16765;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 16766;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 16767;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 16768;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 16753;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 16769;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 16754;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 16770;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 16755;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 16771;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 16756;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 16772;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 16757;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 16773;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 16758;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 16774;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 16759;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 16775;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 16760;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 16776;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 16761;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 16762;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 16763;
			return 16764;
		}
		short PolishedBlackstoneButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace PolishedBlackstonePressurePlate
	{
		constexpr short PolishedBlackstonePressurePlate(bool Powered)
		{
			if (Powered) return 16751;
			return 16752;
		}
		short PolishedBlackstonePressurePlate();
		bool Powered(short ID);
	}
	namespace PolishedBlackstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedBlackstoneSlab(enum Type Type)
		{
			if (Type == Type::Top && false) return 16745;
			if (Type == Type::Top && !false) return 16746;
			if (Type == Type::Bottom && false) return 16747;
			if (Type == Type::Bottom && !false) return 16748;
			if (Type == Type::Double && false) return 16749;
			return 16750;
		}
		short PolishedBlackstoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace PolishedBlackstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedBlackstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16744;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16665;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16667;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16669;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16671;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16673;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16675;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16677;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16679;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16681;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16683;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16685;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16687;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16689;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16691;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16693;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16695;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16697;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16699;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16701;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16703;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 16705;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16707;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16709;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16711;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16713;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 16715;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16717;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16719;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16721;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16723;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 16725;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16727;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16729;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16731;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16733;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 16735;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16737;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16739;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16741;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16743;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16666;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16668;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16670;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16672;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16674;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16676;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16678;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16680;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 16682;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 16684;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16686;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16688;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16690;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16692;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16694;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16696;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16698;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16700;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 16702;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 16704;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 16706;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16708;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16710;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16712;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16714;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 16716;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16718;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16720;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 16722;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 16724;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 16726;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16728;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16730;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16732;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16734;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 16736;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 16738;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 16740;
			return 16742;
		}
		short PolishedBlackstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace PolishedBlackstoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short PolishedBlackstoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 16926;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 16934;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 16942;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 16950;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 16958;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 16966;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16974;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 16982;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 16990;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 16998;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 17006;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 17014;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 17022;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 17030;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 17038;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 17046;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 17054;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 17062;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 17070;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 17078;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 17086;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 17094;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 16783;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 16791;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 16799;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 16807;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 16815;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 16823;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 16831;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 16839;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 16847;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 16855;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 16863;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 16871;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 16879;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 16887;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 16895;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 16903;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 16911;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 16919;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 16927;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 16935;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 16943;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 16951;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16959;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16967;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 16975;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16983;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16991;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 16999;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 17007;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 17015;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 17023;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 17031;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 17039;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 17047;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 17055;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 17063;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 17071;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 17079;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 17087;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 17095;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 16784;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 16792;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 16800;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 16808;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 16816;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 16824;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 16832;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 16840;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 16848;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 16856;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 16864;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16872;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 16880;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 16888;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 16896;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 16904;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 16912;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 16920;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 16928;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 16936;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16944;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 16952;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 16960;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16968;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16976;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 16984;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16992;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 17000;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 17008;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 17016;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 17024;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 17032;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 17040;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 17048;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 17056;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 17064;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 17072;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 17080;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 17088;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 17096;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 16777;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 16785;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 16793;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 16801;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 16809;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 16817;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 16825;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 16833;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 16841;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 16849;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16857;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 16865;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 16873;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16881;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 16889;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 16897;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 16905;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 16913;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 16921;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16929;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 16937;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 16945;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16953;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 16961;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 16969;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16977;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 16985;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 16993;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 17001;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 17009;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 17017;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 17025;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 17033;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 17041;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 17049;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 17057;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 17065;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 17073;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 17081;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 17089;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 17097;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 16778;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 16786;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 16794;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 16802;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 16810;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 16818;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 16826;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 16834;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 16842;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 16850;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 16858;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 16866;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 16874;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 16882;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 16890;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 16898;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 16906;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 16914;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 16922;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 16930;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 16938;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 16946;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 16954;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16962;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 16970;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 16978;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16986;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 16994;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 17002;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 17010;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 17018;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 17026;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 17034;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 17042;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 17050;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 17058;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 17066;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 17074;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 17082;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 17090;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 17098;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 16779;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 16787;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 16795;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 16803;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 16811;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 16819;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 16827;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 16835;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 16843;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 16851;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 16859;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 16867;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 16875;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 16883;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 16891;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 16899;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 16907;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 16915;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 16923;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 16931;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 16939;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 16947;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 16955;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 16963;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 16971;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16979;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 16987;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 16995;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 17003;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 17011;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 17019;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 17027;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 17035;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 17043;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 17051;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 17059;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 17067;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 17075;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 17083;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 17091;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 17099;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 16780;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 16788;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 16796;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 16804;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 16812;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 16820;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 16828;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 16836;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 16844;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 16852;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16860;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 16868;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 16876;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16884;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 16892;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 16900;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 16908;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 16916;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 16924;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16932;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 16940;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 16948;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16956;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16964;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 16972;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16980;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 16988;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 16996;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 17004;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 17012;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 17020;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 17028;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 17036;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 17044;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 17052;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 17060;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 17068;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 17076;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 17084;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 17092;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 17100;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 16781;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 16789;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 16797;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 16805;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 16813;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 16821;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 16829;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 16837;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 16845;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 16853;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 16861;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 16869;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 16877;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 16885;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 16893;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 16901;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 16909;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 16917;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 16925;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 16933;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 16941;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 16949;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 16957;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16965;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 16973;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 16981;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 16989;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 16997;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 17005;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 17013;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 17021;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 17029;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 17037;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 17045;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 17053;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 17061;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 17069;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 17077;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 17085;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 17093;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 16782;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 16790;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 16798;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 16806;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 16814;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 16822;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 16830;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 16838;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 16846;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 16854;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 16862;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 16870;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 16878;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 16886;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 16894;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 16902;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 16910;
			return 16918;
		}
		short PolishedBlackstoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace PolishedDiorite
	{
		constexpr short PolishedDiorite()
		{
			return 5;
		}
	}
	namespace PolishedDioriteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedDioriteSlab(enum Type Type)
		{
			if (Type == Type::Bottom && !false) return 10810;
			if (Type == Type::Top && false) return 10807;
			if (Type == Type::Double && false) return 10811;
			if (Type == Type::Top && !false) return 10808;
			if (Type == Type::Double && !false) return 10812;
			return 10809;
		}
		short PolishedDioriteSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace PolishedDioriteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedDioriteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9960;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9961;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9962;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9963;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9964;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9965;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9966;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9967;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9968;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9969;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9970;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9971;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9972;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9973;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9974;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9975;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9976;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9977;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9978;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9979;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9980;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9981;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9982;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9983;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9984;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9985;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9986;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9987;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9988;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9909;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9910;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9911;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9912;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9913;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9914;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9915;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9916;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9917;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9918;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9919;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9920;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9921;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9922;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9923;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9924;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9925;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9926;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9927;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9928;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9929;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9930;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9931;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9932;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9933;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9934;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9935;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9936;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9937;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9938;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9939;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9940;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9941;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9942;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9943;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9944;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9945;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9946;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9947;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9948;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9949;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9950;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9951;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9952;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9953;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9954;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9955;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9956;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9957;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9958;
			return 9959;
		}
		short PolishedDioriteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace PolishedGranite
	{
		constexpr short PolishedGranite()
		{
			return 3;
		}
	}
	namespace PolishedGraniteSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PolishedGraniteSlab(enum Type Type)
		{
			if (Type == Type::Top && false) return 10789;
			if (Type == Type::Double && false) return 10793;
			if (Type == Type::Top && !false) return 10790;
			if (Type == Type::Double && !false) return 10794;
			if (Type == Type::Bottom && false) return 10791;
			return 10792;
		}
		short PolishedGraniteSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace PolishedGraniteStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PolishedGraniteStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9706;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9707;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9708;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9709;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9710;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9711;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9712;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9713;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9714;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9715;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9716;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9717;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9718;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9719;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9720;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9721;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9722;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9723;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9724;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9725;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9726;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9727;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9728;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9729;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9730;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9731;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9732;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9733;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9734;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9735;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9736;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9737;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9738;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9739;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9740;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9741;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9742;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9743;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9744;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9745;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9746;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9747;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9748;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9669;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9670;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9671;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9672;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9673;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9674;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9675;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9676;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9677;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9678;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9679;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9680;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9681;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9682;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9683;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9684;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9685;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9686;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9687;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9688;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9689;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9690;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9691;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9692;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9693;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9694;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9695;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9696;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9697;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9698;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9699;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9700;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9701;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9702;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9703;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9704;
			return 9705;
		}
		short PolishedGraniteStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace Poppy
	{
		constexpr short Poppy()
		{
			return 1413;
		}
	}
	namespace Potatoes
	{
		constexpr short Potatoes(unsigned char Age)
		{
			if (Age == 6) return 6344;
			if (Age == 1) return 6339;
			if (Age == 3) return 6341;
			if (Age == 5) return 6343;
			if (Age == 0) return 6338;
			if (Age == 2) return 6340;
			if (Age == 4) return 6342;
			return 6345;
		}
		short Potatoes();
		unsigned char Age(short ID);
	}
	namespace PottedAcaciaSapling
	{
		constexpr short PottedAcaciaSapling()
		{
			return 6310;
		}
	}
	namespace PottedAllium
	{
		constexpr short PottedAllium()
		{
			return 6316;
		}
	}
	namespace PottedAzureBluet
	{
		constexpr short PottedAzureBluet()
		{
			return 6317;
		}
	}
	namespace PottedBamboo
	{
		constexpr short PottedBamboo()
		{
			return 9664;
		}
	}
	namespace PottedBirchSapling
	{
		constexpr short PottedBirchSapling()
		{
			return 6308;
		}
	}
	namespace PottedBlueOrchid
	{
		constexpr short PottedBlueOrchid()
		{
			return 6315;
		}
	}
	namespace PottedBrownMushroom
	{
		constexpr short PottedBrownMushroom()
		{
			return 6327;
		}
	}
	namespace PottedCactus
	{
		constexpr short PottedCactus()
		{
			return 6329;
		}
	}
	namespace PottedCornflower
	{
		constexpr short PottedCornflower()
		{
			return 6323;
		}
	}
	namespace PottedCrimsonFungus
	{
		constexpr short PottedCrimsonFungus()
		{
			return 15834;
		}
	}
	namespace PottedCrimsonRoots
	{
		constexpr short PottedCrimsonRoots()
		{
			return 15836;
		}
	}
	namespace PottedDandelion
	{
		constexpr short PottedDandelion()
		{
			return 6313;
		}
	}
	namespace PottedDarkOakSapling
	{
		constexpr short PottedDarkOakSapling()
		{
			return 6311;
		}
	}
	namespace PottedDeadBush
	{
		constexpr short PottedDeadBush()
		{
			return 6328;
		}
	}
	namespace PottedFern
	{
		constexpr short PottedFern()
		{
			return 6312;
		}
	}
	namespace PottedJungleSapling
	{
		constexpr short PottedJungleSapling()
		{
			return 6309;
		}
	}
	namespace PottedLilyOfTheValley
	{
		constexpr short PottedLilyOfTheValley()
		{
			return 6324;
		}
	}
	namespace PottedOakSapling
	{
		constexpr short PottedOakSapling()
		{
			return 6306;
		}
	}
	namespace PottedOrangeTulip
	{
		constexpr short PottedOrangeTulip()
		{
			return 6319;
		}
	}
	namespace PottedOxeyeDaisy
	{
		constexpr short PottedOxeyeDaisy()
		{
			return 6322;
		}
	}
	namespace PottedPinkTulip
	{
		constexpr short PottedPinkTulip()
		{
			return 6321;
		}
	}
	namespace PottedPoppy
	{
		constexpr short PottedPoppy()
		{
			return 6314;
		}
	}
	namespace PottedRedMushroom
	{
		constexpr short PottedRedMushroom()
		{
			return 6326;
		}
	}
	namespace PottedRedTulip
	{
		constexpr short PottedRedTulip()
		{
			return 6318;
		}
	}
	namespace PottedSpruceSapling
	{
		constexpr short PottedSpruceSapling()
		{
			return 6307;
		}
	}
	namespace PottedWarpedFungus
	{
		constexpr short PottedWarpedFungus()
		{
			return 15835;
		}
	}
	namespace PottedWarpedRoots
	{
		constexpr short PottedWarpedRoots()
		{
			return 15837;
		}
	}
	namespace PottedWhiteTulip
	{
		constexpr short PottedWhiteTulip()
		{
			return 6320;
		}
	}
	namespace PottedWitherRose
	{
		constexpr short PottedWitherRose()
		{
			return 6325;
		}
	}
	namespace PoweredRail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth
		};
		constexpr short PoweredRail(bool Powered, enum Shape Shape)
		{
			if (Shape == Shape::EastWest && Powered) return 1306;
			if (Shape == Shape::AscendingSouth && Powered) return 1310;
			if (Shape == Shape::AscendingWest && !Powered) return 1314;
			if (Shape == Shape::AscendingEast && Powered) return 1307;
			if (Shape == Shape::NorthSouth && !Powered) return 1311;
			if (Shape == Shape::AscendingNorth && !Powered) return 1315;
			if (Shape == Shape::AscendingWest && Powered) return 1308;
			if (Shape == Shape::EastWest && !Powered) return 1312;
			if (Shape == Shape::AscendingSouth && !Powered) return 1316;
			if (Shape == Shape::NorthSouth && Powered) return 1305;
			if (Shape == Shape::AscendingNorth && Powered) return 1309;
			return 1313;
		}
		short PoweredRail();
		bool Powered(short ID);
		enum Shape Shape(short ID);
	}
	namespace Prismarine
	{
		constexpr short Prismarine()
		{
			return 7601;
		}
	}
	namespace PrismarineBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PrismarineBrickSlab(enum Type Type)
		{
			if (Type == Type::Top && !false) return 7851;
			if (Type == Type::Bottom && !false) return 7853;
			if (Type == Type::Double && !false) return 7855;
			if (Type == Type::Top && false) return 7850;
			if (Type == Type::Bottom && false) return 7852;
			return 7854;
		}
		short PrismarineBrickSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace PrismarineBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PrismarineBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7743;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7744;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7745;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7746;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7747;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7684;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7748;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7685;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7749;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7686;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7750;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7687;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7751;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7688;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7752;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7689;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7753;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7690;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7754;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7691;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7755;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7692;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7756;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7693;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7757;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7694;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7758;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7695;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7759;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7696;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7760;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7697;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7761;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7698;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7762;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7699;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7763;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7700;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7701;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7702;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7703;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7704;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7705;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7706;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7707;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7708;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7709;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7710;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7711;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7712;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7713;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7714;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7715;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7716;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7717;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7718;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7719;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7720;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7721;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7722;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7723;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7724;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7725;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7726;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7727;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7728;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7729;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7730;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7731;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7732;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7733;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7734;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7735;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7736;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7737;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7738;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7739;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7740;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7741;
			return 7742;
		}
		short PrismarineBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace PrismarineBricks
	{
		constexpr short PrismarineBricks()
		{
			return 7602;
		}
	}
	namespace PrismarineSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PrismarineSlab(enum Type Type)
		{
			if (Type == Type::Double && !false) return 7849;
			if (Type == Type::Top && false) return 7844;
			if (Type == Type::Bottom && false) return 7846;
			if (Type == Type::Double && false) return 7848;
			if (Type == Type::Top && !false) return 7845;
			return 7847;
		}
		short PrismarineSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace PrismarineStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PrismarineStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7679;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7616;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7680;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7617;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7681;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7618;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7682;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7619;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7683;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7620;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7621;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7622;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7623;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7624;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7625;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7626;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7627;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7628;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7629;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7630;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7631;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7632;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7633;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7634;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7635;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7636;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7637;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7638;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7639;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7640;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 7641;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7642;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 7643;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7644;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7645;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7646;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7647;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7648;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7649;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7650;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7651;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7652;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7653;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7654;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 7655;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7656;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7657;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7658;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7659;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7660;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 7661;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7662;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 7663;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7664;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7665;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7666;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7667;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7604;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7668;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7605;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7669;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7606;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7670;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7607;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7671;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7608;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7672;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7609;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7673;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7610;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7674;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 7611;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 7675;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7612;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7676;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7613;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 7677;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 7614;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 7678;
			return 7615;
		}
		short PrismarineStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace PrismarineWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short PrismarineWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 11194;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 11198;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 11202;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 11206;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 11210;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 11214;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 11218;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 11222;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 11226;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 11230;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 11234;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 11238;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 11242;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 11246;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 11250;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 11254;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 11258;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 11262;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 11266;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 11270;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11274;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 11278;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 11282;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11286;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 11290;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 11294;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11298;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 11302;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 11306;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 11310;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 11314;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 11318;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 11322;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 11326;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 11330;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 11334;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 11338;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 11342;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11346;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 11350;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 11354;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11358;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 11362;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 11366;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11370;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 11374;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11378;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11382;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 11386;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11390;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11394;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 11398;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11402;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11406;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 11410;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 11414;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11418;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 11422;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 11426;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11430;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 11434;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 11438;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11442;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 11446;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11450;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11454;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 11458;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11462;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11466;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 11470;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11474;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11478;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 11482;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11486;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11490;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 11494;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11498;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11502;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 11506;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11510;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11514;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 11191;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 11195;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 11199;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 11203;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 11207;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 11211;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 11215;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 11219;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 11223;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 11227;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 11231;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 11235;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 11239;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 11243;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 11247;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 11251;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 11255;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 11259;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 11263;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 11267;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11271;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 11275;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 11279;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11283;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 11287;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 11291;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11295;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 11299;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 11303;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 11307;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 11311;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 11315;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 11319;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 11323;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 11327;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 11331;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 11335;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 11339;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11343;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 11347;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 11351;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11355;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 11359;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 11363;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11367;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 11371;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 11375;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11379;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 11383;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 11387;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11391;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 11395;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 11399;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11403;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 11407;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 11411;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11415;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 11419;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 11423;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11427;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 11431;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 11435;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11439;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 11443;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 11447;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11451;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 11455;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 11459;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11463;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 11467;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 11471;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11475;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 11479;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11483;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11487;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 11491;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11495;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11499;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 11503;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11507;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11511;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 11192;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 11196;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 11200;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 11204;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 11208;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 11212;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 11216;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 11220;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 11224;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 11228;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 11232;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 11236;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 11240;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 11244;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 11248;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 11252;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 11256;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 11260;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 11264;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 11268;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 11272;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 11276;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 11280;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 11284;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 11288;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 11292;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 11296;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 11300;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 11304;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 11308;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 11312;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 11316;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 11320;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 11324;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 11328;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 11332;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 11336;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 11340;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 11344;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 11348;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 11352;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 11356;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 11360;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 11364;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 11368;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 11372;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11376;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 11380;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 11384;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11388;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 11392;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 11396;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11400;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 11404;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 11408;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 11412;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 11416;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 11420;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 11424;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 11428;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 11432;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 11436;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 11440;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 11444;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11448;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 11452;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 11456;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11460;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 11464;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 11468;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11472;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 11476;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11480;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11484;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11488;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11492;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11496;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11500;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11504;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11508;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11512;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 11193;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 11197;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 11201;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 11205;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 11209;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 11213;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 11217;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 11221;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 11225;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 11229;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 11233;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 11237;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 11241;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 11245;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 11249;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 11253;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 11257;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 11261;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 11265;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 11269;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 11273;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 11277;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 11281;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 11285;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 11289;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 11293;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 11297;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 11301;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 11305;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 11309;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 11313;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 11317;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 11321;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 11325;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 11329;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 11333;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 11337;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 11341;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 11345;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 11349;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 11353;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 11357;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 11361;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 11365;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 11369;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11373;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 11377;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11381;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11385;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 11389;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11393;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11397;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 11401;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11405;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 11409;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 11413;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 11417;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 11421;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 11425;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 11429;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 11433;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 11437;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 11441;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11445;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 11449;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11453;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11457;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 11461;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11465;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11469;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 11473;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11477;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11481;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11485;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11489;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11493;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11497;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11501;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11505;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11509;
			return 11513;
		}
		short PrismarineWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace Pumpkin
	{
		constexpr short Pumpkin()
		{
			return 3998;
		}
	}
	namespace PumpkinStem
	{
		constexpr short PumpkinStem(unsigned char Age)
		{
			if (Age == 4) return 4776;
			if (Age == 6) return 4778;
			if (Age == 1) return 4773;
			if (Age == 3) return 4775;
			if (Age == 5) return 4777;
			if (Age == 0) return 4772;
			if (Age == 2) return 4774;
			return 4779;
		}
		short PumpkinStem();
		unsigned char Age(short ID);
	}
	namespace PurpleBanner
	{
		constexpr short PurpleBanner(unsigned char Rotation)
		{
			if (Rotation == 14) return 8071;
			if (Rotation == 0) return 8057;
			if (Rotation == 1) return 8058;
			if (Rotation == 2) return 8059;
			if (Rotation == 3) return 8060;
			if (Rotation == 4) return 8061;
			if (Rotation == 5) return 8062;
			if (Rotation == 6) return 8063;
			if (Rotation == 7) return 8064;
			if (Rotation == 8) return 8065;
			if (Rotation == 9) return 8066;
			if (Rotation == 10) return 8067;
			if (Rotation == 11) return 8068;
			if (Rotation == 12) return 8069;
			if (Rotation == 13) return 8070;
			return 8072;
		}
		short PurpleBanner();
		unsigned char Rotation(short ID);
	}
	namespace PurpleBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short PurpleBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1212;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1216;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1220;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1209;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1213;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1217;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1221;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1210;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1214;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1218;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1222;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1211;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1215;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1219;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1223;
			return 1224;
		}
		short PurpleBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace PurpleCarpet
	{
		constexpr short PurpleCarpet()
		{
			return 7876;
		}
	}
	namespace PurpleConcrete
	{
		constexpr short PurpleConcrete()
		{
			return 9448;
		}
	}
	namespace PurpleConcretePowder
	{
		constexpr short PurpleConcretePowder()
		{
			return 9464;
		}
	}
	namespace PurpleGlazedTerracotta
	{
		constexpr short PurpleGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9414;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9416;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9415;
			return 9417;
		}
		short PurpleGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace PurpleShulkerBox
	{
		constexpr short PurpleShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9340;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9341;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9338;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9342;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9339;
			return 9343;
		}
		short PurpleShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace PurpleStainedGlass
	{
		constexpr short PurpleStainedGlass()
		{
			return 4105;
		}
	}
	namespace PurpleStainedGlassPane
	{
		constexpr short PurpleStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (!false && South && !West && !East && !North) return 7210;
			if (false && South && West && East && North) return 7183;
			if (false && !South && West && East && North) return 7187;
			if (false && South && West && East && !North) return 7191;
			if (false && !South && West && East && !North) return 7195;
			if (false && South && West && !East && North) return 7199;
			if (false && !South && West && !East && North) return 7203;
			if (false && South && West && !East && !North) return 7207;
			if (false && !South && West && !East && !North) return 7211;
			if (false && South && !West && East && North) return 7184;
			if (false && !South && !West && East && North) return 7188;
			if (false && South && !West && East && !North) return 7192;
			if (false && !South && !West && East && !North) return 7196;
			if (false && South && !West && !East && North) return 7200;
			if (false && !South && !West && !East && North) return 7204;
			if (false && South && !West && !East && !North) return 7208;
			if (false && !South && !West && !East && !North) return 7212;
			if (!false && South && West && East && North) return 7185;
			if (!false && !South && West && East && North) return 7189;
			if (!false && South && West && East && !North) return 7193;
			if (!false && !South && West && East && !North) return 7197;
			if (!false && South && West && !East && North) return 7201;
			if (!false && !South && West && !East && North) return 7205;
			if (!false && South && West && !East && !North) return 7209;
			if (!false && !South && West && !East && !North) return 7213;
			if (!false && South && !West && East && North) return 7186;
			if (!false && !South && !West && East && North) return 7190;
			if (!false && South && !West && East && !North) return 7194;
			if (!false && !South && !West && East && !North) return 7198;
			if (!false && South && !West && !East && North) return 7202;
			if (!false && !South && !West && !East && North) return 7206;
			return 7214;
		}
		short PurpleStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace PurpleTerracotta
	{
		constexpr short PurpleTerracotta()
		{
			return 6857;
		}
	}
	namespace PurpleWallBanner
	{
		constexpr short PurpleWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8193;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8195;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8194;
			return 8196;
		}
		short PurpleWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace PurpleWool
	{
		constexpr short PurpleWool()
		{
			return 1394;
		}
	}
	namespace PurpurBlock
	{
		constexpr short PurpurBlock()
		{
			return 9134;
		}
	}
	namespace PurpurPillar
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short PurpurPillar(enum Axis Axis)
		{
			if (Axis == Axis::X) return 9135;
			if (Axis == Axis::Z) return 9137;
			return 9136;
		}
		short PurpurPillar();
		enum Axis Axis(short ID);
	}
	namespace PurpurSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short PurpurSlab(enum Type Type)
		{
			if (Type == Type::Top && !false) return 8409;
			if (Type == Type::Double && !false) return 8413;
			if (Type == Type::Bottom && false) return 8410;
			if (Type == Type::Bottom && !false) return 8411;
			if (Type == Type::Top && false) return 8408;
			return 8412;
		}
		short PurpurSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace PurpurStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short PurpurStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9198;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9199;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9200;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9201;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9202;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9203;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9204;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9205;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9206;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9207;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9208;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9209;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9210;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9211;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9212;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9213;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9214;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9215;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9216;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9217;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9138;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9139;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9140;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9141;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9142;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9143;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9144;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9145;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9146;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9147;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9148;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9149;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9150;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9151;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9152;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9153;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9154;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9155;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9156;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9157;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9158;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9159;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9160;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9161;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9162;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9163;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9164;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9165;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9166;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9167;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9168;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9169;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9170;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9171;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9172;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9173;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9174;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9175;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9176;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9177;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9178;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9179;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9180;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9181;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9182;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9183;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9184;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9185;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9186;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9187;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9188;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9189;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9190;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9191;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9192;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9193;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9194;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9195;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9196;
			return 9197;
		}
		short PurpurStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace QuartzBlock
	{
		constexpr short QuartzBlock()
		{
			return 6738;
		}
	}
	namespace QuartzBricks
	{
		constexpr short QuartzBricks()
		{
			return 17103;
		}
	}
	namespace QuartzPillar
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short QuartzPillar(enum Axis Axis)
		{
			if (Axis == Axis::Z) return 6742;
			if (Axis == Axis::X) return 6740;
			return 6741;
		}
		short QuartzPillar();
		enum Axis Axis(short ID);
	}
	namespace QuartzSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short QuartzSlab(enum Type Type)
		{
			if (Type == Type::Double && !false) return 8395;
			if (Type == Type::Bottom && false) return 8392;
			if (Type == Type::Bottom && !false) return 8393;
			if (Type == Type::Top && false) return 8390;
			if (Type == Type::Double && false) return 8394;
			return 8391;
		}
		short QuartzSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace QuartzStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short QuartzStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 6790;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 6791;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 6792;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 6793;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 6794;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 6795;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 6796;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 6797;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 6798;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 6799;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 6800;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 6801;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 6802;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 6803;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 6804;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 6805;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 6806;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6743;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 6807;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6744;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 6808;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 6745;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 6809;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 6746;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 6810;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6747;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 6811;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6748;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 6812;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 6749;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 6813;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 6750;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 6814;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6751;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 6815;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6752;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 6816;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6753;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 6817;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6754;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 6818;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 6755;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 6819;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 6756;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 6820;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6757;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 6821;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6758;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 6822;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 6759;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 6760;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6761;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 6762;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6763;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6764;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 6765;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 6766;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6767;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6768;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 6769;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 6770;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6771;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6772;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6773;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6774;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 6775;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 6776;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6777;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6778;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 6779;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 6780;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6781;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 6782;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 6783;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 6784;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 6785;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 6786;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 6787;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 6788;
			return 6789;
		}
		short QuartzStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace Rail
	{
		enum class Shape
		{
			NorthSouth,
			EastWest,
			AscendingEast,
			AscendingWest,
			AscendingNorth,
			AscendingSouth,
			SouthEast,
			SouthWest,
			NorthWest,
			NorthEast
		};
		constexpr short Rail(enum Shape Shape)
		{
			if (Shape == Shape::EastWest) return 3646;
			if (Shape == Shape::NorthEast) return 3654;
			if (Shape == Shape::AscendingEast) return 3647;
			if (Shape == Shape::AscendingWest) return 3648;
			if (Shape == Shape::AscendingNorth) return 3649;
			if (Shape == Shape::AscendingSouth) return 3650;
			if (Shape == Shape::SouthEast) return 3651;
			if (Shape == Shape::SouthWest) return 3652;
			if (Shape == Shape::NorthSouth) return 3645;
			return 3653;
		}
		short Rail();
		enum Shape Shape(short ID);
	}
	namespace RedBanner
	{
		constexpr short RedBanner(unsigned char Rotation)
		{
			if (Rotation == 10) return 8131;
			if (Rotation == 11) return 8132;
			if (Rotation == 12) return 8133;
			if (Rotation == 13) return 8134;
			if (Rotation == 14) return 8135;
			if (Rotation == 0) return 8121;
			if (Rotation == 1) return 8122;
			if (Rotation == 2) return 8123;
			if (Rotation == 3) return 8124;
			if (Rotation == 4) return 8125;
			if (Rotation == 5) return 8126;
			if (Rotation == 6) return 8127;
			if (Rotation == 7) return 8128;
			if (Rotation == 8) return 8129;
			if (Rotation == 9) return 8130;
			return 8136;
		}
		short RedBanner();
		unsigned char Rotation(short ID);
	}
	namespace RedBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short RedBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1287;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1276;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1280;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1284;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1273;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1277;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1281;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1285;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1274;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1278;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1282;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1286;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1275;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1279;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1283;
			return 1288;
		}
		short RedBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace RedCarpet
	{
		constexpr short RedCarpet()
		{
			return 7880;
		}
	}
	namespace RedConcrete
	{
		constexpr short RedConcrete()
		{
			return 9452;
		}
	}
	namespace RedConcretePowder
	{
		constexpr short RedConcretePowder()
		{
			return 9468;
		}
	}
	namespace RedGlazedTerracotta
	{
		constexpr short RedGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9432;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9431;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9430;
			return 9433;
		}
		short RedGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace RedMushroom
	{
		constexpr short RedMushroom()
		{
			return 1426;
		}
	}
	namespace RedMushroomBlock
	{
		constexpr short RedMushroomBlock(bool Down, bool East, bool North, bool South, bool Up, bool West)
		{
			if (Up && West && East && !South && Down && North) return 4573;
			if (Up && West && !East && !South && Down && North) return 4589;
			if (Up && West && East && !South && !Down && North) return 4605;
			if (Up && West && !East && !South && !Down && North) return 4621;
			if (Up && !West && East && !South && Down && North) return 4574;
			if (Up && !West && !East && !South && Down && North) return 4590;
			if (Up && !West && East && !South && !Down && North) return 4606;
			if (Up && !West && !East && !South && !Down && North) return 4622;
			if (!Up && West && East && !South && Down && North) return 4575;
			if (!Up && West && !East && !South && Down && North) return 4591;
			if (!Up && West && East && !South && !Down && North) return 4607;
			if (!Up && West && !East && !South && !Down && North) return 4623;
			if (!Up && !West && East && !South && Down && North) return 4576;
			if (!Up && !West && !East && !South && Down && North) return 4592;
			if (!Up && !West && East && !South && !Down && North) return 4608;
			if (!Up && !West && !East && !South && !Down && North) return 4624;
			if (Up && West && East && South && Down && !North) return 4577;
			if (Up && West && !East && South && Down && !North) return 4593;
			if (Up && West && East && South && !Down && !North) return 4609;
			if (Up && West && !East && South && !Down && !North) return 4625;
			if (Up && !West && East && South && Down && !North) return 4578;
			if (Up && !West && !East && South && Down && !North) return 4594;
			if (Up && !West && East && South && !Down && !North) return 4610;
			if (Up && !West && !East && South && !Down && !North) return 4626;
			if (!Up && West && East && South && Down && !North) return 4579;
			if (!Up && West && !East && South && Down && !North) return 4595;
			if (!Up && West && East && South && !Down && !North) return 4611;
			if (!Up && West && !East && South && !Down && !North) return 4627;
			if (!Up && !West && East && South && Down && !North) return 4580;
			if (!Up && !West && !East && South && Down && !North) return 4596;
			if (!Up && !West && East && South && !Down && !North) return 4612;
			if (!Up && !West && !East && South && !Down && !North) return 4628;
			if (Up && West && East && !South && Down && !North) return 4581;
			if (Up && West && !East && !South && Down && !North) return 4597;
			if (Up && West && East && !South && !Down && !North) return 4613;
			if (Up && West && !East && !South && !Down && !North) return 4629;
			if (Up && !West && East && !South && Down && !North) return 4582;
			if (Up && !West && !East && !South && Down && !North) return 4598;
			if (Up && !West && East && !South && !Down && !North) return 4614;
			if (Up && !West && !East && !South && !Down && !North) return 4630;
			if (!Up && West && East && !South && Down && !North) return 4583;
			if (!Up && West && !East && !South && Down && !North) return 4599;
			if (!Up && West && East && !South && !Down && !North) return 4615;
			if (!Up && West && !East && !South && !Down && !North) return 4631;
			if (!Up && !West && East && !South && Down && !North) return 4584;
			if (!Up && !West && !East && !South && Down && !North) return 4600;
			if (!Up && !West && East && !South && !Down && !North) return 4616;
			if (Up && West && East && South && Down && North) return 4569;
			if (Up && West && !East && South && Down && North) return 4585;
			if (Up && West && East && South && !Down && North) return 4601;
			if (Up && West && !East && South && !Down && North) return 4617;
			if (Up && !West && East && South && Down && North) return 4570;
			if (Up && !West && !East && South && Down && North) return 4586;
			if (Up && !West && East && South && !Down && North) return 4602;
			if (Up && !West && !East && South && !Down && North) return 4618;
			if (!Up && West && East && South && Down && North) return 4571;
			if (!Up && West && !East && South && Down && North) return 4587;
			if (!Up && West && East && South && !Down && North) return 4603;
			if (!Up && West && !East && South && !Down && North) return 4619;
			if (!Up && !West && East && South && Down && North) return 4572;
			if (!Up && !West && !East && South && Down && North) return 4588;
			if (!Up && !West && East && South && !Down && North) return 4604;
			if (!Up && !West && !East && South && !Down && North) return 4620;
			return 4632;
		}
		short RedMushroomBlock();
		bool Down(short ID);
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace RedNetherBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short RedNetherBrickSlab(enum Type Type)
		{
			if (Type == Type::Bottom && !false) return 10852;
			if (Type == Type::Top && false) return 10849;
			if (Type == Type::Double && false) return 10853;
			if (Type == Type::Top && !false) return 10850;
			if (Type == Type::Double && !false) return 10854;
			return 10851;
		}
		short RedNetherBrickSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace RedNetherBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short RedNetherBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10595;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10596;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10597;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10598;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10599;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10600;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10601;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10602;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10603;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10604;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10605;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10606;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10607;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10608;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10609;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10610;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10611;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10612;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10613;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10614;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10615;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10616;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10617;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10618;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10619;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10620;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10621;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10622;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10623;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10624;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10625;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10626;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10627;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10628;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10549;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10550;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10551;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10552;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10553;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10554;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10555;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10556;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10557;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10558;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10559;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10560;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10561;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10562;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10563;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10564;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10565;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10566;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10567;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10568;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10569;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10570;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10571;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10572;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10573;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10574;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10575;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10576;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10577;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10578;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10579;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10580;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10581;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10582;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10583;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10584;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10585;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10586;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10587;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10588;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10589;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10590;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10591;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10592;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10593;
			return 10594;
		}
		short RedNetherBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace RedNetherBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short RedNetherBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 13589;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 13593;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 13597;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 13601;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 13605;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 13609;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 13613;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 13617;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 13621;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 13625;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 13629;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 13633;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 13637;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13641;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 13645;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13649;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13653;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 13657;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13661;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13665;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 13669;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13673;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 13677;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 13681;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 13685;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 13689;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 13693;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 13697;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 13701;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 13705;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 13709;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13713;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 13717;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13721;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13725;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 13729;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13733;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13737;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 13741;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13745;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13749;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13753;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13757;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13761;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13765;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13769;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13773;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13777;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13781;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 13462;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 13466;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 13470;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 13474;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 13478;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 13482;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 13486;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 13490;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 13494;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 13498;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 13502;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 13506;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 13510;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 13514;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 13518;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 13522;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 13526;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 13530;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 13534;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 13538;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13542;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 13546;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 13550;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13554;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 13558;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 13562;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13566;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 13570;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 13574;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 13578;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 13582;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 13586;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 13590;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 13594;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 13598;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 13602;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 13606;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 13610;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13614;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 13618;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 13622;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13626;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 13630;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 13634;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13638;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 13642;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13646;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13650;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 13654;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13658;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13662;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 13666;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13670;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13674;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 13678;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 13682;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13686;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 13690;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 13694;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13698;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 13702;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 13706;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13710;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 13714;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13718;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13722;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 13726;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13730;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13734;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 13738;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 13742;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13746;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 13750;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13754;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13758;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 13762;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13766;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13770;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 13774;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 13778;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13782;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 13459;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 13463;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 13467;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 13471;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 13475;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 13479;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 13483;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 13487;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 13491;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 13495;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 13499;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 13503;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 13507;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 13511;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 13515;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 13519;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 13523;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 13527;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 13531;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 13535;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13539;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 13543;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 13547;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13551;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 13555;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 13559;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13563;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 13567;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 13571;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 13575;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 13579;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 13583;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 13587;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 13591;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 13595;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 13599;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 13603;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 13607;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13611;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 13615;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 13619;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13623;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 13627;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 13631;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13635;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 13639;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 13643;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13647;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 13651;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 13655;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13659;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 13663;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 13667;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13671;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 13675;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 13679;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13683;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 13687;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 13691;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13695;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 13699;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 13703;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 13707;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 13711;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 13715;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13719;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 13723;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 13727;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13731;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 13735;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 13739;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 13743;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 13747;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13751;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13755;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 13759;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13763;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13767;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 13771;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13775;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 13779;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 13460;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 13464;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 13468;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 13472;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 13476;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 13480;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 13484;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 13488;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 13492;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 13496;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 13500;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 13504;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 13508;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 13512;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 13516;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 13520;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 13524;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 13528;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 13532;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 13536;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 13540;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 13544;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 13548;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 13552;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 13556;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 13560;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 13564;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 13568;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 13572;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 13576;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 13580;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 13584;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 13588;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 13592;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 13596;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 13600;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 13604;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 13608;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 13612;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 13616;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 13620;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 13624;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 13628;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 13632;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 13636;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 13640;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13644;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 13648;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 13652;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13656;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 13660;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 13664;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13668;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 13672;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 13676;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 13680;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 13684;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 13688;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 13692;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 13696;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 13700;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 13704;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 13708;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 13712;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13716;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 13720;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 13724;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13728;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 13732;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 13736;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 13740;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 13744;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13748;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13752;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13756;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13760;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13764;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13768;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 13772;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 13776;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 13780;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 13461;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 13465;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 13469;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 13473;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 13477;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 13481;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 13485;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 13489;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 13493;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 13497;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 13501;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 13505;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 13509;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 13513;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 13517;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 13521;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 13525;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 13529;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 13533;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 13537;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 13541;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 13545;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 13549;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 13553;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 13557;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 13561;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 13565;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 13569;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 13573;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 13577;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 13581;
			return 13585;
		}
		short RedNetherBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace RedNetherBricks
	{
		constexpr short RedNetherBricks()
		{
			return 9255;
		}
	}
	namespace RedSand
	{
		constexpr short RedSand()
		{
			return 67;
		}
	}
	namespace RedSandstone
	{
		constexpr short RedSandstone()
		{
			return 8217;
		}
	}
	namespace RedSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short RedSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Bottom && !false) return 8399;
			if (Type == Type::Top && false) return 8396;
			if (Type == Type::Double && false) return 8400;
			if (Type == Type::Top && !false) return 8397;
			if (Type == Type::Double && !false) return 8401;
			return 8398;
		}
		short RedSandstoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace RedSandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short RedSandstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8220;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8221;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 8222;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 8223;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8224;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8225;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 8226;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 8227;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8228;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8229;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8230;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8231;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 8232;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 8233;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8234;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8235;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 8236;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 8237;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8238;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 8239;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8240;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8241;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 8242;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 8243;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8244;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8245;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 8246;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 8247;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8248;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8249;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8250;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8251;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 8252;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 8253;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8254;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8255;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 8256;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 8257;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8258;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 8259;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 8260;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 8261;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 8262;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 8263;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 8264;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 8265;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 8266;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 8267;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 8268;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 8269;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 8270;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 8271;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 8272;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 8273;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 8274;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 8275;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 8276;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 8277;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 8278;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 8279;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 8280;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 8281;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 8282;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 8283;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 8284;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 8285;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 8286;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 8287;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 8288;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 8289;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 8290;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 8291;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 8292;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 8293;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 8294;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 8295;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 8296;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 8297;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 8298;
			return 8299;
		}
		short RedSandstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace RedSandstoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short RedSandstoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 11545;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 11549;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 11553;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 11557;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 11561;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 11565;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 11569;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 11573;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 11577;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 11581;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 11585;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 11589;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 11593;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 11597;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 11601;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 11605;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 11609;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 11613;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 11617;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 11621;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 11625;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 11629;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 11633;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 11637;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 11641;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 11645;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 11649;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 11653;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 11657;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 11661;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 11665;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 11669;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 11673;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 11677;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 11681;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 11685;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 11689;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 11693;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11697;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 11701;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11705;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11709;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 11713;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11717;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11721;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 11725;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11729;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 11733;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 11737;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 11741;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 11745;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 11749;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 11753;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 11757;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 11761;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 11765;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11769;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 11773;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11777;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11781;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 11785;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11789;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11793;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 11797;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11801;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11805;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11809;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11813;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11817;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11821;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11825;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11829;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11833;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11837;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 11518;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 11522;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 11526;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 11530;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 11534;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 11538;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 11542;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 11546;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 11550;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 11554;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 11558;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 11562;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 11566;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 11570;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 11574;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 11578;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 11582;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 11586;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 11590;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 11594;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11598;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 11602;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 11606;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11610;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 11614;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 11618;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11622;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 11626;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 11630;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 11634;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 11638;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 11642;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 11646;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 11650;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 11654;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 11658;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 11662;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 11666;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11670;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 11674;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 11678;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11682;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 11686;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 11690;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11694;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 11698;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11702;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11706;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 11710;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11714;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11718;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 11722;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 11726;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11730;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 11734;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 11738;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11742;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 11746;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 11750;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11754;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 11758;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 11762;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11766;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 11770;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11774;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11778;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 11782;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11786;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11790;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 11794;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 11798;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11802;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 11806;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11810;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11814;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 11818;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11822;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11826;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 11830;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 11834;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11838;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 11515;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 11519;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 11523;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 11527;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 11531;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 11535;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 11539;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 11543;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 11547;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 11551;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 11555;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 11559;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 11563;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 11567;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 11571;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 11575;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 11579;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 11583;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 11587;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 11591;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11595;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 11599;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 11603;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11607;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 11611;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 11615;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 11619;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 11623;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 11627;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 11631;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 11635;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 11639;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 11643;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 11647;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 11651;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 11655;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 11659;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 11663;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11667;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 11671;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 11675;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11679;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 11683;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 11687;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 11691;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 11695;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 11699;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11703;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 11707;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 11711;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11715;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 11719;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 11723;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 11727;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 11731;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 11735;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11739;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 11743;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 11747;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11751;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 11755;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 11759;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 11763;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 11767;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 11771;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11775;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 11779;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 11783;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11787;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 11791;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 11795;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 11799;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 11803;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11807;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11811;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 11815;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11819;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11823;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 11827;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11831;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 11835;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 11516;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 11520;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 11524;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 11528;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 11532;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 11536;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 11540;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 11544;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 11548;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 11552;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 11556;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 11560;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 11564;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 11568;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 11572;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 11576;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 11580;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 11584;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 11588;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 11592;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 11596;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 11600;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 11604;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 11608;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 11612;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 11616;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 11620;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 11624;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 11628;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 11632;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 11636;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 11640;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 11644;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 11648;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 11652;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 11656;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 11660;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 11664;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 11668;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 11672;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 11676;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 11680;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 11684;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 11688;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 11692;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 11696;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11700;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 11704;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 11708;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11712;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 11716;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 11720;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 11724;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 11728;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 11732;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 11736;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 11740;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 11744;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 11748;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 11752;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 11756;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 11760;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 11764;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 11768;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11772;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 11776;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 11780;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11784;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 11788;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 11792;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 11796;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 11800;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11804;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11808;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11812;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11816;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11820;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11824;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 11828;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 11832;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 11836;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 11517;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 11521;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 11525;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 11529;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 11533;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 11537;
			return 11541;
		}
		short RedSandstoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace RedShulkerBox
	{
		constexpr short RedShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9365;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9362;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9366;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9363;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9367;
			return 9364;
		}
		short RedShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace RedStainedGlass
	{
		constexpr short RedStainedGlass()
		{
			return 4109;
		}
	}
	namespace RedStainedGlassPane
	{
		constexpr short RedStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (!false && !South && !West && !East && North) return 7334;
			if (!false && South && !West && !East && !North) return 7338;
			if (false && South && West && East && North) return 7311;
			if (false && !South && West && East && North) return 7315;
			if (false && South && West && East && !North) return 7319;
			if (false && !South && West && East && !North) return 7323;
			if (false && South && West && !East && North) return 7327;
			if (false && !South && West && !East && North) return 7331;
			if (false && South && West && !East && !North) return 7335;
			if (false && !South && West && !East && !North) return 7339;
			if (false && South && !West && East && North) return 7312;
			if (false && !South && !West && East && North) return 7316;
			if (false && South && !West && East && !North) return 7320;
			if (false && !South && !West && East && !North) return 7324;
			if (false && South && !West && !East && North) return 7328;
			if (false && !South && !West && !East && North) return 7332;
			if (false && South && !West && !East && !North) return 7336;
			if (false && !South && !West && !East && !North) return 7340;
			if (!false && South && West && East && North) return 7313;
			if (!false && !South && West && East && North) return 7317;
			if (!false && South && West && East && !North) return 7321;
			if (!false && !South && West && East && !North) return 7325;
			if (!false && South && West && !East && North) return 7329;
			if (!false && !South && West && !East && North) return 7333;
			if (!false && South && West && !East && !North) return 7337;
			if (!false && !South && West && !East && !North) return 7341;
			if (!false && South && !West && East && North) return 7314;
			if (!false && !South && !West && East && North) return 7318;
			if (!false && South && !West && East && !North) return 7322;
			if (!false && !South && !West && East && !North) return 7326;
			if (!false && South && !West && !East && North) return 7330;
			return 7342;
		}
		short RedStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace RedTerracotta
	{
		constexpr short RedTerracotta()
		{
			return 6861;
		}
	}
	namespace RedTulip
	{
		constexpr short RedTulip()
		{
			return 1417;
		}
	}
	namespace RedWallBanner
	{
		constexpr short RedWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8211;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8210;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8209;
			return 8212;
		}
		short RedWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace RedWool
	{
		constexpr short RedWool()
		{
			return 1398;
		}
	}
	namespace RedstoneBlock
	{
		constexpr short RedstoneBlock()
		{
			return 6726;
		}
	}
	namespace RedstoneLamp
	{
		constexpr short RedstoneLamp(bool Lit)
		{
			if (Lit) return 5156;
			return 5157;
		}
		short RedstoneLamp();
		bool Lit(short ID);
	}
	namespace RedstoneOre
	{
		constexpr short RedstoneOre(bool Lit)
		{
			if (Lit) return 3885;
			return 3886;
		}
		short RedstoneOre();
		bool Lit(short ID);
	}
	namespace RedstoneTorch
	{
		constexpr short RedstoneTorch(bool Lit)
		{
			if (Lit) return 3887;
			return 3888;
		}
		short RedstoneTorch();
		bool Lit(short ID);
	}
	namespace RedstoneWallTorch
	{
		constexpr short RedstoneWallTorch(eBlockFace Facing, bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit) return 3890;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit) return 3891;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit) return 3892;
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit) return 3893;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit) return 3894;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit) return 3895;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit) return 3889;
			return 3896;
		}
		short RedstoneWallTorch();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
	}
	namespace RedstoneWire
	{
		enum class East
		{
			Up,
			Side,
			None
		};
		enum class North
		{
			Up,
			Side,
			None
		};
		enum class South
		{
			Up,
			Side,
			None
		};
		enum class West
		{
			Up,
			Side,
			None
		};
		constexpr short RedstoneWire(enum East East, enum North North, unsigned char Power, enum South South, enum West West)
		{
			if (Power == 15 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 3061;
			if (Power == 15 && South == South::None && West == West::None && East == East::None && North == North::Up) return 3065;
			if (Power == 0 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3069;
			if (Power == 0 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3073;
			if (Power == 1 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3077;
			if (Power == 1 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3081;
			if (Power == 2 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3085;
			if (Power == 2 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3089;
			if (Power == 3 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3093;
			if (Power == 3 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3097;
			if (Power == 3 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3101;
			if (Power == 4 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3105;
			if (Power == 4 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3109;
			if (Power == 5 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3113;
			if (Power == 5 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3117;
			if (Power == 6 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3121;
			if (Power == 6 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3125;
			if (Power == 7 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3129;
			if (Power == 7 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3133;
			if (Power == 7 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3137;
			if (Power == 8 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3141;
			if (Power == 8 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3145;
			if (Power == 9 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3149;
			if (Power == 9 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3153;
			if (Power == 10 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3157;
			if (Power == 10 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3161;
			if (Power == 11 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3165;
			if (Power == 11 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3169;
			if (Power == 11 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3173;
			if (Power == 12 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3177;
			if (Power == 12 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3181;
			if (Power == 13 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3185;
			if (Power == 13 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3189;
			if (Power == 14 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3193;
			if (Power == 14 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3197;
			if (Power == 15 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3201;
			if (Power == 15 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3205;
			if (Power == 15 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3209;
			if (Power == 0 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3213;
			if (Power == 0 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3217;
			if (Power == 1 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3221;
			if (Power == 1 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3225;
			if (Power == 2 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3229;
			if (Power == 2 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3233;
			if (Power == 3 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3237;
			if (Power == 3 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3241;
			if (Power == 3 && South == South::None && West == West::None && East == East::None && North == North::None) return 3245;
			if (Power == 4 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3249;
			if (Power == 4 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3253;
			if (Power == 5 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3257;
			if (Power == 5 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3261;
			if (Power == 6 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3265;
			if (Power == 6 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3269;
			if (Power == 7 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3273;
			if (Power == 7 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3277;
			if (Power == 7 && South == South::None && West == West::None && East == East::None && North == North::None) return 3281;
			if (Power == 8 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3285;
			if (Power == 8 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3289;
			if (Power == 9 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3293;
			if (Power == 9 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3297;
			if (Power == 10 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3301;
			if (Power == 10 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3305;
			if (Power == 11 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3309;
			if (Power == 11 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3313;
			if (Power == 11 && South == South::None && West == West::None && East == East::None && North == North::None) return 3317;
			if (Power == 12 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3321;
			if (Power == 12 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3325;
			if (Power == 13 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3329;
			if (Power == 13 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3333;
			if (Power == 14 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3337;
			if (Power == 14 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3341;
			if (Power == 15 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3345;
			if (Power == 15 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3349;
			if (Power == 15 && South == South::None && West == West::None && East == East::None && North == North::None) return 3353;
			if (Power == 0 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2058;
			if (Power == 0 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2062;
			if (Power == 0 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2066;
			if (Power == 1 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2070;
			if (Power == 1 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2074;
			if (Power == 2 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2078;
			if (Power == 2 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2082;
			if (Power == 3 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2086;
			if (Power == 3 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2090;
			if (Power == 4 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2094;
			if (Power == 4 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2098;
			if (Power == 4 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2102;
			if (Power == 5 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2106;
			if (Power == 5 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2110;
			if (Power == 6 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2114;
			if (Power == 6 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2118;
			if (Power == 7 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2122;
			if (Power == 7 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2126;
			if (Power == 8 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2130;
			if (Power == 8 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2134;
			if (Power == 8 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2138;
			if (Power == 9 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2142;
			if (Power == 9 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2146;
			if (Power == 10 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2150;
			if (Power == 10 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2154;
			if (Power == 11 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2158;
			if (Power == 11 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2162;
			if (Power == 12 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2166;
			if (Power == 12 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2170;
			if (Power == 12 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2174;
			if (Power == 13 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2178;
			if (Power == 13 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2182;
			if (Power == 14 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2186;
			if (Power == 14 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2190;
			if (Power == 15 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2194;
			if (Power == 15 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2198;
			if (Power == 0 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2202;
			if (Power == 0 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2206;
			if (Power == 0 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2210;
			if (Power == 1 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2214;
			if (Power == 1 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2218;
			if (Power == 2 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2222;
			if (Power == 2 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2226;
			if (Power == 3 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2230;
			if (Power == 3 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2234;
			if (Power == 4 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2238;
			if (Power == 4 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2242;
			if (Power == 4 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2246;
			if (Power == 5 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2250;
			if (Power == 5 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2254;
			if (Power == 6 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2258;
			if (Power == 6 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2262;
			if (Power == 7 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2266;
			if (Power == 7 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2270;
			if (Power == 8 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2274;
			if (Power == 8 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2278;
			if (Power == 8 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2282;
			if (Power == 9 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2286;
			if (Power == 9 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2290;
			if (Power == 10 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2294;
			if (Power == 10 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2298;
			if (Power == 11 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2302;
			if (Power == 11 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2306;
			if (Power == 12 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2310;
			if (Power == 12 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2314;
			if (Power == 12 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2318;
			if (Power == 13 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2322;
			if (Power == 13 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2326;
			if (Power == 14 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2330;
			if (Power == 14 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2334;
			if (Power == 15 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2338;
			if (Power == 15 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2342;
			if (Power == 0 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2346;
			if (Power == 0 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2350;
			if (Power == 0 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2354;
			if (Power == 1 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2358;
			if (Power == 1 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2362;
			if (Power == 2 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2366;
			if (Power == 2 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2370;
			if (Power == 3 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2374;
			if (Power == 3 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2378;
			if (Power == 4 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2382;
			if (Power == 4 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2386;
			if (Power == 4 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2390;
			if (Power == 5 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2394;
			if (Power == 5 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2398;
			if (Power == 6 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2402;
			if (Power == 6 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2406;
			if (Power == 7 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2410;
			if (Power == 7 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2414;
			if (Power == 8 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2418;
			if (Power == 8 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2422;
			if (Power == 8 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2426;
			if (Power == 9 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2430;
			if (Power == 9 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2434;
			if (Power == 10 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2438;
			if (Power == 10 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2442;
			if (Power == 11 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2446;
			if (Power == 11 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2450;
			if (Power == 12 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2454;
			if (Power == 12 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2458;
			if (Power == 12 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2462;
			if (Power == 13 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2466;
			if (Power == 13 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2470;
			if (Power == 14 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2474;
			if (Power == 14 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2478;
			if (Power == 15 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2482;
			if (Power == 15 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2486;
			if (Power == 0 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2490;
			if (Power == 0 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2494;
			if (Power == 0 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2498;
			if (Power == 1 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2502;
			if (Power == 1 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2506;
			if (Power == 2 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2510;
			if (Power == 2 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2514;
			if (Power == 3 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2518;
			if (Power == 3 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2522;
			if (Power == 4 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2526;
			if (Power == 4 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2530;
			if (Power == 4 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2534;
			if (Power == 5 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2538;
			if (Power == 5 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2542;
			if (Power == 6 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2546;
			if (Power == 6 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2550;
			if (Power == 7 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2554;
			if (Power == 7 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2558;
			if (Power == 8 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2562;
			if (Power == 8 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2566;
			if (Power == 8 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2570;
			if (Power == 9 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2574;
			if (Power == 9 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2578;
			if (Power == 10 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2582;
			if (Power == 10 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2586;
			if (Power == 11 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2590;
			if (Power == 11 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2594;
			if (Power == 12 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2598;
			if (Power == 12 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2602;
			if (Power == 12 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2606;
			if (Power == 13 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2610;
			if (Power == 13 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2614;
			if (Power == 14 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2618;
			if (Power == 14 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2622;
			if (Power == 15 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2626;
			if (Power == 15 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2630;
			if (Power == 0 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2634;
			if (Power == 0 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2638;
			if (Power == 0 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2642;
			if (Power == 1 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2646;
			if (Power == 1 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2650;
			if (Power == 2 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2654;
			if (Power == 2 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2658;
			if (Power == 3 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2662;
			if (Power == 3 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2666;
			if (Power == 4 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2670;
			if (Power == 4 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2674;
			if (Power == 4 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2678;
			if (Power == 5 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2682;
			if (Power == 5 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2686;
			if (Power == 6 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2690;
			if (Power == 6 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2694;
			if (Power == 7 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2698;
			if (Power == 7 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2702;
			if (Power == 8 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2706;
			if (Power == 8 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2710;
			if (Power == 8 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2714;
			if (Power == 9 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2718;
			if (Power == 9 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2722;
			if (Power == 10 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2726;
			if (Power == 10 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2730;
			if (Power == 11 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2734;
			if (Power == 11 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2738;
			if (Power == 12 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2742;
			if (Power == 12 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2746;
			if (Power == 12 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2750;
			if (Power == 13 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2754;
			if (Power == 13 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2758;
			if (Power == 14 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2762;
			if (Power == 14 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2766;
			if (Power == 15 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2770;
			if (Power == 15 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2774;
			if (Power == 0 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2778;
			if (Power == 0 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2782;
			if (Power == 0 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2786;
			if (Power == 1 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2790;
			if (Power == 1 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2794;
			if (Power == 2 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2798;
			if (Power == 2 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2802;
			if (Power == 3 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2806;
			if (Power == 3 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2810;
			if (Power == 4 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2814;
			if (Power == 4 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2818;
			if (Power == 4 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2822;
			if (Power == 5 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2826;
			if (Power == 5 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2830;
			if (Power == 6 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2834;
			if (Power == 6 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2838;
			if (Power == 7 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2842;
			if (Power == 7 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2846;
			if (Power == 8 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2850;
			if (Power == 8 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2854;
			if (Power == 8 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2858;
			if (Power == 9 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2862;
			if (Power == 9 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2866;
			if (Power == 10 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2870;
			if (Power == 10 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2874;
			if (Power == 11 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2878;
			if (Power == 11 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2882;
			if (Power == 12 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2886;
			if (Power == 12 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2890;
			if (Power == 12 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2894;
			if (Power == 13 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2898;
			if (Power == 13 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2902;
			if (Power == 14 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2906;
			if (Power == 14 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2910;
			if (Power == 15 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2914;
			if (Power == 15 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2918;
			if (Power == 0 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 2922;
			if (Power == 0 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 2926;
			if (Power == 0 && South == South::None && West == West::None && East == East::None && North == North::Up) return 2930;
			if (Power == 1 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 2934;
			if (Power == 1 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 2938;
			if (Power == 2 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 2942;
			if (Power == 2 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 2946;
			if (Power == 3 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 2950;
			if (Power == 3 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 2954;
			if (Power == 4 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 2958;
			if (Power == 4 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 2962;
			if (Power == 4 && South == South::None && West == West::None && East == East::None && North == North::Up) return 2966;
			if (Power == 5 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 2970;
			if (Power == 5 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 2974;
			if (Power == 6 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 2978;
			if (Power == 6 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 2982;
			if (Power == 7 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 2986;
			if (Power == 7 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 2990;
			if (Power == 8 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 2994;
			if (Power == 8 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 2998;
			if (Power == 8 && South == South::None && West == West::None && East == East::None && North == North::Up) return 3002;
			if (Power == 9 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 3006;
			if (Power == 9 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 3010;
			if (Power == 10 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 3014;
			if (Power == 10 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 3018;
			if (Power == 11 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 3022;
			if (Power == 11 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 3026;
			if (Power == 12 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 3030;
			if (Power == 12 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 3034;
			if (Power == 12 && South == South::None && West == West::None && East == East::None && North == North::Up) return 3038;
			if (Power == 13 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 3042;
			if (Power == 13 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 3046;
			if (Power == 14 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 3050;
			if (Power == 14 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 3054;
			if (Power == 15 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 3058;
			if (Power == 15 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 3062;
			if (Power == 0 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3066;
			if (Power == 0 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3070;
			if (Power == 0 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3074;
			if (Power == 1 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3078;
			if (Power == 1 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3082;
			if (Power == 2 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3086;
			if (Power == 2 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3090;
			if (Power == 3 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3094;
			if (Power == 3 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3098;
			if (Power == 4 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3102;
			if (Power == 4 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3106;
			if (Power == 4 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3110;
			if (Power == 5 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3114;
			if (Power == 5 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3118;
			if (Power == 6 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3122;
			if (Power == 6 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3126;
			if (Power == 7 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3130;
			if (Power == 7 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3134;
			if (Power == 8 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3138;
			if (Power == 8 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3142;
			if (Power == 8 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3146;
			if (Power == 9 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3150;
			if (Power == 9 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3154;
			if (Power == 10 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3158;
			if (Power == 10 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3162;
			if (Power == 11 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3166;
			if (Power == 11 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3170;
			if (Power == 12 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3174;
			if (Power == 12 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3178;
			if (Power == 12 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3182;
			if (Power == 13 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3186;
			if (Power == 13 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3190;
			if (Power == 14 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3194;
			if (Power == 14 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3198;
			if (Power == 15 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3202;
			if (Power == 15 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3206;
			if (Power == 0 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3210;
			if (Power == 0 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3214;
			if (Power == 0 && South == South::None && West == West::None && East == East::None && North == North::None) return 3218;
			if (Power == 1 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3222;
			if (Power == 1 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3226;
			if (Power == 2 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3230;
			if (Power == 2 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3234;
			if (Power == 3 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3238;
			if (Power == 3 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3242;
			if (Power == 4 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3246;
			if (Power == 4 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3250;
			if (Power == 4 && South == South::None && West == West::None && East == East::None && North == North::None) return 3254;
			if (Power == 5 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3258;
			if (Power == 5 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3262;
			if (Power == 6 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3266;
			if (Power == 6 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3270;
			if (Power == 7 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3274;
			if (Power == 7 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3278;
			if (Power == 8 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3282;
			if (Power == 8 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3286;
			if (Power == 8 && South == South::None && West == West::None && East == East::None && North == North::None) return 3290;
			if (Power == 9 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3294;
			if (Power == 9 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3298;
			if (Power == 10 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3302;
			if (Power == 10 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3306;
			if (Power == 11 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3310;
			if (Power == 11 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3314;
			if (Power == 12 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3318;
			if (Power == 12 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3322;
			if (Power == 12 && South == South::None && West == West::None && East == East::None && North == North::None) return 3326;
			if (Power == 13 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3330;
			if (Power == 13 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3334;
			if (Power == 14 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3338;
			if (Power == 14 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3342;
			if (Power == 15 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3346;
			if (Power == 15 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3350;
			if (Power == 0 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2059;
			if (Power == 0 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2063;
			if (Power == 1 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2067;
			if (Power == 1 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2071;
			if (Power == 1 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2075;
			if (Power == 2 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2079;
			if (Power == 2 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2083;
			if (Power == 3 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2087;
			if (Power == 3 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2091;
			if (Power == 4 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2095;
			if (Power == 4 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2099;
			if (Power == 5 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2103;
			if (Power == 5 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2107;
			if (Power == 5 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2111;
			if (Power == 6 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2115;
			if (Power == 6 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2119;
			if (Power == 7 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2123;
			if (Power == 7 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2127;
			if (Power == 8 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2131;
			if (Power == 8 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2135;
			if (Power == 9 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2139;
			if (Power == 9 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2143;
			if (Power == 9 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2147;
			if (Power == 10 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2151;
			if (Power == 10 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2155;
			if (Power == 11 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2159;
			if (Power == 11 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2163;
			if (Power == 12 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2167;
			if (Power == 12 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2171;
			if (Power == 13 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2175;
			if (Power == 13 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2179;
			if (Power == 13 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2183;
			if (Power == 14 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2187;
			if (Power == 14 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2191;
			if (Power == 15 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2195;
			if (Power == 15 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2199;
			if (Power == 0 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2203;
			if (Power == 0 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2207;
			if (Power == 1 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2211;
			if (Power == 1 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2215;
			if (Power == 1 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2219;
			if (Power == 2 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2223;
			if (Power == 2 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2227;
			if (Power == 3 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2231;
			if (Power == 3 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2235;
			if (Power == 4 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2239;
			if (Power == 4 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2243;
			if (Power == 5 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2247;
			if (Power == 5 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2251;
			if (Power == 5 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2255;
			if (Power == 6 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2259;
			if (Power == 6 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2263;
			if (Power == 7 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2267;
			if (Power == 7 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2271;
			if (Power == 8 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2275;
			if (Power == 8 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2279;
			if (Power == 9 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2283;
			if (Power == 9 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2287;
			if (Power == 9 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2291;
			if (Power == 10 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2295;
			if (Power == 10 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2299;
			if (Power == 11 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2303;
			if (Power == 11 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2307;
			if (Power == 12 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2311;
			if (Power == 12 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2315;
			if (Power == 13 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2319;
			if (Power == 13 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2323;
			if (Power == 13 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2327;
			if (Power == 14 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2331;
			if (Power == 14 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2335;
			if (Power == 15 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2339;
			if (Power == 15 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2343;
			if (Power == 0 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2347;
			if (Power == 0 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2351;
			if (Power == 1 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2355;
			if (Power == 1 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2359;
			if (Power == 1 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2363;
			if (Power == 2 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2367;
			if (Power == 2 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2371;
			if (Power == 3 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2375;
			if (Power == 3 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2379;
			if (Power == 4 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2383;
			if (Power == 4 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2387;
			if (Power == 5 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2391;
			if (Power == 5 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2395;
			if (Power == 5 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2399;
			if (Power == 6 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2403;
			if (Power == 6 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2407;
			if (Power == 7 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2411;
			if (Power == 7 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2415;
			if (Power == 8 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2419;
			if (Power == 8 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2423;
			if (Power == 9 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2427;
			if (Power == 9 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2431;
			if (Power == 9 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2435;
			if (Power == 10 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2439;
			if (Power == 10 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2443;
			if (Power == 11 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2447;
			if (Power == 11 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2451;
			if (Power == 12 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2455;
			if (Power == 12 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2459;
			if (Power == 13 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2463;
			if (Power == 13 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2467;
			if (Power == 13 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2471;
			if (Power == 14 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2475;
			if (Power == 14 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2479;
			if (Power == 15 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2483;
			if (Power == 15 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2487;
			if (Power == 0 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2491;
			if (Power == 0 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2495;
			if (Power == 1 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2499;
			if (Power == 1 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2503;
			if (Power == 1 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2507;
			if (Power == 2 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2511;
			if (Power == 2 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2515;
			if (Power == 3 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2519;
			if (Power == 3 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2523;
			if (Power == 4 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2527;
			if (Power == 4 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2531;
			if (Power == 5 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2535;
			if (Power == 5 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2539;
			if (Power == 5 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2543;
			if (Power == 6 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2547;
			if (Power == 6 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2551;
			if (Power == 7 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2555;
			if (Power == 7 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2559;
			if (Power == 8 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2563;
			if (Power == 8 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2567;
			if (Power == 9 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2571;
			if (Power == 9 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2575;
			if (Power == 9 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2579;
			if (Power == 10 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2583;
			if (Power == 10 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2587;
			if (Power == 11 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2591;
			if (Power == 11 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2595;
			if (Power == 12 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2599;
			if (Power == 12 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2603;
			if (Power == 13 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2607;
			if (Power == 13 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2611;
			if (Power == 13 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2615;
			if (Power == 14 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2619;
			if (Power == 14 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2623;
			if (Power == 15 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2627;
			if (Power == 15 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2631;
			if (Power == 0 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2635;
			if (Power == 0 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2639;
			if (Power == 1 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2643;
			if (Power == 1 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2647;
			if (Power == 1 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2651;
			if (Power == 2 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2655;
			if (Power == 2 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2659;
			if (Power == 3 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2663;
			if (Power == 3 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2667;
			if (Power == 4 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2671;
			if (Power == 4 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2675;
			if (Power == 5 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2679;
			if (Power == 5 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2683;
			if (Power == 5 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2687;
			if (Power == 6 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2691;
			if (Power == 6 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2695;
			if (Power == 7 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2699;
			if (Power == 7 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2703;
			if (Power == 8 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2707;
			if (Power == 8 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2711;
			if (Power == 9 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2715;
			if (Power == 9 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2719;
			if (Power == 9 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2723;
			if (Power == 10 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2727;
			if (Power == 10 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2731;
			if (Power == 11 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2735;
			if (Power == 11 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2739;
			if (Power == 12 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2743;
			if (Power == 12 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2747;
			if (Power == 13 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2751;
			if (Power == 13 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2755;
			if (Power == 13 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2759;
			if (Power == 14 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2763;
			if (Power == 14 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2767;
			if (Power == 15 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2771;
			if (Power == 15 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2775;
			if (Power == 0 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2779;
			if (Power == 0 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2783;
			if (Power == 1 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2787;
			if (Power == 1 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2791;
			if (Power == 1 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2795;
			if (Power == 2 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2799;
			if (Power == 2 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2803;
			if (Power == 3 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2807;
			if (Power == 3 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2811;
			if (Power == 4 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2815;
			if (Power == 4 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2819;
			if (Power == 5 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2823;
			if (Power == 5 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2827;
			if (Power == 5 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2831;
			if (Power == 6 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2835;
			if (Power == 6 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2839;
			if (Power == 7 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2843;
			if (Power == 7 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2847;
			if (Power == 8 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2851;
			if (Power == 8 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2855;
			if (Power == 9 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2859;
			if (Power == 9 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2863;
			if (Power == 9 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2867;
			if (Power == 10 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2871;
			if (Power == 10 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2875;
			if (Power == 11 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2879;
			if (Power == 11 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2883;
			if (Power == 12 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2887;
			if (Power == 12 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2891;
			if (Power == 13 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2895;
			if (Power == 13 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2899;
			if (Power == 13 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2903;
			if (Power == 14 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2907;
			if (Power == 14 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2911;
			if (Power == 15 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2915;
			if (Power == 15 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2919;
			if (Power == 0 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 2923;
			if (Power == 0 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 2927;
			if (Power == 1 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 2931;
			if (Power == 1 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 2935;
			if (Power == 1 && South == South::None && West == West::None && East == East::None && North == North::Up) return 2939;
			if (Power == 2 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 2943;
			if (Power == 2 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 2947;
			if (Power == 3 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 2951;
			if (Power == 3 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 2955;
			if (Power == 4 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 2959;
			if (Power == 4 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 2963;
			if (Power == 5 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 2967;
			if (Power == 5 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 2971;
			if (Power == 5 && South == South::None && West == West::None && East == East::None && North == North::Up) return 2975;
			if (Power == 6 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 2979;
			if (Power == 6 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 2983;
			if (Power == 7 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 2987;
			if (Power == 7 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 2991;
			if (Power == 8 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 2995;
			if (Power == 8 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 2999;
			if (Power == 9 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 3003;
			if (Power == 9 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 3007;
			if (Power == 9 && South == South::None && West == West::None && East == East::None && North == North::Up) return 3011;
			if (Power == 10 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 3015;
			if (Power == 10 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 3019;
			if (Power == 11 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 3023;
			if (Power == 11 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 3027;
			if (Power == 12 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 3031;
			if (Power == 12 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 3035;
			if (Power == 13 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 3039;
			if (Power == 13 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 3043;
			if (Power == 13 && South == South::None && West == West::None && East == East::None && North == North::Up) return 3047;
			if (Power == 14 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 3051;
			if (Power == 14 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 3055;
			if (Power == 15 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 3059;
			if (Power == 15 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 3063;
			if (Power == 0 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3067;
			if (Power == 0 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3071;
			if (Power == 1 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3075;
			if (Power == 1 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3079;
			if (Power == 1 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3083;
			if (Power == 2 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3087;
			if (Power == 2 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3091;
			if (Power == 3 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3095;
			if (Power == 3 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3099;
			if (Power == 4 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3103;
			if (Power == 4 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3107;
			if (Power == 5 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3111;
			if (Power == 5 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3115;
			if (Power == 5 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3119;
			if (Power == 6 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3123;
			if (Power == 6 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3127;
			if (Power == 7 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3131;
			if (Power == 7 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3135;
			if (Power == 8 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3139;
			if (Power == 8 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3143;
			if (Power == 9 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3147;
			if (Power == 9 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3151;
			if (Power == 9 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3155;
			if (Power == 10 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3159;
			if (Power == 10 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3163;
			if (Power == 11 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3167;
			if (Power == 11 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3171;
			if (Power == 12 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3175;
			if (Power == 12 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3179;
			if (Power == 13 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3183;
			if (Power == 13 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3187;
			if (Power == 13 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3191;
			if (Power == 14 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3195;
			if (Power == 14 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3199;
			if (Power == 15 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3203;
			if (Power == 15 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3207;
			if (Power == 0 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3211;
			if (Power == 0 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3215;
			if (Power == 1 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3219;
			if (Power == 1 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3223;
			if (Power == 1 && South == South::None && West == West::None && East == East::None && North == North::None) return 3227;
			if (Power == 2 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3231;
			if (Power == 2 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3235;
			if (Power == 3 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3239;
			if (Power == 3 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3243;
			if (Power == 4 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3247;
			if (Power == 4 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3251;
			if (Power == 5 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3255;
			if (Power == 5 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3259;
			if (Power == 5 && South == South::None && West == West::None && East == East::None && North == North::None) return 3263;
			if (Power == 6 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3267;
			if (Power == 6 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3271;
			if (Power == 7 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3275;
			if (Power == 7 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3279;
			if (Power == 8 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3283;
			if (Power == 8 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3287;
			if (Power == 9 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3291;
			if (Power == 9 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3295;
			if (Power == 9 && South == South::None && West == West::None && East == East::None && North == North::None) return 3299;
			if (Power == 10 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3303;
			if (Power == 10 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3307;
			if (Power == 11 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3311;
			if (Power == 11 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3315;
			if (Power == 12 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3319;
			if (Power == 12 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3323;
			if (Power == 13 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3327;
			if (Power == 13 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3331;
			if (Power == 13 && South == South::None && West == West::None && East == East::None && North == North::None) return 3335;
			if (Power == 14 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3339;
			if (Power == 14 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3343;
			if (Power == 15 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3347;
			if (Power == 15 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3351;
			if (Power == 0 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2060;
			if (Power == 0 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2064;
			if (Power == 1 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2068;
			if (Power == 1 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2072;
			if (Power == 2 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2076;
			if (Power == 2 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2080;
			if (Power == 2 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2084;
			if (Power == 3 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2088;
			if (Power == 3 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2092;
			if (Power == 4 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2096;
			if (Power == 4 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2100;
			if (Power == 5 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2104;
			if (Power == 5 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2108;
			if (Power == 6 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2112;
			if (Power == 6 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2116;
			if (Power == 6 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2120;
			if (Power == 7 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2124;
			if (Power == 7 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2128;
			if (Power == 8 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2132;
			if (Power == 8 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2136;
			if (Power == 9 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2140;
			if (Power == 9 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2144;
			if (Power == 10 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2148;
			if (Power == 10 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2152;
			if (Power == 10 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2156;
			if (Power == 11 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2160;
			if (Power == 11 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2164;
			if (Power == 12 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2168;
			if (Power == 12 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2172;
			if (Power == 13 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2176;
			if (Power == 13 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2180;
			if (Power == 14 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2184;
			if (Power == 14 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2188;
			if (Power == 14 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2192;
			if (Power == 15 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2196;
			if (Power == 15 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2200;
			if (Power == 0 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2204;
			if (Power == 0 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2208;
			if (Power == 1 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2212;
			if (Power == 1 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2216;
			if (Power == 2 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2220;
			if (Power == 2 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2224;
			if (Power == 2 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2228;
			if (Power == 3 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2232;
			if (Power == 3 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2236;
			if (Power == 4 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2240;
			if (Power == 4 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2244;
			if (Power == 5 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2248;
			if (Power == 5 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2252;
			if (Power == 6 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2256;
			if (Power == 6 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2260;
			if (Power == 6 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2264;
			if (Power == 7 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2268;
			if (Power == 7 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2272;
			if (Power == 8 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2276;
			if (Power == 8 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2280;
			if (Power == 9 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2284;
			if (Power == 9 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2288;
			if (Power == 10 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2292;
			if (Power == 10 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2296;
			if (Power == 10 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2300;
			if (Power == 11 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2304;
			if (Power == 11 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2308;
			if (Power == 12 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2312;
			if (Power == 12 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2316;
			if (Power == 13 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2320;
			if (Power == 13 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2324;
			if (Power == 14 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2328;
			if (Power == 14 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2332;
			if (Power == 14 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2336;
			if (Power == 15 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2340;
			if (Power == 15 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2344;
			if (Power == 0 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2348;
			if (Power == 0 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2352;
			if (Power == 1 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2356;
			if (Power == 1 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2360;
			if (Power == 2 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2364;
			if (Power == 2 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2368;
			if (Power == 2 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2372;
			if (Power == 3 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2376;
			if (Power == 3 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2380;
			if (Power == 4 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2384;
			if (Power == 4 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2388;
			if (Power == 5 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2392;
			if (Power == 5 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2396;
			if (Power == 6 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2400;
			if (Power == 6 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2404;
			if (Power == 6 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2408;
			if (Power == 7 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2412;
			if (Power == 7 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2416;
			if (Power == 8 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2420;
			if (Power == 8 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2424;
			if (Power == 9 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2428;
			if (Power == 9 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2432;
			if (Power == 10 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2436;
			if (Power == 10 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2440;
			if (Power == 10 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2444;
			if (Power == 11 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2448;
			if (Power == 11 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2452;
			if (Power == 12 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2456;
			if (Power == 12 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2460;
			if (Power == 13 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2464;
			if (Power == 13 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2468;
			if (Power == 14 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2472;
			if (Power == 14 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2476;
			if (Power == 14 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2480;
			if (Power == 15 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2484;
			if (Power == 15 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2488;
			if (Power == 0 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2492;
			if (Power == 0 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2496;
			if (Power == 1 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2500;
			if (Power == 1 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2504;
			if (Power == 2 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2508;
			if (Power == 2 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2512;
			if (Power == 2 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2516;
			if (Power == 3 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2520;
			if (Power == 3 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2524;
			if (Power == 4 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2528;
			if (Power == 4 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2532;
			if (Power == 5 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2536;
			if (Power == 5 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2540;
			if (Power == 6 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2544;
			if (Power == 6 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2548;
			if (Power == 6 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2552;
			if (Power == 7 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2556;
			if (Power == 7 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2560;
			if (Power == 8 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2564;
			if (Power == 8 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2568;
			if (Power == 9 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2572;
			if (Power == 9 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2576;
			if (Power == 10 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2580;
			if (Power == 10 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2584;
			if (Power == 10 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2588;
			if (Power == 11 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2592;
			if (Power == 11 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2596;
			if (Power == 12 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2600;
			if (Power == 12 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2604;
			if (Power == 13 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2608;
			if (Power == 13 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2612;
			if (Power == 14 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2616;
			if (Power == 14 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2620;
			if (Power == 14 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2624;
			if (Power == 15 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2628;
			if (Power == 15 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2632;
			if (Power == 0 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2636;
			if (Power == 0 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2640;
			if (Power == 1 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2644;
			if (Power == 1 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2648;
			if (Power == 2 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2652;
			if (Power == 2 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2656;
			if (Power == 2 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2660;
			if (Power == 3 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2664;
			if (Power == 3 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2668;
			if (Power == 4 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2672;
			if (Power == 4 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2676;
			if (Power == 5 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2680;
			if (Power == 5 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2684;
			if (Power == 6 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2688;
			if (Power == 6 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2692;
			if (Power == 6 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2696;
			if (Power == 7 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2700;
			if (Power == 7 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2704;
			if (Power == 8 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2708;
			if (Power == 8 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2712;
			if (Power == 9 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2716;
			if (Power == 9 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2720;
			if (Power == 10 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2724;
			if (Power == 10 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2728;
			if (Power == 10 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2732;
			if (Power == 11 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2736;
			if (Power == 11 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2740;
			if (Power == 12 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2744;
			if (Power == 12 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2748;
			if (Power == 13 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2752;
			if (Power == 13 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2756;
			if (Power == 14 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2760;
			if (Power == 14 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2764;
			if (Power == 14 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2768;
			if (Power == 15 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2772;
			if (Power == 15 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2776;
			if (Power == 0 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2780;
			if (Power == 0 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2784;
			if (Power == 1 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2788;
			if (Power == 1 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2792;
			if (Power == 2 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2796;
			if (Power == 2 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2800;
			if (Power == 2 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2804;
			if (Power == 3 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2808;
			if (Power == 3 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2812;
			if (Power == 4 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2816;
			if (Power == 4 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2820;
			if (Power == 5 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2824;
			if (Power == 5 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2828;
			if (Power == 6 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2832;
			if (Power == 6 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2836;
			if (Power == 6 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2840;
			if (Power == 7 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2844;
			if (Power == 7 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2848;
			if (Power == 8 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2852;
			if (Power == 8 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2856;
			if (Power == 9 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2860;
			if (Power == 9 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2864;
			if (Power == 10 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2868;
			if (Power == 10 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2872;
			if (Power == 10 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2876;
			if (Power == 11 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2880;
			if (Power == 11 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2884;
			if (Power == 12 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2888;
			if (Power == 12 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2892;
			if (Power == 13 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2896;
			if (Power == 13 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2900;
			if (Power == 14 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2904;
			if (Power == 14 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2908;
			if (Power == 14 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2912;
			if (Power == 15 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2916;
			if (Power == 15 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2920;
			if (Power == 0 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 2924;
			if (Power == 0 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 2928;
			if (Power == 1 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 2932;
			if (Power == 1 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 2936;
			if (Power == 2 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 2940;
			if (Power == 2 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 2944;
			if (Power == 2 && South == South::None && West == West::None && East == East::None && North == North::Up) return 2948;
			if (Power == 3 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 2952;
			if (Power == 3 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 2956;
			if (Power == 4 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 2960;
			if (Power == 4 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 2964;
			if (Power == 5 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 2968;
			if (Power == 5 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 2972;
			if (Power == 6 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 2976;
			if (Power == 6 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 2980;
			if (Power == 6 && South == South::None && West == West::None && East == East::None && North == North::Up) return 2984;
			if (Power == 7 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 2988;
			if (Power == 7 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 2992;
			if (Power == 8 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 2996;
			if (Power == 8 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 3000;
			if (Power == 9 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 3004;
			if (Power == 9 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 3008;
			if (Power == 10 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 3012;
			if (Power == 10 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 3016;
			if (Power == 10 && South == South::None && West == West::None && East == East::None && North == North::Up) return 3020;
			if (Power == 11 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 3024;
			if (Power == 11 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 3028;
			if (Power == 12 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 3032;
			if (Power == 12 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 3036;
			if (Power == 13 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 3040;
			if (Power == 13 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 3044;
			if (Power == 14 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 3048;
			if (Power == 14 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 3052;
			if (Power == 14 && South == South::None && West == West::None && East == East::None && North == North::Up) return 3056;
			if (Power == 15 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 3060;
			if (Power == 15 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 3064;
			if (Power == 0 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3068;
			if (Power == 0 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3072;
			if (Power == 1 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3076;
			if (Power == 1 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3080;
			if (Power == 2 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3084;
			if (Power == 2 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3088;
			if (Power == 2 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3092;
			if (Power == 3 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3096;
			if (Power == 3 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3100;
			if (Power == 4 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3104;
			if (Power == 4 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3108;
			if (Power == 5 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3112;
			if (Power == 5 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3116;
			if (Power == 6 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3120;
			if (Power == 6 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3124;
			if (Power == 6 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3128;
			if (Power == 7 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3132;
			if (Power == 7 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3136;
			if (Power == 8 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3140;
			if (Power == 8 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3144;
			if (Power == 9 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3148;
			if (Power == 9 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3152;
			if (Power == 10 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3156;
			if (Power == 10 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3160;
			if (Power == 10 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3164;
			if (Power == 11 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3168;
			if (Power == 11 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3172;
			if (Power == 12 && South == South::Up && West == West::None && East == East::None && North == North::Side) return 3176;
			if (Power == 12 && South == South::None && West == West::Up && East == East::None && North == North::Side) return 3180;
			if (Power == 13 && South == South::Up && West == West::Side && East == East::None && North == North::Side) return 3184;
			if (Power == 13 && South == South::Side && West == West::None && East == East::None && North == North::Side) return 3188;
			if (Power == 14 && South == South::Up && West == West::Up && East == East::None && North == North::Side) return 3192;
			if (Power == 14 && South == South::Side && West == West::Side && East == East::None && North == North::Side) return 3196;
			if (Power == 14 && South == South::None && West == West::None && East == East::None && North == North::Side) return 3200;
			if (Power == 15 && South == South::Side && West == West::Up && East == East::None && North == North::Side) return 3204;
			if (Power == 15 && South == South::None && West == West::Side && East == East::None && North == North::Side) return 3208;
			if (Power == 0 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3212;
			if (Power == 0 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3216;
			if (Power == 1 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3220;
			if (Power == 1 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3224;
			if (Power == 2 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3228;
			if (Power == 2 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3232;
			if (Power == 2 && South == South::None && West == West::None && East == East::None && North == North::None) return 3236;
			if (Power == 3 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3240;
			if (Power == 3 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3244;
			if (Power == 4 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3248;
			if (Power == 4 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3252;
			if (Power == 5 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3256;
			if (Power == 5 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3260;
			if (Power == 6 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3264;
			if (Power == 6 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3268;
			if (Power == 6 && South == South::None && West == West::None && East == East::None && North == North::None) return 3272;
			if (Power == 7 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3276;
			if (Power == 7 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3280;
			if (Power == 8 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3284;
			if (Power == 8 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3288;
			if (Power == 9 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3292;
			if (Power == 9 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3296;
			if (Power == 10 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3300;
			if (Power == 10 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3304;
			if (Power == 10 && South == South::None && West == West::None && East == East::None && North == North::None) return 3308;
			if (Power == 11 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3312;
			if (Power == 11 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3316;
			if (Power == 12 && South == South::Up && West == West::None && East == East::None && North == North::None) return 3320;
			if (Power == 12 && South == South::None && West == West::Up && East == East::None && North == North::None) return 3324;
			if (Power == 13 && South == South::Up && West == West::Side && East == East::None && North == North::None) return 3328;
			if (Power == 13 && South == South::Side && West == West::None && East == East::None && North == North::None) return 3332;
			if (Power == 14 && South == South::Up && West == West::Up && East == East::None && North == North::None) return 3336;
			if (Power == 14 && South == South::Side && West == West::Side && East == East::None && North == North::None) return 3340;
			if (Power == 14 && South == South::None && West == West::None && East == East::None && North == North::None) return 3344;
			if (Power == 15 && South == South::Side && West == West::Up && East == East::None && North == North::None) return 3348;
			if (Power == 15 && South == South::None && West == West::Side && East == East::None && North == North::None) return 3352;
			if (Power == 0 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2061;
			if (Power == 0 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2065;
			if (Power == 1 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2069;
			if (Power == 1 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2073;
			if (Power == 2 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2077;
			if (Power == 2 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2081;
			if (Power == 3 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2085;
			if (Power == 3 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2089;
			if (Power == 3 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2093;
			if (Power == 4 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2097;
			if (Power == 4 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2101;
			if (Power == 5 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2105;
			if (Power == 5 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2109;
			if (Power == 6 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2113;
			if (Power == 6 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2117;
			if (Power == 7 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2121;
			if (Power == 7 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2125;
			if (Power == 7 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2129;
			if (Power == 8 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2133;
			if (Power == 8 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2137;
			if (Power == 9 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2141;
			if (Power == 9 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2145;
			if (Power == 10 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2149;
			if (Power == 10 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2153;
			if (Power == 11 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2157;
			if (Power == 11 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2161;
			if (Power == 11 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2165;
			if (Power == 12 && South == South::Side && West == West::Up && East == East::Up && North == North::Up) return 2169;
			if (Power == 12 && South == South::None && West == West::Side && East == East::Up && North == North::Up) return 2173;
			if (Power == 13 && South == South::Up && West == West::None && East == East::Up && North == North::Up) return 2177;
			if (Power == 13 && South == South::None && West == West::Up && East == East::Up && North == North::Up) return 2181;
			if (Power == 14 && South == South::Up && West == West::Side && East == East::Up && North == North::Up) return 2185;
			if (Power == 14 && South == South::Side && West == West::None && East == East::Up && North == North::Up) return 2189;
			if (Power == 15 && South == South::Up && West == West::Up && East == East::Up && North == North::Up) return 2193;
			if (Power == 15 && South == South::Side && West == West::Side && East == East::Up && North == North::Up) return 2197;
			if (Power == 15 && South == South::None && West == West::None && East == East::Up && North == North::Up) return 2201;
			if (Power == 0 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2205;
			if (Power == 0 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2209;
			if (Power == 1 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2213;
			if (Power == 1 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2217;
			if (Power == 2 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2221;
			if (Power == 2 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2225;
			if (Power == 3 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2229;
			if (Power == 3 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2233;
			if (Power == 3 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2237;
			if (Power == 4 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2241;
			if (Power == 4 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2245;
			if (Power == 5 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2249;
			if (Power == 5 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2253;
			if (Power == 6 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2257;
			if (Power == 6 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2261;
			if (Power == 7 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2265;
			if (Power == 7 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2269;
			if (Power == 7 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2273;
			if (Power == 8 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2277;
			if (Power == 8 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2281;
			if (Power == 9 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2285;
			if (Power == 9 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2289;
			if (Power == 10 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2293;
			if (Power == 10 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2297;
			if (Power == 11 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2301;
			if (Power == 11 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2305;
			if (Power == 11 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2309;
			if (Power == 12 && South == South::Side && West == West::Up && East == East::Up && North == North::Side) return 2313;
			if (Power == 12 && South == South::None && West == West::Side && East == East::Up && North == North::Side) return 2317;
			if (Power == 13 && South == South::Up && West == West::None && East == East::Up && North == North::Side) return 2321;
			if (Power == 13 && South == South::None && West == West::Up && East == East::Up && North == North::Side) return 2325;
			if (Power == 14 && South == South::Up && West == West::Side && East == East::Up && North == North::Side) return 2329;
			if (Power == 14 && South == South::Side && West == West::None && East == East::Up && North == North::Side) return 2333;
			if (Power == 15 && South == South::Up && West == West::Up && East == East::Up && North == North::Side) return 2337;
			if (Power == 15 && South == South::Side && West == West::Side && East == East::Up && North == North::Side) return 2341;
			if (Power == 15 && South == South::None && West == West::None && East == East::Up && North == North::Side) return 2345;
			if (Power == 0 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2349;
			if (Power == 0 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2353;
			if (Power == 1 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2357;
			if (Power == 1 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2361;
			if (Power == 2 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2365;
			if (Power == 2 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2369;
			if (Power == 3 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2373;
			if (Power == 3 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2377;
			if (Power == 3 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2381;
			if (Power == 4 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2385;
			if (Power == 4 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2389;
			if (Power == 5 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2393;
			if (Power == 5 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2397;
			if (Power == 6 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2401;
			if (Power == 6 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2405;
			if (Power == 7 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2409;
			if (Power == 7 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2413;
			if (Power == 7 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2417;
			if (Power == 8 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2421;
			if (Power == 8 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2425;
			if (Power == 9 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2429;
			if (Power == 9 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2433;
			if (Power == 10 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2437;
			if (Power == 10 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2441;
			if (Power == 11 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2445;
			if (Power == 11 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2449;
			if (Power == 11 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2453;
			if (Power == 12 && South == South::Side && West == West::Up && East == East::Up && North == North::None) return 2457;
			if (Power == 12 && South == South::None && West == West::Side && East == East::Up && North == North::None) return 2461;
			if (Power == 13 && South == South::Up && West == West::None && East == East::Up && North == North::None) return 2465;
			if (Power == 13 && South == South::None && West == West::Up && East == East::Up && North == North::None) return 2469;
			if (Power == 14 && South == South::Up && West == West::Side && East == East::Up && North == North::None) return 2473;
			if (Power == 14 && South == South::Side && West == West::None && East == East::Up && North == North::None) return 2477;
			if (Power == 15 && South == South::Up && West == West::Up && East == East::Up && North == North::None) return 2481;
			if (Power == 15 && South == South::Side && West == West::Side && East == East::Up && North == North::None) return 2485;
			if (Power == 15 && South == South::None && West == West::None && East == East::Up && North == North::None) return 2489;
			if (Power == 0 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2493;
			if (Power == 0 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2497;
			if (Power == 1 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2501;
			if (Power == 1 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2505;
			if (Power == 2 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2509;
			if (Power == 2 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2513;
			if (Power == 3 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2517;
			if (Power == 3 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2521;
			if (Power == 3 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2525;
			if (Power == 4 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2529;
			if (Power == 4 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2533;
			if (Power == 5 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2537;
			if (Power == 5 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2541;
			if (Power == 6 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2545;
			if (Power == 6 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2549;
			if (Power == 7 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2553;
			if (Power == 7 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2557;
			if (Power == 7 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2561;
			if (Power == 8 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2565;
			if (Power == 8 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2569;
			if (Power == 9 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2573;
			if (Power == 9 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2577;
			if (Power == 10 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2581;
			if (Power == 10 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2585;
			if (Power == 11 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2589;
			if (Power == 11 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2593;
			if (Power == 11 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2597;
			if (Power == 12 && South == South::Side && West == West::Up && East == East::Side && North == North::Up) return 2601;
			if (Power == 12 && South == South::None && West == West::Side && East == East::Side && North == North::Up) return 2605;
			if (Power == 13 && South == South::Up && West == West::None && East == East::Side && North == North::Up) return 2609;
			if (Power == 13 && South == South::None && West == West::Up && East == East::Side && North == North::Up) return 2613;
			if (Power == 14 && South == South::Up && West == West::Side && East == East::Side && North == North::Up) return 2617;
			if (Power == 14 && South == South::Side && West == West::None && East == East::Side && North == North::Up) return 2621;
			if (Power == 15 && South == South::Up && West == West::Up && East == East::Side && North == North::Up) return 2625;
			if (Power == 15 && South == South::Side && West == West::Side && East == East::Side && North == North::Up) return 2629;
			if (Power == 15 && South == South::None && West == West::None && East == East::Side && North == North::Up) return 2633;
			if (Power == 0 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2637;
			if (Power == 0 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2641;
			if (Power == 1 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2645;
			if (Power == 1 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2649;
			if (Power == 2 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2653;
			if (Power == 2 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2657;
			if (Power == 3 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2661;
			if (Power == 3 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2665;
			if (Power == 3 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2669;
			if (Power == 4 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2673;
			if (Power == 4 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2677;
			if (Power == 5 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2681;
			if (Power == 5 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2685;
			if (Power == 6 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2689;
			if (Power == 6 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2693;
			if (Power == 7 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2697;
			if (Power == 7 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2701;
			if (Power == 7 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2705;
			if (Power == 8 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2709;
			if (Power == 8 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2713;
			if (Power == 9 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2717;
			if (Power == 9 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2721;
			if (Power == 10 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2725;
			if (Power == 10 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2729;
			if (Power == 11 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2733;
			if (Power == 11 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2737;
			if (Power == 11 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2741;
			if (Power == 12 && South == South::Side && West == West::Up && East == East::Side && North == North::Side) return 2745;
			if (Power == 12 && South == South::None && West == West::Side && East == East::Side && North == North::Side) return 2749;
			if (Power == 13 && South == South::Up && West == West::None && East == East::Side && North == North::Side) return 2753;
			if (Power == 13 && South == South::None && West == West::Up && East == East::Side && North == North::Side) return 2757;
			if (Power == 14 && South == South::Up && West == West::Side && East == East::Side && North == North::Side) return 2761;
			if (Power == 14 && South == South::Side && West == West::None && East == East::Side && North == North::Side) return 2765;
			if (Power == 15 && South == South::Up && West == West::Up && East == East::Side && North == North::Side) return 2769;
			if (Power == 15 && South == South::Side && West == West::Side && East == East::Side && North == North::Side) return 2773;
			if (Power == 15 && South == South::None && West == West::None && East == East::Side && North == North::Side) return 2777;
			if (Power == 0 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2781;
			if (Power == 0 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2785;
			if (Power == 1 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2789;
			if (Power == 1 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2793;
			if (Power == 2 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2797;
			if (Power == 2 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2801;
			if (Power == 3 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2805;
			if (Power == 3 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2809;
			if (Power == 3 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2813;
			if (Power == 4 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2817;
			if (Power == 4 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2821;
			if (Power == 5 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2825;
			if (Power == 5 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2829;
			if (Power == 6 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2833;
			if (Power == 6 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2837;
			if (Power == 7 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2841;
			if (Power == 7 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2845;
			if (Power == 7 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2849;
			if (Power == 8 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2853;
			if (Power == 8 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2857;
			if (Power == 9 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2861;
			if (Power == 9 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2865;
			if (Power == 10 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2869;
			if (Power == 10 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2873;
			if (Power == 11 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2877;
			if (Power == 11 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2881;
			if (Power == 11 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2885;
			if (Power == 12 && South == South::Side && West == West::Up && East == East::Side && North == North::None) return 2889;
			if (Power == 12 && South == South::None && West == West::Side && East == East::Side && North == North::None) return 2893;
			if (Power == 13 && South == South::Up && West == West::None && East == East::Side && North == North::None) return 2897;
			if (Power == 13 && South == South::None && West == West::Up && East == East::Side && North == North::None) return 2901;
			if (Power == 14 && South == South::Up && West == West::Side && East == East::Side && North == North::None) return 2905;
			if (Power == 14 && South == South::Side && West == West::None && East == East::Side && North == North::None) return 2909;
			if (Power == 15 && South == South::Up && West == West::Up && East == East::Side && North == North::None) return 2913;
			if (Power == 15 && South == South::Side && West == West::Side && East == East::Side && North == North::None) return 2917;
			if (Power == 15 && South == South::None && West == West::None && East == East::Side && North == North::None) return 2921;
			if (Power == 0 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 2925;
			if (Power == 0 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 2929;
			if (Power == 1 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 2933;
			if (Power == 1 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 2937;
			if (Power == 2 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 2941;
			if (Power == 2 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 2945;
			if (Power == 3 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 2949;
			if (Power == 3 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 2953;
			if (Power == 3 && South == South::None && West == West::None && East == East::None && North == North::Up) return 2957;
			if (Power == 4 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 2961;
			if (Power == 4 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 2965;
			if (Power == 5 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 2969;
			if (Power == 5 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 2973;
			if (Power == 6 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 2977;
			if (Power == 6 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 2981;
			if (Power == 7 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 2985;
			if (Power == 7 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 2989;
			if (Power == 7 && South == South::None && West == West::None && East == East::None && North == North::Up) return 2993;
			if (Power == 8 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 2997;
			if (Power == 8 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 3001;
			if (Power == 9 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 3005;
			if (Power == 9 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 3009;
			if (Power == 10 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 3013;
			if (Power == 10 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 3017;
			if (Power == 11 && South == South::Up && West == West::Up && East == East::None && North == North::Up) return 3021;
			if (Power == 11 && South == South::Side && West == West::Side && East == East::None && North == North::Up) return 3025;
			if (Power == 11 && South == South::None && West == West::None && East == East::None && North == North::Up) return 3029;
			if (Power == 12 && South == South::Side && West == West::Up && East == East::None && North == North::Up) return 3033;
			if (Power == 12 && South == South::None && West == West::Side && East == East::None && North == North::Up) return 3037;
			if (Power == 13 && South == South::Up && West == West::None && East == East::None && North == North::Up) return 3041;
			if (Power == 13 && South == South::None && West == West::Up && East == East::None && North == North::Up) return 3045;
			if (Power == 14 && South == South::Up && West == West::Side && East == East::None && North == North::Up) return 3049;
			if (Power == 14 && South == South::Side && West == West::None && East == East::None && North == North::Up) return 3053;
			return 3057;
		}
		short RedstoneWire();
		enum East East(short ID);
		enum North North(short ID);
		unsigned char Power(short ID);
		enum South South(short ID);
		enum West West(short ID);
	}
	namespace Repeater
	{
		constexpr short Repeater(unsigned char Delay, eBlockFace Facing, bool Locked, bool Powered)
		{
			if (Locked && Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4051;
			if (Locked && Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XP) return 4059;
			if (Locked && Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4067;
			if (Locked && Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XP) return 4075;
			if (Locked && Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4083;
			if (Locked && Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XP) return 4091;
			if (Locked && !Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4036;
			if (Locked && !Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XP) return 4044;
			if (Locked && !Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4052;
			if (Locked && !Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XP) return 4060;
			if (Locked && !Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4068;
			if (Locked && !Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XP) return 4076;
			if (Locked && !Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4084;
			if (Locked && !Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XP) return 4092;
			if (!Locked && Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4037;
			if (!Locked && Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XP) return 4045;
			if (!Locked && Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4053;
			if (!Locked && Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XP) return 4061;
			if (!Locked && Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4069;
			if (!Locked && Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XP) return 4077;
			if (!Locked && Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4085;
			if (!Locked && Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XP) return 4093;
			if (!Locked && !Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4038;
			if (!Locked && !Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XP) return 4046;
			if (!Locked && !Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4054;
			if (!Locked && !Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XP) return 4062;
			if (!Locked && !Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4070;
			if (!Locked && !Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XP) return 4078;
			if (!Locked && !Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4086;
			if (Locked && Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4031;
			if (Locked && Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XM) return 4039;
			if (Locked && Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4047;
			if (Locked && Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XM) return 4055;
			if (Locked && Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4063;
			if (Locked && Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XM) return 4071;
			if (Locked && Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4079;
			if (Locked && Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XM) return 4087;
			if (Locked && !Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4032;
			if (Locked && !Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XM) return 4040;
			if (Locked && !Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4048;
			if (Locked && !Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XM) return 4056;
			if (Locked && !Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4064;
			if (Locked && !Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XM) return 4072;
			if (Locked && !Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4080;
			if (Locked && !Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XM) return 4088;
			if (!Locked && Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4033;
			if (!Locked && Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XM) return 4041;
			if (!Locked && Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4049;
			if (!Locked && Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XM) return 4057;
			if (!Locked && Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4065;
			if (!Locked && Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XM) return 4073;
			if (!Locked && Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4081;
			if (!Locked && Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XM) return 4089;
			if (!Locked && !Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4034;
			if (!Locked && !Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XM) return 4042;
			if (!Locked && !Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4050;
			if (!Locked && !Powered && Delay == 2 && Facing == eBlockFace::BLOCK_FACE_XM) return 4058;
			if (!Locked && !Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4066;
			if (!Locked && !Powered && Delay == 3 && Facing == eBlockFace::BLOCK_FACE_XM) return 4074;
			if (!Locked && !Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_ZM) return 4082;
			if (!Locked && !Powered && Delay == 4 && Facing == eBlockFace::BLOCK_FACE_XM) return 4090;
			if (Locked && Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_ZP) return 4035;
			if (Locked && Powered && Delay == 1 && Facing == eBlockFace::BLOCK_FACE_XP) return 4043;
			return 4094;
		}
		short Repeater();
		unsigned char Delay(short ID);
		eBlockFace Facing(short ID);
		bool Locked(short ID);
		bool Powered(short ID);
	}
	namespace RepeatingCommandBlock
	{
		constexpr short RepeatingCommandBlock(bool Conditional, eBlockFace Facing)
		{
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 9225;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 9227;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 9229;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZM) return 9231;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_ZP) return 9233;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_YP) return 9235;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 9226;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 9228;
			if (Conditional && Facing == eBlockFace::BLOCK_FACE_YM) return 9230;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XP) return 9232;
			if (!Conditional && Facing == eBlockFace::BLOCK_FACE_XM) return 9234;
			return 9236;
		}
		short RepeatingCommandBlock();
		bool Conditional(short ID);
		eBlockFace Facing(short ID);
	}
	namespace RespawnAnchor
	{
		constexpr short RespawnAnchor(unsigned char Charges)
		{
			if (Charges == 0) return 15829;
			if (Charges == 4) return 15833;
			if (Charges == 1) return 15830;
			if (Charges == 2) return 15831;
			return 15832;
		}
		short RespawnAnchor();
		unsigned char Charges(short ID);
	}
	namespace RoseBush
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short RoseBush(enum Half Half)
		{
			if (Half == Half::Upper) return 7889;
			return 7890;
		}
		short RoseBush();
		enum Half Half(short ID);
	}
	namespace Sand
	{
		constexpr short Sand()
		{
			return 66;
		}
	}
	namespace Sandstone
	{
		constexpr short Sandstone()
		{
			return 246;
		}
	}
	namespace SandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SandstoneSlab(enum Type Type)
		{
			if (Type == Type::Double && !false) return 8353;
			if (Type == Type::Bottom && false) return 8350;
			if (Type == Type::Bottom && !false) return 8351;
			if (Type == Type::Top && false) return 8348;
			if (Type == Type::Double && false) return 8352;
			return 8349;
		}
		short SandstoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace SandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SandstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5203;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5204;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5205;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5206;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5207;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5208;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5209;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5210;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5211;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5212;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5213;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5214;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5215;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5216;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5217;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5218;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5219;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5220;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5221;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5222;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5223;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5224;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5225;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5226;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5227;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5228;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5229;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5230;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5231;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5232;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5233;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5170;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5234;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5171;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5235;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5172;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5236;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5173;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5237;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5174;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5238;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5175;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5239;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5176;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5240;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5177;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5241;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5178;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5242;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5179;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5243;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5180;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5244;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5181;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5245;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5182;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5246;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5183;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5247;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5184;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5248;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5185;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5249;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5186;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5187;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5188;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5189;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5190;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5191;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5192;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5193;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5194;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5195;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5196;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5197;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5198;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5199;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5200;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5201;
			return 5202;
		}
		short SandstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace SandstoneWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short SandstoneWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14100;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14104;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 13785;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 13789;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 13793;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 13797;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 13801;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 13805;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 13809;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 13813;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 13817;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 13821;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 13825;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 13829;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 13833;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 13837;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 13841;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 13845;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 13849;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 13853;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 13857;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 13861;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 13865;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 13869;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 13873;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 13877;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 13881;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 13885;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 13889;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 13893;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 13897;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 13901;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 13905;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 13909;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 13913;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 13917;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 13921;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 13925;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 13929;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 13933;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 13937;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 13941;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 13945;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 13949;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 13953;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 13957;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 13961;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13965;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 13969;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13973;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13977;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 13981;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13985;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13989;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 13993;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13997;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 14001;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 14005;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 14009;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 14013;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 14017;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 14021;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 14025;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 14029;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 14033;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14037;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 14041;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14045;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14049;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 14053;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14057;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14061;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 14065;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14069;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14073;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14077;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14081;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14085;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14089;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14093;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14097;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14101;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14105;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 13786;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 13790;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 13794;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 13798;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 13802;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 13806;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 13810;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 13814;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 13818;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 13822;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 13826;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 13830;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 13834;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 13838;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 13842;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 13846;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 13850;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 13854;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 13858;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 13862;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13866;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 13870;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 13874;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13878;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 13882;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 13886;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13890;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 13894;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 13898;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 13902;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 13906;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 13910;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 13914;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 13918;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 13922;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 13926;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 13930;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 13934;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13938;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 13942;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 13946;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13950;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 13954;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 13958;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13962;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 13966;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13970;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13974;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 13978;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13982;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13986;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 13990;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 13994;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13998;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 14002;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 14006;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14010;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 14014;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 14018;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14022;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 14026;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 14030;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14034;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 14038;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14042;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14046;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 14050;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14054;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14058;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 14062;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 14066;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14070;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 14074;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14078;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14082;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 14086;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14090;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14094;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 14098;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 14102;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14106;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 13783;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 13787;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 13791;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 13795;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 13799;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 13803;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 13807;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 13811;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 13815;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 13819;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 13823;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 13827;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 13831;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 13835;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 13839;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 13843;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 13847;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 13851;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 13855;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 13859;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13863;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 13867;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 13871;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13875;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 13879;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 13883;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 13887;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 13891;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 13895;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 13899;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 13903;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 13907;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 13911;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 13915;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 13919;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 13923;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 13927;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 13931;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13935;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 13939;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 13943;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13947;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 13951;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 13955;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 13959;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 13963;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 13967;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13971;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 13975;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 13979;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13983;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 13987;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 13991;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 13995;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 13999;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 14003;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14007;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 14011;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 14015;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14019;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 14023;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 14027;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 14031;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 14035;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 14039;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14043;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 14047;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 14051;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14055;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 14059;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 14063;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 14067;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 14071;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14075;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14079;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 14083;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14087;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14091;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 14095;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14099;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 14103;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 13784;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 13788;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 13792;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 13796;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 13800;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 13804;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 13808;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 13812;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 13816;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 13820;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 13824;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 13828;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 13832;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 13836;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 13840;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 13844;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 13848;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 13852;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 13856;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 13860;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 13864;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 13868;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 13872;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 13876;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 13880;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 13884;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 13888;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 13892;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 13896;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 13900;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 13904;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 13908;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 13912;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 13916;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 13920;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 13924;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 13928;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 13932;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 13936;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 13940;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 13944;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 13948;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 13952;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 13956;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 13960;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 13964;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13968;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 13972;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 13976;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13980;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 13984;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 13988;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 13992;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 13996;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 14000;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 14004;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 14008;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 14012;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 14016;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 14020;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 14024;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 14028;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 14032;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 14036;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14040;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 14044;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 14048;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14052;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 14056;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 14060;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 14064;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 14068;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14072;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14076;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14080;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 14084;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 14088;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 14092;
			return 14096;
		}
		short SandstoneWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace Scaffolding
	{
		constexpr short Scaffolding(bool Bottom, unsigned char Distance)
		{
			if (Distance == 6 && !false && !Bottom) return 14784;
			if (Distance == 3 && false && Bottom) return 14761;
			if (Distance == 7 && false && Bottom) return 14769;
			if (Distance == 3 && false && !Bottom) return 14777;
			if (Distance == 7 && false && !Bottom) return 14785;
			if (Distance == 3 && !false && Bottom) return 14762;
			if (Distance == 7 && !false && Bottom) return 14770;
			if (Distance == 3 && !false && !Bottom) return 14778;
			if (Distance == 0 && false && Bottom) return 14755;
			if (Distance == 4 && false && Bottom) return 14763;
			if (Distance == 0 && false && !Bottom) return 14771;
			if (Distance == 4 && false && !Bottom) return 14779;
			if (Distance == 0 && !false && Bottom) return 14756;
			if (Distance == 4 && !false && Bottom) return 14764;
			if (Distance == 0 && !false && !Bottom) return 14772;
			if (Distance == 4 && !false && !Bottom) return 14780;
			if (Distance == 1 && false && Bottom) return 14757;
			if (Distance == 5 && false && Bottom) return 14765;
			if (Distance == 1 && false && !Bottom) return 14773;
			if (Distance == 5 && false && !Bottom) return 14781;
			if (Distance == 1 && !false && Bottom) return 14758;
			if (Distance == 5 && !false && Bottom) return 14766;
			if (Distance == 1 && !false && !Bottom) return 14774;
			if (Distance == 5 && !false && !Bottom) return 14782;
			if (Distance == 2 && false && Bottom) return 14759;
			if (Distance == 6 && false && Bottom) return 14767;
			if (Distance == 2 && false && !Bottom) return 14775;
			if (Distance == 6 && false && !Bottom) return 14783;
			if (Distance == 2 && !false && Bottom) return 14760;
			if (Distance == 6 && !false && Bottom) return 14768;
			if (Distance == 2 && !false && !Bottom) return 14776;
			return 14786;
		}
		short Scaffolding();
		bool Bottom(short ID);
		unsigned char Distance(short ID);
		bool Waterlogged(short ID);
	}
	namespace SeaLantern
	{
		constexpr short SeaLantern()
		{
			return 7862;
		}
	}
	namespace SeaPickle
	{
		constexpr short SeaPickle(unsigned char Pickles)
		{
			if (Pickles == 1 && !false) return 9641;
			if (Pickles == 3 && !false) return 9645;
			if (Pickles == 2 && false) return 9642;
			if (Pickles == 4 && false) return 9646;
			if (Pickles == 2 && !false) return 9643;
			if (Pickles == 1 && false) return 9640;
			if (Pickles == 3 && false) return 9644;
			return 9647;
		}
		short SeaPickle();
		unsigned char Pickles(short ID);
		bool Waterlogged(short ID);
	}
	namespace Seagrass
	{
		constexpr short Seagrass()
		{
			return 1345;
		}
	}
	namespace Shroomlight
	{
		constexpr short Shroomlight()
		{
			return 14989;
		}
	}
	namespace ShulkerBox
	{
		constexpr short ShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9277;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9274;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9275;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9272;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9276;
			return 9273;
		}
		short ShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace SkeletonSkull
	{
		constexpr short SkeletonSkull(unsigned char Rotation)
		{
			if (Rotation == 6) return 6496;
			if (Rotation == 7) return 6497;
			if (Rotation == 8) return 6498;
			if (Rotation == 9) return 6499;
			if (Rotation == 10) return 6500;
			if (Rotation == 11) return 6501;
			if (Rotation == 12) return 6502;
			if (Rotation == 13) return 6503;
			if (Rotation == 14) return 6504;
			if (Rotation == 0) return 6490;
			if (Rotation == 1) return 6491;
			if (Rotation == 2) return 6492;
			if (Rotation == 3) return 6493;
			if (Rotation == 4) return 6494;
			if (Rotation == 5) return 6495;
			return 6505;
		}
		short SkeletonSkull();
		unsigned char Rotation(short ID);
	}
	namespace SkeletonWallSkull
	{
		constexpr short SkeletonWallSkull(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6508;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6506;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6507;
			return 6509;
		}
		short SkeletonWallSkull();
		eBlockFace Facing(short ID);
	}
	namespace SlimeBlock
	{
		constexpr short SlimeBlock()
		{
			return 7535;
		}
	}
	namespace SmithingTable
	{
		constexpr short SmithingTable()
		{
			return 14849;
		}
	}
	namespace Smoker
	{
		constexpr short Smoker(eBlockFace Facing, bool Lit)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && Lit) return 14807;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !Lit) return 14804;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !Lit) return 14808;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && Lit) return 14805;
			if (Facing == eBlockFace::BLOCK_FACE_XP && Lit) return 14809;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !Lit) return 14806;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && Lit) return 14803;
			return 14810;
		}
		short Smoker();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
	}
	namespace SmoothQuartz
	{
		constexpr short SmoothQuartz()
		{
			return 8416;
		}
	}
	namespace SmoothQuartzSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SmoothQuartzSlab(enum Type Type)
		{
			if (Type == Type::Top && false) return 10831;
			if (Type == Type::Double && false) return 10835;
			if (Type == Type::Top && !false) return 10832;
			if (Type == Type::Double && !false) return 10836;
			if (Type == Type::Bottom && false) return 10833;
			return 10834;
		}
		short SmoothQuartzSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace SmoothQuartzStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SmoothQuartzStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10341;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10342;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10343;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10344;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10345;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10346;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10347;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10348;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10349;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10350;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10351;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10352;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10353;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10354;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10355;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10356;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10357;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10358;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10359;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10360;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10361;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10362;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10363;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10364;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10365;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10366;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10367;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10368;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10369;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10370;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10371;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10372;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10373;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10374;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10375;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10376;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10377;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10378;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10379;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10380;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10381;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10382;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10383;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10384;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10385;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10386;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10387;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10388;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10309;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10310;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10311;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10312;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10313;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10314;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10315;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10316;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10317;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10318;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10319;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10320;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10321;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10322;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10323;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10324;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10325;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10326;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10327;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10328;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10329;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10330;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10331;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10332;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10333;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10334;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10335;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10336;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10337;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10338;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10339;
			return 10340;
		}
		short SmoothQuartzStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace SmoothRedSandstone
	{
		constexpr short SmoothRedSandstone()
		{
			return 8417;
		}
	}
	namespace SmoothRedSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SmoothRedSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Top && !false) return 10796;
			if (Type == Type::Double && !false) return 10800;
			if (Type == Type::Bottom && false) return 10797;
			if (Type == Type::Bottom && !false) return 10798;
			if (Type == Type::Top && false) return 10795;
			return 10799;
		}
		short SmoothRedSandstoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace SmoothRedSandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SmoothRedSandstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9749;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9750;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9751;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9752;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9753;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9754;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9755;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9756;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9757;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9758;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9759;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9760;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9761;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9762;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9763;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9764;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9765;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 9766;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9767;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 9768;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9769;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9770;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9771;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9772;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9773;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9774;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9775;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9776;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9777;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9778;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9779;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9780;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9781;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9782;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9783;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9784;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9785;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 9786;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9787;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 9788;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9789;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9790;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9791;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9792;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9793;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9794;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9795;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9796;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9797;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9798;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9799;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 9800;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9801;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9802;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9803;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9804;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9805;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 9806;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9807;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 9808;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9809;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9810;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9811;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9812;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9813;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9814;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9815;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9816;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9817;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9818;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9819;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 9820;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9821;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9822;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9823;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9824;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9825;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 9826;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 9827;
			return 9828;
		}
		short SmoothRedSandstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace SmoothSandstone
	{
		constexpr short SmoothSandstone()
		{
			return 8415;
		}
	}
	namespace SmoothSandstoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SmoothSandstoneSlab(enum Type Type)
		{
			if (Type == Type::Bottom && !false) return 10828;
			if (Type == Type::Top && false) return 10825;
			if (Type == Type::Double && false) return 10829;
			if (Type == Type::Top && !false) return 10826;
			if (Type == Type::Double && !false) return 10830;
			return 10827;
		}
		short SmoothSandstoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace SmoothSandstoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SmoothSandstoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10229;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10230;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10231;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10232;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10233;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10234;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10235;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10236;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10237;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10238;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10239;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10240;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10241;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10242;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10243;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10244;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10245;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10246;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10247;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10248;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10249;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10250;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10251;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10252;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10253;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10254;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10255;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10256;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10257;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10258;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10259;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10260;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10261;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10262;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10263;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10264;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10265;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10266;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10267;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10268;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10269;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10270;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10271;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10272;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10273;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10274;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10275;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10276;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10277;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10278;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10279;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10280;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10281;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10282;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10283;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10284;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10285;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10286;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10287;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10288;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10289;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10290;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10291;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10292;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10293;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10294;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10295;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10296;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10297;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10298;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10299;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10300;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10301;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10302;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10303;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10304;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10305;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10306;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10307;
			return 10308;
		}
		short SmoothSandstoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace SmoothStone
	{
		constexpr short SmoothStone()
		{
			return 8414;
		}
	}
	namespace SmoothStoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SmoothStoneSlab(enum Type Type)
		{
			if (Type == Type::Double && false) return 8346;
			if (Type == Type::Top && !false) return 8343;
			if (Type == Type::Double && !false) return 8347;
			if (Type == Type::Bottom && false) return 8344;
			if (Type == Type::Bottom && !false) return 8345;
			return 8342;
		}
		short SmoothStoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace Snow
	{
		constexpr short Snow(unsigned char Layers)
		{
			if (Layers == 5) return 3925;
			if (Layers == 6) return 3926;
			if (Layers == 7) return 3927;
			if (Layers == 1) return 3921;
			if (Layers == 2) return 3922;
			if (Layers == 3) return 3923;
			if (Layers == 4) return 3924;
			return 3928;
		}
		short Snow();
		unsigned char Layers(short ID);
	}
	namespace SnowBlock
	{
		constexpr short SnowBlock()
		{
			return 3930;
		}
	}
	namespace SoulCampfire
	{
		constexpr short SoulCampfire(eBlockFace Facing, bool Lit, bool SignalFire)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false && SignalFire && Lit) return 14939;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !false && SignalFire && Lit) return 14947;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false && !SignalFire && Lit) return 14924;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false && !SignalFire && Lit) return 14932;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false && !SignalFire && Lit) return 14940;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false && !SignalFire && Lit) return 14948;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false && !SignalFire && Lit) return 14925;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false && !SignalFire && Lit) return 14933;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false && !SignalFire && Lit) return 14941;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !false && !SignalFire && Lit) return 14949;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false && SignalFire && !Lit) return 14926;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false && SignalFire && !Lit) return 14934;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false && SignalFire && !Lit) return 14942;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false && SignalFire && !Lit) return 14950;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false && SignalFire && !Lit) return 14927;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false && SignalFire && !Lit) return 14935;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false && SignalFire && !Lit) return 14943;
			if (Facing == eBlockFace::BLOCK_FACE_XP && !false && SignalFire && !Lit) return 14951;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false && !SignalFire && !Lit) return 14928;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false && !SignalFire && !Lit) return 14936;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false && !SignalFire && !Lit) return 14944;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false && !SignalFire && !Lit) return 14952;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false && !SignalFire && !Lit) return 14929;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false && !SignalFire && !Lit) return 14937;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false && !SignalFire && !Lit) return 14945;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false && SignalFire && Lit) return 14922;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false && SignalFire && Lit) return 14930;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false && SignalFire && Lit) return 14938;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false && SignalFire && Lit) return 14946;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false && SignalFire && Lit) return 14923;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false && SignalFire && Lit) return 14931;
			return 14953;
		}
		short SoulCampfire();
		eBlockFace Facing(short ID);
		bool Lit(short ID);
		bool SignalFire(short ID);
		bool Waterlogged(short ID);
	}
	namespace SoulFire
	{
		constexpr short SoulFire()
		{
			return 1952;
		}
	}
	namespace SoulLantern
	{
		constexpr short SoulLantern(bool Hanging)
		{
			if (Hanging) return 14888;
			return 14889;
		}
		short SoulLantern();
		bool Hanging(short ID);
	}
	namespace SoulSand
	{
		constexpr short SoulSand()
		{
			return 4000;
		}
	}
	namespace SoulSoil
	{
		constexpr short SoulSoil()
		{
			return 4001;
		}
	}
	namespace SoulTorch
	{
		constexpr short SoulTorch()
		{
			return 4008;
		}
	}
	namespace SoulWallTorch
	{
		constexpr short SoulWallTorch(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4009;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 4011;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4010;
			return 4012;
		}
		short SoulWallTorch();
		eBlockFace Facing(short ID);
	}
	namespace Spawner
	{
		constexpr short Spawner()
		{
			return 1953;
		}
	}
	namespace Sponge
	{
		constexpr short Sponge()
		{
			return 229;
		}
	}
	namespace SpruceButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short SpruceButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6373;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6377;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6381;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6385;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6389;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6393;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6370;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6374;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6378;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6382;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6386;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6390;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6371;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6375;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6379;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6383;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 6387;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 6391;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6372;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6376;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6380;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 6384;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 6388;
			return 6392;
		}
		short SpruceButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace SpruceDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short SpruceDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 8766;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 8798;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 8767;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 8799;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 8768;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 8800;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 8769;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 8738;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 8770;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 8739;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 8771;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 8740;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 8772;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 8741;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 8773;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 8742;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 8774;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 8743;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 8775;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 8744;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 8776;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 8745;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 8777;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 8746;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 8778;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 8747;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 8779;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 8748;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 8780;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 8749;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 8781;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 8750;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 8782;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 8751;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 8783;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 8752;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 8784;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 8753;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 8785;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 8754;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 8786;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 8755;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 8787;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 8756;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 8788;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 8757;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 8789;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 8758;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 8790;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 8759;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 8791;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 8760;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 8792;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 8761;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Right) return 8793;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 8762;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 8794;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 8763;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 8795;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 8764;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 8796;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 8765;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 8797;
			return 8801;
		}
		short SpruceDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace SpruceFence
	{
		constexpr short SpruceFence(bool East, bool North, bool South, bool West)
		{
			if (!false && !South && West && East && North) return 8584;
			if (!false && !South && West && East && !North) return 8592;
			if (!false && !South && West && !East && North) return 8600;
			if (!false && !South && West && !East && !North) return 8608;
			if (!false && !South && !West && East && North) return 8585;
			if (!false && !South && !West && East && !North) return 8593;
			if (!false && !South && !West && !East && North) return 8601;
			if (false && South && West && East && North) return 8578;
			if (false && South && West && East && !North) return 8586;
			if (false && South && West && !East && North) return 8594;
			if (false && South && West && !East && !North) return 8602;
			if (false && South && !West && East && North) return 8579;
			if (false && South && !West && East && !North) return 8587;
			if (false && South && !West && !East && North) return 8595;
			if (false && South && !West && !East && !North) return 8603;
			if (!false && South && West && East && North) return 8580;
			if (!false && South && West && East && !North) return 8588;
			if (!false && South && West && !East && North) return 8596;
			if (!false && South && West && !East && !North) return 8604;
			if (!false && South && !West && East && North) return 8581;
			if (!false && South && !West && East && !North) return 8589;
			if (!false && South && !West && !East && North) return 8597;
			if (!false && South && !West && !East && !North) return 8605;
			if (false && !South && West && East && North) return 8582;
			if (false && !South && West && East && !North) return 8590;
			if (false && !South && West && !East && North) return 8598;
			if (false && !South && West && !East && !North) return 8606;
			if (false && !South && !West && East && North) return 8583;
			if (false && !South && !West && East && !North) return 8591;
			if (false && !South && !West && !East && North) return 8599;
			if (false && !South && !West && !East && !North) return 8607;
			return 8609;
		}
		short SpruceFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace SpruceFenceGate
	{
		constexpr short SpruceFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8429;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8437;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8445;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8422;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8430;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8438;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8446;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8423;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8431;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8439;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8447;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8424;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8432;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8440;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8448;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8425;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8433;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8441;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8418;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8426;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8434;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8442;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8419;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8427;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8435;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8443;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8420;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 8428;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 8436;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 8444;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 8421;
			return 8449;
		}
		short SpruceFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace SpruceLeaves
	{
		constexpr short SpruceLeaves(unsigned char Distance, bool Persistent)
		{
			if (!Persistent && Distance == 5) return 168;
			if (Persistent && Distance == 2) return 161;
			if (Persistent && Distance == 6) return 169;
			if (!Persistent && Distance == 2) return 162;
			if (!Persistent && Distance == 6) return 170;
			if (Persistent && Distance == 3) return 163;
			if (Persistent && Distance == 7) return 171;
			if (!Persistent && Distance == 3) return 164;
			if (!Persistent && Distance == 7) return 172;
			if (Persistent && Distance == 4) return 165;
			if (!Persistent && Distance == 4) return 166;
			if (Persistent && Distance == 1) return 159;
			if (Persistent && Distance == 5) return 167;
			return 160;
		}
		short SpruceLeaves();
		unsigned char Distance(short ID);
		bool Persistent(short ID);
	}
	namespace SpruceLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short SpruceLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 76;
			if (Axis == Axis::Y) return 77;
			return 78;
		}
		short SpruceLog();
		enum Axis Axis(short ID);
	}
	namespace SprucePlanks
	{
		constexpr short SprucePlanks()
		{
			return 16;
		}
	}
	namespace SprucePressurePlate
	{
		constexpr short SprucePressurePlate(bool Powered)
		{
			if (Powered) return 3875;
			return 3876;
		}
		short SprucePressurePlate();
		bool Powered(short ID);
	}
	namespace SpruceSapling
	{
		constexpr short SpruceSapling(unsigned char Stage)
		{
			if (Stage == 0) return 23;
			return 24;
		}
		short SpruceSapling();
		unsigned char Stage(short ID);
	}
	namespace SpruceSign
	{
		constexpr short SpruceSign(unsigned char Rotation)
		{
			if (Rotation == 4 && false) return 3421;
			if (Rotation == 5 && false) return 3423;
			if (Rotation == 6 && false) return 3425;
			if (Rotation == 7 && false) return 3427;
			if (Rotation == 8 && false) return 3429;
			if (Rotation == 9 && false) return 3431;
			if (Rotation == 10 && false) return 3433;
			if (Rotation == 11 && false) return 3435;
			if (Rotation == 12 && false) return 3437;
			if (Rotation == 13 && false) return 3439;
			if (Rotation == 14 && false) return 3441;
			if (Rotation == 15 && false) return 3443;
			if (Rotation == 0 && !false) return 3414;
			if (Rotation == 1 && !false) return 3416;
			if (Rotation == 2 && !false) return 3418;
			if (Rotation == 3 && !false) return 3420;
			if (Rotation == 4 && !false) return 3422;
			if (Rotation == 5 && !false) return 3424;
			if (Rotation == 6 && !false) return 3426;
			if (Rotation == 7 && !false) return 3428;
			if (Rotation == 8 && !false) return 3430;
			if (Rotation == 9 && !false) return 3432;
			if (Rotation == 10 && !false) return 3434;
			if (Rotation == 11 && !false) return 3436;
			if (Rotation == 12 && !false) return 3438;
			if (Rotation == 13 && !false) return 3440;
			if (Rotation == 14 && !false) return 3442;
			if (Rotation == 0 && false) return 3413;
			if (Rotation == 1 && false) return 3415;
			if (Rotation == 2 && false) return 3417;
			if (Rotation == 3 && false) return 3419;
			return 3444;
		}
		short SpruceSign();
		unsigned char Rotation(short ID);
		bool Waterlogged(short ID);
	}
	namespace SpruceSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short SpruceSlab(enum Type Type)
		{
			if (Type == Type::Double && !false) return 8311;
			if (Type == Type::Bottom && false) return 8308;
			if (Type == Type::Bottom && !false) return 8309;
			if (Type == Type::Top && false) return 8306;
			if (Type == Type::Double && false) return 8310;
			return 8307;
		}
		short SpruceSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace SpruceStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short SpruceStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5457;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5458;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5459;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5460;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5461;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5462;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5463;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5464;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5465;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5466;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5467;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5404;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5468;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5405;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5469;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5406;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5470;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5407;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5471;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5408;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5472;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5409;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5473;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5410;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5474;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5411;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5475;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5412;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5476;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5413;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5477;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5414;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5478;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5415;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5479;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5416;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5480;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5417;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5481;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5418;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5482;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5419;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5483;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5420;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 5421;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5422;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 5423;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5424;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5425;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5426;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5427;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5428;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5429;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5430;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5431;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5432;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5433;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5434;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5435;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5436;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5437;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5438;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5439;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5440;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 5441;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5442;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 5443;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5444;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5445;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5446;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5447;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5448;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5449;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5450;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 5451;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5452;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 5453;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5454;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 5455;
			return 5456;
		}
		short SpruceStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace SpruceTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short SpruceTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4195;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4211;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4227;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4180;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4196;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4212;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4228;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4181;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4197;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4213;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4229;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4182;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4198;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4214;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4230;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4183;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4199;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4215;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4231;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4184;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4200;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4216;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4232;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4185;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4201;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4217;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4233;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4186;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4202;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4218;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4234;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4187;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4203;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4219;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4235;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4188;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 4204;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 4220;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 4236;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4189;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4205;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4221;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 4237;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 4190;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 4206;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 4222;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4175;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4191;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4207;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4223;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 4176;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 4192;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 4208;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 4224;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4177;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4193;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4209;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4225;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 4178;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 4194;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 4210;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 4226;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 4179;
			return 4238;
		}
		short SpruceTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
		bool Waterlogged(short ID);
	}
	namespace SpruceWallSign
	{
		constexpr short SpruceWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 3743;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 3744;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 3745;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 3746;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 3747;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 3748;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 3749;
			return 3750;
		}
		short SpruceWallSign();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace SpruceWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short SpruceWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 112;
			if (Axis == Axis::Y) return 113;
			return 114;
		}
		short SpruceWood();
		enum Axis Axis(short ID);
	}
	namespace StickyPiston
	{
		constexpr short StickyPiston(bool Extended, eBlockFace Facing)
		{
			if (Extended && Facing == eBlockFace::BLOCK_FACE_XM) return 1332;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_XP) return 1336;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_YM) return 1340;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_ZM) return 1329;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_YP) return 1333;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_ZP) return 1337;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_XP) return 1330;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_YM) return 1334;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_XM) return 1338;
			if (Extended && Facing == eBlockFace::BLOCK_FACE_ZP) return 1331;
			if (!Extended && Facing == eBlockFace::BLOCK_FACE_ZM) return 1335;
			return 1339;
		}
		short StickyPiston();
		bool Extended(short ID);
		eBlockFace Facing(short ID);
	}
	namespace Stone
	{
		constexpr short Stone()
		{
			return 1;
		}
	}
	namespace StoneBrickSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short StoneBrickSlab(enum Type Type)
		{
			if (Type == Type::Bottom && !false) return 8381;
			if (Type == Type::Top && false) return 8378;
			if (Type == Type::Double && false) return 8382;
			if (Type == Type::Top && !false) return 8379;
			if (Type == Type::Double && !false) return 8383;
			return 8380;
		}
		short StoneBrickSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace StoneBrickStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short StoneBrickStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4949;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4950;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4951;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4952;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4953;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4954;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4955;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4956;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4957;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4958;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4959;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4960;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4961;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4962;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4963;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4964;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4965;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4966;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4967;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4968;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 4969;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4970;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 4971;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 4972;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 4973;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4974;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4975;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4976;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4977;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4978;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4979;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4980;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4981;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 4982;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 4983;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4984;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4985;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4986;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4987;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4988;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 4989;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4990;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 4991;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 4992;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 4993;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4994;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4995;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4932;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4996;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4933;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 4997;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4934;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4998;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4935;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 4999;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4936;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5000;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4937;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5001;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4938;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5002;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4939;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 5003;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4940;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5004;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4941;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5005;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4942;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5006;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4943;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5007;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4944;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5008;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 4945;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 5009;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4946;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5010;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 4947;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 5011;
			return 4948;
		}
		short StoneBrickStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace StoneBrickWall
	{
		enum class East
		{
			None,
			Low,
			Tall
		};
		enum class North
		{
			None,
			Low,
			Tall
		};
		enum class South
		{
			None,
			Low,
			Tall
		};
		enum class West
		{
			None,
			Low,
			Tall
		};
		constexpr short StoneBrickWall(enum East East, enum North North, enum South South, bool Up, enum West West)
		{
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12567;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 12571;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 12575;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12579;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 12583;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 12587;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12591;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 12595;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 12599;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 12603;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 12607;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 12611;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 12615;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 12619;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 12623;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 12627;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 12631;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 12635;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12639;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 12643;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 12647;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12651;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 12655;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 12659;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12663;
			if (false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 12667;
			if (!false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 12671;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12675;
			if (false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 12679;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 12683;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12687;
			if (false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 12691;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 12695;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12699;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 12703;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 12707;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12711;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 12715;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 12719;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12723;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 12727;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 12731;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12735;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 12739;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 12743;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12747;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 12751;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 12755;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12759;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 12763;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 12767;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12771;
			if (false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 12775;
			if (!false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12779;
			if (false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12783;
			if (false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 12787;
			if (!false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12791;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12795;
			if (false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 12799;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12803;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12807;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 12488;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 12492;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 12496;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 12500;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 12504;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 12508;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 12512;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 12516;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 12520;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 12524;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 12528;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 12532;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 12536;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 12540;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 12544;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 12548;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 12552;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 12556;
			if (false && South == South::None && West == West::Low && Up && East == East::None && North == North::Tall) return 12560;
			if (!false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 12564;
			if (!false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 12568;
			if (false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Tall) return 12572;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 12576;
			if (!false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 12580;
			if (false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Tall) return 12584;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 12588;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 12592;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::None) return 12596;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 12600;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 12604;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::None) return 12608;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 12612;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 12616;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::None) return 12620;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 12624;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 12628;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Low) return 12632;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 12636;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 12640;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Low) return 12644;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 12648;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 12652;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Low) return 12656;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 12660;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 12664;
			if (false && South == South::None && West == West::Low && Up && East == East::Low && North == North::Tall) return 12668;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12672;
			if (!false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 12676;
			if (false && South == South::Low && West == West::Low && Up && East == East::Low && North == North::Tall) return 12680;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12684;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 12688;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Low && North == North::Tall) return 12692;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12696;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 12700;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::None) return 12704;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 12708;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 12712;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::None) return 12716;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 12720;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 12724;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::None) return 12728;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 12732;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 12736;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Low) return 12740;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12744;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 12748;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Low) return 12752;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12756;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 12760;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Low) return 12764;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12768;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 12772;
			if (false && South == South::None && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12776;
			if (!false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12780;
			if (!false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12784;
			if (false && South == South::Low && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12788;
			if (!false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12792;
			if (!false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12796;
			if (false && South == South::Tall && West == West::Low && Up && East == East::Tall && North == North::Tall) return 12800;
			if (!false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12804;
			if (!false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12808;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::None) return 12489;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::None) return 12493;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 12497;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::None) return 12501;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::None) return 12505;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 12509;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::None) return 12513;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::None) return 12517;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 12521;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Low) return 12525;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Low) return 12529;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 12533;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Low) return 12537;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Low) return 12541;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 12545;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Low) return 12549;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Low) return 12553;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 12557;
			if (false && South == South::None && West == West::Tall && Up && East == East::None && North == North::Tall) return 12561;
			if (false && South == South::None && West == West::None && !Up && East == East::None && North == North::Tall) return 12565;
			if (!false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 12569;
			if (false && South == South::Low && West == West::Tall && Up && East == East::None && North == North::Tall) return 12573;
			if (false && South == South::Low && West == West::None && !Up && East == East::None && North == North::Tall) return 12577;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 12581;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::None && North == North::Tall) return 12585;
			if (false && South == South::Tall && West == West::None && !Up && East == East::None && North == North::Tall) return 12589;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 12593;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::None) return 12597;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::None) return 12601;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 12605;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::None) return 12609;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::None) return 12613;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 12617;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::None) return 12621;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::None) return 12625;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 12629;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Low) return 12633;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Low) return 12637;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 12641;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Low) return 12645;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Low) return 12649;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 12653;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Low) return 12657;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Low) return 12661;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 12665;
			if (false && South == South::None && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12669;
			if (false && South == South::None && West == West::None && !Up && East == East::Low && North == North::Tall) return 12673;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12677;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12681;
			if (false && South == South::Low && West == West::None && !Up && East == East::Low && North == North::Tall) return 12685;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12689;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Low && North == North::Tall) return 12693;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Low && North == North::Tall) return 12697;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12701;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::None) return 12705;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::None) return 12709;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 12713;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::None) return 12717;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::None) return 12721;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 12725;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::None) return 12729;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::None) return 12733;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 12737;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12741;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Low) return 12745;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12749;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12753;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Low) return 12757;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12761;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Low) return 12765;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Low) return 12769;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12773;
			if (false && South == South::None && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12777;
			if (false && South == South::None && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12781;
			if (!false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12785;
			if (false && South == South::Low && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12789;
			if (false && South == South::Low && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12793;
			if (!false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12797;
			if (false && South == South::Tall && West == West::Tall && Up && East == East::Tall && North == North::Tall) return 12801;
			if (false && South == South::Tall && West == West::None && !Up && East == East::Tall && North == North::Tall) return 12805;
			if (!false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12809;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 12490;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::None) return 12494;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 12498;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 12502;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::None) return 12506;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 12510;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 12514;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::None) return 12518;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 12522;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 12526;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Low) return 12530;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 12534;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 12538;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Low) return 12542;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 12546;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 12550;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Low) return 12554;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 12558;
			if (!false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 12562;
			if (false && South == South::None && West == West::Low && !Up && East == East::None && North == North::Tall) return 12566;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12570;
			if (!false && South == South::Low && West == West::None && Up && East == East::None && North == North::Tall) return 12574;
			if (false && South == South::Low && West == West::Low && !Up && East == East::None && North == North::Tall) return 12578;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12582;
			if (!false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Tall) return 12586;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::None && North == North::Tall) return 12590;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Tall) return 12594;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::None) return 12598;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::None) return 12602;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::None) return 12606;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::None) return 12610;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::None) return 12614;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::None) return 12618;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::None) return 12622;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::None) return 12626;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::None) return 12630;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Low) return 12634;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Low) return 12638;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12642;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Low) return 12646;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Low) return 12650;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12654;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Low) return 12658;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Low) return 12662;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Low) return 12666;
			if (!false && South == South::None && West == West::None && Up && East == East::Low && North == North::Tall) return 12670;
			if (false && South == South::None && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12674;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12678;
			if (!false && South == South::Low && West == West::None && Up && East == East::Low && North == North::Tall) return 12682;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12686;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12690;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Low && North == North::Tall) return 12694;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Low && North == North::Tall) return 12698;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Low && North == North::Tall) return 12702;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::None) return 12706;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::None) return 12710;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12714;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::None) return 12718;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::None) return 12722;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12726;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::None) return 12730;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::None) return 12734;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::None) return 12738;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Low) return 12742;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12746;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12750;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Low) return 12754;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12758;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12762;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Low) return 12766;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Low) return 12770;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Low) return 12774;
			if (!false && South == South::None && West == West::None && Up && East == East::Tall && North == North::Tall) return 12778;
			if (false && South == South::None && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12782;
			if (!false && South == South::None && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12786;
			if (!false && South == South::Low && West == West::None && Up && East == East::Tall && North == North::Tall) return 12790;
			if (false && South == South::Low && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12794;
			if (!false && South == South::Low && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12798;
			if (!false && South == South::Tall && West == West::None && Up && East == East::Tall && North == North::Tall) return 12802;
			if (false && South == South::Tall && West == West::Low && !Up && East == East::Tall && North == North::Tall) return 12806;
			if (!false && South == South::Tall && West == West::Tall && !Up && East == East::Tall && North == North::Tall) return 12810;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::None) return 12487;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::None) return 12491;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::None) return 12495;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::None) return 12499;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::None) return 12503;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::None) return 12507;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::None) return 12511;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::None) return 12515;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::None) return 12519;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Low) return 12523;
			if (!false && South == South::None && West == West::Low && Up && East == East::None && North == North::Low) return 12527;
			if (false && South == South::None && West == West::Tall && !Up && East == East::None && North == North::Low) return 12531;
			if (false && South == South::Low && West == West::None && Up && East == East::None && North == North::Low) return 12535;
			if (!false && South == South::Low && West == West::Low && Up && East == East::None && North == North::Low) return 12539;
			if (false && South == South::Low && West == West::Tall && !Up && East == East::None && North == North::Low) return 12543;
			if (false && South == South::Tall && West == West::None && Up && East == East::None && North == North::Low) return 12547;
			if (!false && South == South::Tall && West == West::Low && Up && East == East::None && North == North::Low) return 12551;
			if (false && South == South::Tall && West == West::Tall && !Up && East == East::None && North == North::Low) return 12555;
			if (false && South == South::None && West == West::None && Up && East == East::None && North == North::Tall) return 12559;
			return 12563;
		}
		short StoneBrickWall();
		enum East East(short ID);
		enum North North(short ID);
		enum South South(short ID);
		bool Up(short ID);
		bool Waterlogged(short ID);
		enum West West(short ID);
	}
	namespace StoneBricks
	{
		constexpr short StoneBricks()
		{
			return 4495;
		}
	}
	namespace StoneButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short StoneButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3917;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3919;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3898;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3900;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3902;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3904;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3906;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3908;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3910;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3912;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3914;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3916;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3918;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3920;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3897;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3899;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3901;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3903;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3905;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 3907;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 3909;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 3911;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 3913;
			return 3915;
		}
		short StoneButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace StonePressurePlate
	{
		constexpr short StonePressurePlate(bool Powered)
		{
			if (Powered) return 3807;
			return 3808;
		}
		short StonePressurePlate();
		bool Powered(short ID);
	}
	namespace StoneSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short StoneSlab(enum Type Type)
		{
			if (Type == Type::Bottom && !false) return 8339;
			if (Type == Type::Top && false) return 8336;
			if (Type == Type::Double && false) return 8340;
			if (Type == Type::Top && !false) return 8337;
			if (Type == Type::Double && !false) return 8341;
			return 8338;
		}
		short StoneSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace StoneStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short StoneStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10214;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10215;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10216;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10217;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10218;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10219;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10220;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10221;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10222;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10223;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10224;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10225;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10226;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10227;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 10228;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10149;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10150;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10151;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10152;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10153;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10154;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10155;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10156;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10157;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10158;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10159;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10160;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10161;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10162;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10163;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10164;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10165;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 10166;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10167;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 10168;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10169;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10170;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10171;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10172;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10173;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10174;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10175;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10176;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10177;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10178;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10179;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10180;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10181;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10182;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10183;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10184;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10185;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 10186;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10187;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 10188;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10189;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10190;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10191;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10192;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10193;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10194;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10195;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10196;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10197;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10198;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10199;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 10200;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10201;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10202;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10203;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10204;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10205;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 10206;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10207;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 10208;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10209;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 10210;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10211;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 10212;
			return 10213;
		}
		short StoneStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace Stonecutter
	{
		constexpr short Stonecutter(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14850;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 14852;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14851;
			return 14853;
		}
		short Stonecutter();
		eBlockFace Facing(short ID);
	}
	namespace StrippedAcaciaLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedAcaciaLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 100;
			if (Axis == Axis::Y) return 101;
			return 102;
		}
		short StrippedAcaciaLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedAcaciaWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedAcaciaWood(enum Axis Axis)
		{
			if (Axis == Axis::Z) return 141;
			if (Axis == Axis::Y) return 140;
			return 139;
		}
		short StrippedAcaciaWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedBirchLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedBirchLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 94;
			if (Axis == Axis::Y) return 95;
			return 96;
		}
		short StrippedBirchLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedBirchWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedBirchWood(enum Axis Axis)
		{
			if (Axis == Axis::Z) return 135;
			if (Axis == Axis::Y) return 134;
			return 133;
		}
		short StrippedBirchWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedCrimsonHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedCrimsonHyphae(enum Axis Axis)
		{
			if (Axis == Axis::Y) return 14985;
			if (Axis == Axis::X) return 14984;
			return 14986;
		}
		short StrippedCrimsonHyphae();
		enum Axis Axis(short ID);
	}
	namespace StrippedCrimsonStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedCrimsonStem(enum Axis Axis)
		{
			if (Axis == Axis::Y) return 14979;
			if (Axis == Axis::X) return 14978;
			return 14980;
		}
		short StrippedCrimsonStem();
		enum Axis Axis(short ID);
	}
	namespace StrippedDarkOakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedDarkOakLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 103;
			if (Axis == Axis::Y) return 104;
			return 105;
		}
		short StrippedDarkOakLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedDarkOakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedDarkOakWood(enum Axis Axis)
		{
			if (Axis == Axis::Z) return 144;
			if (Axis == Axis::Y) return 143;
			return 142;
		}
		short StrippedDarkOakWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedJungleLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedJungleLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 97;
			if (Axis == Axis::Y) return 98;
			return 99;
		}
		short StrippedJungleLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedJungleWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedJungleWood(enum Axis Axis)
		{
			if (Axis == Axis::Z) return 138;
			if (Axis == Axis::Y) return 137;
			return 136;
		}
		short StrippedJungleWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedOakLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedOakLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 106;
			if (Axis == Axis::Y) return 107;
			return 108;
		}
		short StrippedOakLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedOakWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedOakWood(enum Axis Axis)
		{
			if (Axis == Axis::X) return 127;
			if (Axis == Axis::Y) return 128;
			return 129;
		}
		short StrippedOakWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedSpruceLog
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedSpruceLog(enum Axis Axis)
		{
			if (Axis == Axis::X) return 91;
			if (Axis == Axis::Y) return 92;
			return 93;
		}
		short StrippedSpruceLog();
		enum Axis Axis(short ID);
	}
	namespace StrippedSpruceWood
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedSpruceWood(enum Axis Axis)
		{
			if (Axis == Axis::Z) return 132;
			if (Axis == Axis::Y) return 131;
			return 130;
		}
		short StrippedSpruceWood();
		enum Axis Axis(short ID);
	}
	namespace StrippedWarpedHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedWarpedHyphae(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14967;
			if (Axis == Axis::Z) return 14969;
			return 14968;
		}
		short StrippedWarpedHyphae();
		enum Axis Axis(short ID);
	}
	namespace StrippedWarpedStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short StrippedWarpedStem(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14961;
			if (Axis == Axis::Z) return 14963;
			return 14962;
		}
		short StrippedWarpedStem();
		enum Axis Axis(short ID);
	}
	namespace StructureBlock
	{
		enum class Mode
		{
			Save,
			Load,
			Corner,
			Data
		};
		constexpr short StructureBlock(enum Mode Mode)
		{
			if (Mode == Mode::Save) return 15735;
			if (Mode == Mode::Corner) return 15737;
			if (Mode == Mode::Load) return 15736;
			return 15738;
		}
		short StructureBlock();
		enum Mode Mode(short ID);
	}
	namespace StructureVoid
	{
		constexpr short StructureVoid()
		{
			return 9259;
		}
	}
	namespace SugarCane
	{
		constexpr short SugarCane(unsigned char Age)
		{
			if (Age == 13) return 3961;
			if (Age == 6) return 3954;
			if (Age == 14) return 3962;
			if (Age == 7) return 3955;
			if (Age == 0) return 3948;
			if (Age == 8) return 3956;
			if (Age == 1) return 3949;
			if (Age == 9) return 3957;
			if (Age == 2) return 3950;
			if (Age == 10) return 3958;
			if (Age == 3) return 3951;
			if (Age == 11) return 3959;
			if (Age == 4) return 3952;
			if (Age == 12) return 3960;
			if (Age == 5) return 3953;
			return 3963;
		}
		short SugarCane();
		unsigned char Age(short ID);
	}
	namespace Sunflower
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short Sunflower(enum Half Half)
		{
			if (Half == Half::Upper) return 7885;
			return 7886;
		}
		short Sunflower();
		enum Half Half(short ID);
	}
	namespace SweetBerryBush
	{
		constexpr short SweetBerryBush(unsigned char Age)
		{
			if (Age == 1) return 14955;
			if (Age == 0) return 14954;
			if (Age == 2) return 14956;
			return 14957;
		}
		short SweetBerryBush();
		unsigned char Age(short ID);
	}
	namespace TallGrass
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short TallGrass(enum Half Half)
		{
			if (Half == Half::Upper) return 7893;
			return 7894;
		}
		short TallGrass();
		enum Half Half(short ID);
	}
	namespace TallSeagrass
	{
		enum class Half
		{
			Upper,
			Lower
		};
		constexpr short TallSeagrass(enum Half Half)
		{
			if (Half == Half::Upper) return 1346;
			return 1347;
		}
		short TallSeagrass();
		enum Half Half(short ID);
	}
	namespace Target
	{
		constexpr short Target(unsigned char Power)
		{
			if (Power == 5) return 15765;
			if (Power == 7) return 15767;
			if (Power == 9) return 15769;
			if (Power == 11) return 15771;
			if (Power == 13) return 15773;
			if (Power == 0) return 15760;
			if (Power == 2) return 15762;
			if (Power == 4) return 15764;
			if (Power == 6) return 15766;
			if (Power == 8) return 15768;
			if (Power == 10) return 15770;
			if (Power == 12) return 15772;
			if (Power == 14) return 15774;
			if (Power == 1) return 15761;
			if (Power == 3) return 15763;
			return 15775;
		}
		short Target();
		unsigned char Power(short ID);
	}
	namespace Terracotta
	{
		constexpr short Terracotta()
		{
			return 7882;
		}
	}
	namespace TNT
	{
		constexpr short TNT(bool Unstable)
		{
			if (Unstable) return 1430;
			return 1431;
		}
		short TNT();
		bool Unstable(short ID);
	}
	namespace Torch
	{
		constexpr short Torch()
		{
			return 1435;
		}
	}
	namespace TrappedChest
	{
		enum class Type
		{
			Single,
			Left,
			Right
		};
		constexpr short TrappedChest(eBlockFace Facing, enum Type Type)
		{
			if (Type == Type::Left && !false && Facing == eBlockFace::BLOCK_FACE_ZM) return 6625;
			if (Type == Type::Single && !false && Facing == eBlockFace::BLOCK_FACE_ZP) return 6629;
			if (Type == Type::Right && !false && Facing == eBlockFace::BLOCK_FACE_ZP) return 6633;
			if (Type == Type::Left && !false && Facing == eBlockFace::BLOCK_FACE_XM) return 6637;
			if (Type == Type::Single && !false && Facing == eBlockFace::BLOCK_FACE_XP) return 6641;
			if (Type == Type::Right && !false && Facing == eBlockFace::BLOCK_FACE_XP) return 6645;
			if (Type == Type::Single && false && Facing == eBlockFace::BLOCK_FACE_ZM) return 6622;
			if (Type == Type::Right && false && Facing == eBlockFace::BLOCK_FACE_ZM) return 6626;
			if (Type == Type::Left && false && Facing == eBlockFace::BLOCK_FACE_ZP) return 6630;
			if (Type == Type::Single && false && Facing == eBlockFace::BLOCK_FACE_XM) return 6634;
			if (Type == Type::Right && false && Facing == eBlockFace::BLOCK_FACE_XM) return 6638;
			if (Type == Type::Left && false && Facing == eBlockFace::BLOCK_FACE_XP) return 6642;
			if (Type == Type::Single && !false && Facing == eBlockFace::BLOCK_FACE_ZM) return 6623;
			if (Type == Type::Right && !false && Facing == eBlockFace::BLOCK_FACE_ZM) return 6627;
			if (Type == Type::Left && !false && Facing == eBlockFace::BLOCK_FACE_ZP) return 6631;
			if (Type == Type::Single && !false && Facing == eBlockFace::BLOCK_FACE_XM) return 6635;
			if (Type == Type::Right && !false && Facing == eBlockFace::BLOCK_FACE_XM) return 6639;
			if (Type == Type::Left && !false && Facing == eBlockFace::BLOCK_FACE_XP) return 6643;
			if (Type == Type::Left && false && Facing == eBlockFace::BLOCK_FACE_ZM) return 6624;
			if (Type == Type::Single && false && Facing == eBlockFace::BLOCK_FACE_ZP) return 6628;
			if (Type == Type::Right && false && Facing == eBlockFace::BLOCK_FACE_ZP) return 6632;
			if (Type == Type::Left && false && Facing == eBlockFace::BLOCK_FACE_XM) return 6636;
			if (Type == Type::Single && false && Facing == eBlockFace::BLOCK_FACE_XP) return 6640;
			return 6644;
		}
		short TrappedChest();
		eBlockFace Facing(short ID);
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace Tripwire
	{
		constexpr short Tripwire(bool Attached, bool Disarmed, bool East, bool North, bool Powered, bool South, bool West)
		{
			if (!South && !Attached && West && !Disarmed && !Powered && !East && North) return 5393;
			if (!South && Attached && !West && !Disarmed && !Powered && !East && North) return 5330;
			if (!South && !Attached && !West && !Disarmed && !Powered && !East && North) return 5394;
			if (South && Attached && West && !Disarmed && Powered && !East && !North) return 5331;
			if (South && !Attached && West && !Disarmed && Powered && !East && !North) return 5395;
			if (South && Attached && !West && !Disarmed && Powered && !East && !North) return 5332;
			if (South && !Attached && !West && !Disarmed && Powered && !East && !North) return 5396;
			if (!South && Attached && West && !Disarmed && Powered && !East && !North) return 5333;
			if (!South && !Attached && West && !Disarmed && Powered && !East && !North) return 5397;
			if (!South && Attached && !West && !Disarmed && Powered && !East && !North) return 5334;
			if (!South && !Attached && !West && !Disarmed && Powered && !East && !North) return 5398;
			if (South && Attached && West && !Disarmed && !Powered && !East && !North) return 5335;
			if (South && !Attached && West && !Disarmed && !Powered && !East && !North) return 5399;
			if (South && Attached && !West && !Disarmed && !Powered && !East && !North) return 5336;
			if (South && !Attached && !West && !Disarmed && !Powered && !East && !North) return 5400;
			if (!South && Attached && West && !Disarmed && !Powered && !East && !North) return 5337;
			if (!South && !Attached && West && !Disarmed && !Powered && !East && !North) return 5401;
			if (!South && Attached && !West && !Disarmed && !Powered && !East && !North) return 5338;
			if (South && Attached && West && Disarmed && Powered && East && North) return 5275;
			if (South && !Attached && West && Disarmed && Powered && East && North) return 5339;
			if (South && Attached && !West && Disarmed && Powered && East && North) return 5276;
			if (South && !Attached && !West && Disarmed && Powered && East && North) return 5340;
			if (!South && Attached && West && Disarmed && Powered && East && North) return 5277;
			if (!South && !Attached && West && Disarmed && Powered && East && North) return 5341;
			if (!South && Attached && !West && Disarmed && Powered && East && North) return 5278;
			if (!South && !Attached && !West && Disarmed && Powered && East && North) return 5342;
			if (South && Attached && West && Disarmed && !Powered && East && North) return 5279;
			if (South && !Attached && West && Disarmed && !Powered && East && North) return 5343;
			if (South && Attached && !West && Disarmed && !Powered && East && North) return 5280;
			if (South && !Attached && !West && Disarmed && !Powered && East && North) return 5344;
			if (!South && Attached && West && Disarmed && !Powered && East && North) return 5281;
			if (!South && !Attached && West && Disarmed && !Powered && East && North) return 5345;
			if (!South && Attached && !West && Disarmed && !Powered && East && North) return 5282;
			if (!South && !Attached && !West && Disarmed && !Powered && East && North) return 5346;
			if (South && Attached && West && Disarmed && Powered && East && !North) return 5283;
			if (South && !Attached && West && Disarmed && Powered && East && !North) return 5347;
			if (South && Attached && !West && Disarmed && Powered && East && !North) return 5284;
			if (South && !Attached && !West && Disarmed && Powered && East && !North) return 5348;
			if (!South && Attached && West && Disarmed && Powered && East && !North) return 5285;
			if (!South && !Attached && West && Disarmed && Powered && East && !North) return 5349;
			if (!South && Attached && !West && Disarmed && Powered && East && !North) return 5286;
			if (!South && !Attached && !West && Disarmed && Powered && East && !North) return 5350;
			if (South && Attached && West && Disarmed && !Powered && East && !North) return 5287;
			if (South && !Attached && West && Disarmed && !Powered && East && !North) return 5351;
			if (South && Attached && !West && Disarmed && !Powered && East && !North) return 5288;
			if (South && !Attached && !West && Disarmed && !Powered && East && !North) return 5352;
			if (!South && Attached && West && Disarmed && !Powered && East && !North) return 5289;
			if (!South && !Attached && West && Disarmed && !Powered && East && !North) return 5353;
			if (!South && Attached && !West && Disarmed && !Powered && East && !North) return 5290;
			if (!South && !Attached && !West && Disarmed && !Powered && East && !North) return 5354;
			if (South && Attached && West && Disarmed && Powered && !East && North) return 5291;
			if (South && !Attached && West && Disarmed && Powered && !East && North) return 5355;
			if (South && Attached && !West && Disarmed && Powered && !East && North) return 5292;
			if (South && !Attached && !West && Disarmed && Powered && !East && North) return 5356;
			if (!South && Attached && West && Disarmed && Powered && !East && North) return 5293;
			if (!South && !Attached && West && Disarmed && Powered && !East && North) return 5357;
			if (!South && Attached && !West && Disarmed && Powered && !East && North) return 5294;
			if (!South && !Attached && !West && Disarmed && Powered && !East && North) return 5358;
			if (South && Attached && West && Disarmed && !Powered && !East && North) return 5295;
			if (South && !Attached && West && Disarmed && !Powered && !East && North) return 5359;
			if (South && Attached && !West && Disarmed && !Powered && !East && North) return 5296;
			if (South && !Attached && !West && Disarmed && !Powered && !East && North) return 5360;
			if (!South && Attached && West && Disarmed && !Powered && !East && North) return 5297;
			if (!South && !Attached && West && Disarmed && !Powered && !East && North) return 5361;
			if (!South && Attached && !West && Disarmed && !Powered && !East && North) return 5298;
			if (!South && !Attached && !West && Disarmed && !Powered && !East && North) return 5362;
			if (South && Attached && West && Disarmed && Powered && !East && !North) return 5299;
			if (South && !Attached && West && Disarmed && Powered && !East && !North) return 5363;
			if (South && Attached && !West && Disarmed && Powered && !East && !North) return 5300;
			if (South && !Attached && !West && Disarmed && Powered && !East && !North) return 5364;
			if (!South && Attached && West && Disarmed && Powered && !East && !North) return 5301;
			if (!South && !Attached && West && Disarmed && Powered && !East && !North) return 5365;
			if (!South && Attached && !West && Disarmed && Powered && !East && !North) return 5302;
			if (!South && !Attached && !West && Disarmed && Powered && !East && !North) return 5366;
			if (South && Attached && West && Disarmed && !Powered && !East && !North) return 5303;
			if (South && !Attached && West && Disarmed && !Powered && !East && !North) return 5367;
			if (South && Attached && !West && Disarmed && !Powered && !East && !North) return 5304;
			if (South && !Attached && !West && Disarmed && !Powered && !East && !North) return 5368;
			if (!South && Attached && West && Disarmed && !Powered && !East && !North) return 5305;
			if (!South && !Attached && West && Disarmed && !Powered && !East && !North) return 5369;
			if (!South && Attached && !West && Disarmed && !Powered && !East && !North) return 5306;
			if (!South && !Attached && !West && Disarmed && !Powered && !East && !North) return 5370;
			if (South && Attached && West && !Disarmed && Powered && East && North) return 5307;
			if (South && !Attached && West && !Disarmed && Powered && East && North) return 5371;
			if (South && Attached && !West && !Disarmed && Powered && East && North) return 5308;
			if (South && !Attached && !West && !Disarmed && Powered && East && North) return 5372;
			if (!South && Attached && West && !Disarmed && Powered && East && North) return 5309;
			if (!South && !Attached && West && !Disarmed && Powered && East && North) return 5373;
			if (!South && Attached && !West && !Disarmed && Powered && East && North) return 5310;
			if (!South && !Attached && !West && !Disarmed && Powered && East && North) return 5374;
			if (South && Attached && West && !Disarmed && !Powered && East && North) return 5311;
			if (South && !Attached && West && !Disarmed && !Powered && East && North) return 5375;
			if (South && Attached && !West && !Disarmed && !Powered && East && North) return 5312;
			if (South && !Attached && !West && !Disarmed && !Powered && East && North) return 5376;
			if (!South && Attached && West && !Disarmed && !Powered && East && North) return 5313;
			if (!South && !Attached && West && !Disarmed && !Powered && East && North) return 5377;
			if (!South && Attached && !West && !Disarmed && !Powered && East && North) return 5314;
			if (!South && !Attached && !West && !Disarmed && !Powered && East && North) return 5378;
			if (South && Attached && West && !Disarmed && Powered && East && !North) return 5315;
			if (South && !Attached && West && !Disarmed && Powered && East && !North) return 5379;
			if (South && Attached && !West && !Disarmed && Powered && East && !North) return 5316;
			if (South && !Attached && !West && !Disarmed && Powered && East && !North) return 5380;
			if (!South && Attached && West && !Disarmed && Powered && East && !North) return 5317;
			if (!South && !Attached && West && !Disarmed && Powered && East && !North) return 5381;
			if (!South && Attached && !West && !Disarmed && Powered && East && !North) return 5318;
			if (!South && !Attached && !West && !Disarmed && Powered && East && !North) return 5382;
			if (South && Attached && West && !Disarmed && !Powered && East && !North) return 5319;
			if (South && !Attached && West && !Disarmed && !Powered && East && !North) return 5383;
			if (South && Attached && !West && !Disarmed && !Powered && East && !North) return 5320;
			if (South && !Attached && !West && !Disarmed && !Powered && East && !North) return 5384;
			if (!South && Attached && West && !Disarmed && !Powered && East && !North) return 5321;
			if (!South && !Attached && West && !Disarmed && !Powered && East && !North) return 5385;
			if (!South && Attached && !West && !Disarmed && !Powered && East && !North) return 5322;
			if (!South && !Attached && !West && !Disarmed && !Powered && East && !North) return 5386;
			if (South && Attached && West && !Disarmed && Powered && !East && North) return 5323;
			if (South && !Attached && West && !Disarmed && Powered && !East && North) return 5387;
			if (South && Attached && !West && !Disarmed && Powered && !East && North) return 5324;
			if (South && !Attached && !West && !Disarmed && Powered && !East && North) return 5388;
			if (!South && Attached && West && !Disarmed && Powered && !East && North) return 5325;
			if (!South && !Attached && West && !Disarmed && Powered && !East && North) return 5389;
			if (!South && Attached && !West && !Disarmed && Powered && !East && North) return 5326;
			if (!South && !Attached && !West && !Disarmed && Powered && !East && North) return 5390;
			if (South && Attached && West && !Disarmed && !Powered && !East && North) return 5327;
			if (South && !Attached && West && !Disarmed && !Powered && !East && North) return 5391;
			if (South && Attached && !West && !Disarmed && !Powered && !East && North) return 5328;
			if (South && !Attached && !West && !Disarmed && !Powered && !East && North) return 5392;
			if (!South && Attached && West && !Disarmed && !Powered && !East && North) return 5329;
			return 5402;
		}
		short Tripwire();
		bool Attached(short ID);
		bool Disarmed(short ID);
		bool East(short ID);
		bool North(short ID);
		bool Powered(short ID);
		bool South(short ID);
		bool West(short ID);
	}
	namespace TripwireHook
	{
		constexpr short TripwireHook(bool Attached, eBlockFace Facing, bool Powered)
		{
			if (!Powered && Attached && Facing == eBlockFace::BLOCK_FACE_XP) return 5266;
			if (Powered && !Attached && Facing == eBlockFace::BLOCK_FACE_ZM) return 5267;
			if (!Powered && !Attached && Facing == eBlockFace::BLOCK_FACE_ZM) return 5268;
			if (Powered && !Attached && Facing == eBlockFace::BLOCK_FACE_ZP) return 5269;
			if (!Powered && !Attached && Facing == eBlockFace::BLOCK_FACE_ZP) return 5270;
			if (Powered && !Attached && Facing == eBlockFace::BLOCK_FACE_XM) return 5271;
			if (!Powered && !Attached && Facing == eBlockFace::BLOCK_FACE_XM) return 5272;
			if (Powered && !Attached && Facing == eBlockFace::BLOCK_FACE_XP) return 5273;
			if (Powered && Attached && Facing == eBlockFace::BLOCK_FACE_ZM) return 5259;
			if (!Powered && Attached && Facing == eBlockFace::BLOCK_FACE_ZM) return 5260;
			if (Powered && Attached && Facing == eBlockFace::BLOCK_FACE_ZP) return 5261;
			if (!Powered && Attached && Facing == eBlockFace::BLOCK_FACE_ZP) return 5262;
			if (Powered && Attached && Facing == eBlockFace::BLOCK_FACE_XM) return 5263;
			if (!Powered && Attached && Facing == eBlockFace::BLOCK_FACE_XM) return 5264;
			if (Powered && Attached && Facing == eBlockFace::BLOCK_FACE_XP) return 5265;
			return 5274;
		}
		short TripwireHook();
		bool Attached(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace TubeCoral
	{
		constexpr short TubeCoral()
		{
			if (false) return 9530;
			return 9531;
		}
		bool Waterlogged(short ID);
	}
	namespace TubeCoralBlock
	{
		constexpr short TubeCoralBlock()
		{
			return 9515;
		}
	}
	namespace TubeCoralFan
	{
		constexpr short TubeCoralFan()
		{
			if (false) return 9550;
			return 9551;
		}
		bool Waterlogged(short ID);
	}
	namespace TubeCoralWallFan
	{
		constexpr short TubeCoralWallFan(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 9606;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 9603;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 9600;
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 9604;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 9601;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 9605;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 9602;
			return 9607;
		}
		short TubeCoralWallFan();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace TurtleEgg
	{
		constexpr short TurtleEgg(unsigned char Eggs, unsigned char Hatch)
		{
			if (Hatch == 1 && Eggs == 1) return 9499;
			if (Hatch == 0 && Eggs == 2) return 9501;
			if (Hatch == 2 && Eggs == 2) return 9503;
			if (Hatch == 1 && Eggs == 3) return 9505;
			if (Hatch == 0 && Eggs == 4) return 9507;
			if (Hatch == 2 && Eggs == 4) return 9509;
			if (Hatch == 0 && Eggs == 1) return 9498;
			if (Hatch == 2 && Eggs == 1) return 9500;
			if (Hatch == 1 && Eggs == 2) return 9502;
			if (Hatch == 0 && Eggs == 3) return 9504;
			if (Hatch == 2 && Eggs == 3) return 9506;
			return 9508;
		}
		short TurtleEgg();
		unsigned char Eggs(short ID);
		unsigned char Hatch(short ID);
	}
	namespace TwistingVines
	{
		constexpr short TwistingVines(unsigned char Age)
		{
			if (Age == 15) return 15032;
			if (Age == 23) return 15040;
			if (Age == 0) return 15017;
			if (Age == 8) return 15025;
			if (Age == 16) return 15033;
			if (Age == 24) return 15041;
			if (Age == 1) return 15018;
			if (Age == 9) return 15026;
			if (Age == 17) return 15034;
			if (Age == 25) return 15042;
			if (Age == 2) return 15019;
			if (Age == 10) return 15027;
			if (Age == 18) return 15035;
			if (Age == 3) return 15020;
			if (Age == 11) return 15028;
			if (Age == 19) return 15036;
			if (Age == 4) return 15021;
			if (Age == 12) return 15029;
			if (Age == 20) return 15037;
			if (Age == 5) return 15022;
			if (Age == 13) return 15030;
			if (Age == 21) return 15038;
			if (Age == 6) return 15023;
			if (Age == 14) return 15031;
			if (Age == 22) return 15039;
			return 15024;
		}
		short TwistingVines();
		unsigned char Age(short ID);
	}
	namespace TwistingVinesPlant
	{
		constexpr short TwistingVinesPlant()
		{
			return 15043;
		}
	}
	namespace Vine
	{
		constexpr short Vine(bool East, bool North, bool South, bool Up, bool West)
		{
			if (!South && Up && West && East && North) return 4792;
			if (South && Up && West && East && !North) return 4796;
			if (!South && Up && West && East && !North) return 4800;
			if (South && Up && West && !East && North) return 4804;
			if (!South && Up && West && !East && North) return 4808;
			if (South && Up && West && !East && !North) return 4812;
			if (!South && Up && West && !East && !North) return 4816;
			if (South && Up && !West && East && North) return 4789;
			if (!South && Up && !West && East && North) return 4793;
			if (South && Up && !West && East && !North) return 4797;
			if (!South && Up && !West && East && !North) return 4801;
			if (South && Up && !West && !East && North) return 4805;
			if (!South && Up && !West && !East && North) return 4809;
			if (South && Up && !West && !East && !North) return 4813;
			if (!South && Up && !West && !East && !North) return 4817;
			if (South && !Up && West && East && North) return 4790;
			if (!South && !Up && West && East && North) return 4794;
			if (South && !Up && West && East && !North) return 4798;
			if (!South && !Up && West && East && !North) return 4802;
			if (South && !Up && West && !East && North) return 4806;
			if (!South && !Up && West && !East && North) return 4810;
			if (South && !Up && West && !East && !North) return 4814;
			if (!South && !Up && West && !East && !North) return 4818;
			if (South && !Up && !West && East && North) return 4791;
			if (!South && !Up && !West && East && North) return 4795;
			if (South && !Up && !West && East && !North) return 4799;
			if (!South && !Up && !West && East && !North) return 4803;
			if (South && !Up && !West && !East && North) return 4807;
			if (!South && !Up && !West && !East && North) return 4811;
			if (South && !Up && !West && !East && !North) return 4815;
			if (South && Up && West && East && North) return 4788;
			return 4819;
		}
		short Vine();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Up(short ID);
		bool West(short ID);
	}
	namespace VoidAir
	{
		constexpr short VoidAir()
		{
			return 9665;
		}
	}
	namespace WallTorch
	{
		constexpr short WallTorch(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1437;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 1438;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1436;
			return 1439;
		}
		short WallTorch();
		eBlockFace Facing(short ID);
	}
	namespace WarpedButton
	{
		enum class Face
		{
			Floor,
			Wall,
			Ceiling
		};
		constexpr short WarpedButton(enum Face Face, eBlockFace Facing, bool Powered)
		{
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15505;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15513;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15521;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15506;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15514;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_ZP) return 15522;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15507;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15515;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15523;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15508;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15516;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XM) return 15524;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15509;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15517;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15525;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15510;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15518;
			if (Face == Face::Ceiling && !Powered && Facing == eBlockFace::BLOCK_FACE_XP) return 15526;
			if (Face == Face::Floor && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15503;
			if (Face == Face::Wall && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15511;
			if (Face == Face::Ceiling && Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15519;
			if (Face == Face::Floor && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15504;
			if (Face == Face::Wall && !Powered && Facing == eBlockFace::BLOCK_FACE_ZM) return 15512;
			return 15520;
		}
		short WarpedButton();
		enum Face Face(short ID);
		eBlockFace Facing(short ID);
		bool Powered(short ID);
	}
	namespace WarpedDoor
	{
		enum class Half
		{
			Upper,
			Lower
		};
		enum class Hinge
		{
			Left,
			Right
		};
		constexpr short WarpedDoor(eBlockFace Facing, enum Half Half, enum Hinge Hinge, bool Open, bool Powered)
		{
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 15633;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 15602;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 15634;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 15603;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 15635;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 15604;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 15636;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 15605;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 15637;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 15606;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 15638;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 15607;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 15639;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 15608;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 15640;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 15609;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 15641;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 15610;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 15642;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 15611;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 15643;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 15612;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 15644;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 15613;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 15645;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 15614;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Right) return 15646;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Left) return 15615;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Left) return 15647;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Left) return 15616;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Left) return 15648;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Left) return 15617;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Left) return 15649;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Left) return 15618;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open && Hinge == Hinge::Left) return 15650;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open && Hinge == Hinge::Right) return 15619;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open && Hinge == Hinge::Right) return 15651;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open && Hinge == Hinge::Right) return 15620;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open && Hinge == Hinge::Right) return 15652;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open && Hinge == Hinge::Right) return 15621;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open && Hinge == Hinge::Right) return 15653;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open && Hinge == Hinge::Right) return 15622;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 15591;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 15623;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 15592;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 15624;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 15593;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Left) return 15625;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Left) return 15594;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Left) return 15626;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Right) return 15595;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Right) return 15627;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Right) return 15596;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Right) return 15628;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Right) return 15597;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open && Hinge == Hinge::Right) return 15629;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open && Hinge == Hinge::Right) return 15598;
			if (Half == Half::Upper && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open && Hinge == Hinge::Right) return 15630;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open && Hinge == Hinge::Left) return 15599;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open && Hinge == Hinge::Left) return 15631;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open && Hinge == Hinge::Left) return 15600;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open && Hinge == Hinge::Left) return 15632;
			if (Half == Half::Lower && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open && Hinge == Hinge::Left) return 15601;
			return 15654;
		}
		short WarpedDoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Hinge Hinge(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace WarpedFence
	{
		constexpr short WarpedFence(bool East, bool North, bool South, bool West)
		{
			if (!false && !South && West && !East && !North) return 15125;
			if (!false && !South && !West && East && North) return 15102;
			if (!false && !South && !West && East && !North) return 15110;
			if (!false && !South && !West && !East && North) return 15118;
			if (false && South && West && East && North) return 15095;
			if (false && South && West && East && !North) return 15103;
			if (false && South && West && !East && North) return 15111;
			if (false && South && West && !East && !North) return 15119;
			if (false && South && !West && East && North) return 15096;
			if (false && South && !West && East && !North) return 15104;
			if (false && South && !West && !East && North) return 15112;
			if (false && South && !West && !East && !North) return 15120;
			if (!false && South && West && East && North) return 15097;
			if (!false && South && West && East && !North) return 15105;
			if (!false && South && West && !East && North) return 15113;
			if (!false && South && West && !East && !North) return 15121;
			if (!false && South && !West && East && North) return 15098;
			if (!false && South && !West && East && !North) return 15106;
			if (!false && South && !West && !East && North) return 15114;
			if (!false && South && !West && !East && !North) return 15122;
			if (false && !South && West && East && North) return 15099;
			if (false && !South && West && East && !North) return 15107;
			if (false && !South && West && !East && North) return 15115;
			if (false && !South && West && !East && !North) return 15123;
			if (false && !South && !West && East && North) return 15100;
			if (false && !South && !West && East && !North) return 15108;
			if (false && !South && !West && !East && North) return 15116;
			if (false && !South && !West && !East && !North) return 15124;
			if (!false && !South && West && East && North) return 15101;
			if (!false && !South && West && East && !North) return 15109;
			if (!false && !South && West && !East && North) return 15117;
			return 15126;
		}
		short WarpedFence();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace WarpedFenceGate
	{
		constexpr short WarpedFenceGate(eBlockFace Facing, bool InWall, bool Open, bool Powered)
		{
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15311;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15288;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15296;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15304;
			if (!Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15312;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15289;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15297;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15305;
			if (Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15313;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15290;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15298;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15306;
			if (!Powered && InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15314;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15291;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15299;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15307;
			if (Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15315;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15292;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15300;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15308;
			if (!Powered && !InWall && Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15316;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15293;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15301;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15309;
			if (Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XP) return 15317;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15294;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15302;
			if (!Powered && !InWall && !Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15310;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZM) return 15287;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_ZP) return 15295;
			if (Powered && InWall && Open && Facing == eBlockFace::BLOCK_FACE_XM) return 15303;
			return 15318;
		}
		short WarpedFenceGate();
		eBlockFace Facing(short ID);
		bool InWall(short ID);
		bool Open(short ID);
		bool Powered(short ID);
	}
	namespace WarpedFungus
	{
		constexpr short WarpedFungus()
		{
			return 14971;
		}
	}
	namespace WarpedHyphae
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short WarpedHyphae(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14964;
			if (Axis == Axis::Z) return 14966;
			return 14965;
		}
		short WarpedHyphae();
		enum Axis Axis(short ID);
	}
	namespace WarpedNylium
	{
		constexpr short WarpedNylium()
		{
			return 14970;
		}
	}
	namespace WarpedPlanks
	{
		constexpr short WarpedPlanks()
		{
			return 15046;
		}
	}
	namespace WarpedPressurePlate
	{
		constexpr short WarpedPressurePlate(bool Powered)
		{
			if (Powered) return 15061;
			return 15062;
		}
		short WarpedPressurePlate();
		bool Powered(short ID);
	}
	namespace WarpedRoots
	{
		constexpr short WarpedRoots()
		{
			return 14973;
		}
	}
	namespace WarpedSign
	{
		constexpr short WarpedSign(unsigned char Rotation)
		{
			if (Rotation == 13 && !false) return 15714;
			if (Rotation == 2 && false) return 15691;
			if (Rotation == 6 && false) return 15699;
			if (Rotation == 10 && false) return 15707;
			if (Rotation == 14 && false) return 15715;
			if (Rotation == 2 && !false) return 15692;
			if (Rotation == 6 && !false) return 15700;
			if (Rotation == 10 && !false) return 15708;
			if (Rotation == 14 && !false) return 15716;
			if (Rotation == 3 && false) return 15693;
			if (Rotation == 7 && false) return 15701;
			if (Rotation == 11 && false) return 15709;
			if (Rotation == 15 && false) return 15717;
			if (Rotation == 3 && !false) return 15694;
			if (Rotation == 7 && !false) return 15702;
			if (Rotation == 11 && !false) return 15710;
			if (Rotation == 0 && false) return 15687;
			if (Rotation == 4 && false) return 15695;
			if (Rotation == 8 && false) return 15703;
			if (Rotation == 12 && false) return 15711;
			if (Rotation == 0 && !false) return 15688;
			if (Rotation == 4 && !false) return 15696;
			if (Rotation == 8 && !false) return 15704;
			if (Rotation == 12 && !false) return 15712;
			if (Rotation == 1 && false) return 15689;
			if (Rotation == 5 && false) return 15697;
			if (Rotation == 9 && false) return 15705;
			if (Rotation == 13 && false) return 15713;
			if (Rotation == 1 && !false) return 15690;
			if (Rotation == 5 && !false) return 15698;
			if (Rotation == 9 && !false) return 15706;
			return 15718;
		}
		short WarpedSign();
		unsigned char Rotation(short ID);
		bool Waterlogged(short ID);
	}
	namespace WarpedSlab
	{
		enum class Type
		{
			Top,
			Bottom,
			Double
		};
		constexpr short WarpedSlab(enum Type Type)
		{
			if (Type == Type::Bottom && !false) return 15056;
			if (Type == Type::Top && false) return 15053;
			if (Type == Type::Double && false) return 15057;
			if (Type == Type::Top && !false) return 15054;
			if (Type == Type::Double && !false) return 15058;
			return 15055;
		}
		short WarpedSlab();
		enum Type Type(short ID);
		bool Waterlogged(short ID);
	}
	namespace WarpedStairs
	{
		enum class Half
		{
			Top,
			Bottom
		};
		enum class Shape
		{
			Straight,
			InnerLeft,
			InnerRight,
			OuterLeft,
			OuterRight
		};
		constexpr short WarpedStairs(eBlockFace Facing, enum Half Half, enum Shape Shape)
		{
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15421;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15422;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15423;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15424;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15425;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15426;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15427;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15428;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15429;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15430;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15431;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15432;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15433;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15434;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15435;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZP) return 15436;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15437;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15438;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15439;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15440;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15441;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15442;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15443;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15444;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15445;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15446;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15447;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15448;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15449;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XM) return 15450;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15451;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15452;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15453;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15454;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15455;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XM) return 15456;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15457;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XM) return 15458;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15459;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15460;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15461;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15462;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15463;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15464;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15465;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15466;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15467;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15468;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15469;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_XP) return 15470;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15471;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15472;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15473;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15474;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15475;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_XP) return 15476;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15477;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_XP) return 15478;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15399;
			if (Half == Half::Top && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15400;
			if (Half == Half::Top && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15401;
			if (Half == Half::Top && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15402;
			if (Half == Half::Top && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15403;
			if (Half == Half::Top && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15404;
			if (Half == Half::Top && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15405;
			if (Half == Half::Top && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15406;
			if (Half == Half::Top && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15407;
			if (Half == Half::Top && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15408;
			if (Half == Half::Bottom && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15409;
			if (Half == Half::Bottom && !false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15410;
			if (Half == Half::Bottom && false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15411;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15412;
			if (Half == Half::Bottom && false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15413;
			if (Half == Half::Bottom && !false && Shape == Shape::InnerRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15414;
			if (Half == Half::Bottom && false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15415;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterLeft && Facing == eBlockFace::BLOCK_FACE_ZM) return 15416;
			if (Half == Half::Bottom && false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15417;
			if (Half == Half::Bottom && !false && Shape == Shape::OuterRight && Facing == eBlockFace::BLOCK_FACE_ZM) return 15418;
			if (Half == Half::Top && false && Shape == Shape::Straight && Facing == eBlockFace::BLOCK_FACE_ZP) return 15419;
			return 15420;
		}
		short WarpedStairs();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		enum Shape Shape(short ID);
		bool Waterlogged(short ID);
	}
	namespace WarpedStem
	{
		enum class Axis
		{
			X,
			Y,
			Z
		};
		constexpr short WarpedStem(enum Axis Axis)
		{
			if (Axis == Axis::X) return 14958;
			if (Axis == Axis::Z) return 14960;
			return 14959;
		}
		short WarpedStem();
		enum Axis Axis(short ID);
	}
	namespace WarpedTrapdoor
	{
		enum class Half
		{
			Top,
			Bottom
		};
		constexpr short WarpedTrapdoor(eBlockFace Facing, enum Half Half, bool Open, bool Powered)
		{
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 15192;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 15224;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 15193;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 15225;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 15194;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 15226;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 15195;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 15227;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 15196;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 15228;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 15197;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 15229;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 15198;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 15230;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 15199;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 15231;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 15200;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 15232;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 15201;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 15233;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && Open) return 15202;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && Open) return 15234;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 15203;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 15235;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && !Open) return 15204;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && Powered && !Open) return 15236;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 15205;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 15237;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZM && !Powered && !Open) return 15206;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XM && !Powered && !Open) return 15238;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 15207;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 15239;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 15208;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 15240;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 15209;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 15241;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 15210;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 15242;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 15211;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 15243;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 15212;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 15244;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 15213;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 15245;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 15214;
			if (!false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 15246;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 15215;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 15247;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && Open) return 15216;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && Open) return 15248;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 15217;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 15249;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && Open) return 15218;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && Open) return 15250;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 15219;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 15251;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && Powered && !Open) return 15220;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && Powered && !Open) return 15252;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 15221;
			if (false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_XP && !Powered && !Open) return 15253;
			if (!false && Half == Half::Bottom && Facing == eBlockFace::BLOCK_FACE_ZP && !Powered && !Open) return 15222;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_ZM && Powered && Open) return 15191;
			if (false && Half == Half::Top && Facing == eBlockFace::BLOCK_FACE_XM && Powered && Open) return 15223;
			return 15254;
		}
		short WarpedTrapdoor();
		eBlockFace Facing(short ID);
		enum Half Half(short ID);
		bool Open(short ID);
		bool Powered(short ID);
		bool Waterlogged(short ID);
	}
	namespace WarpedWallSign
	{
		constexpr short WarpedWallSign(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM && false) return 15731;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && !false) return 15728;
			if (Facing == eBlockFace::BLOCK_FACE_XM && !false) return 15732;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && false) return 15729;
			if (Facing == eBlockFace::BLOCK_FACE_XP && false) return 15733;
			if (Facing == eBlockFace::BLOCK_FACE_ZP && !false) return 15730;
			if (Facing == eBlockFace::BLOCK_FACE_ZM && false) return 15727;
			return 15734;
		}
		short WarpedWallSign();
		eBlockFace Facing(short ID);
		bool Waterlogged(short ID);
	}
	namespace WarpedWartBlock
	{
		constexpr short WarpedWartBlock()
		{
			return 14972;
		}
	}
	namespace Water
	{
		constexpr short Water(unsigned char Level)
		{
			if (Level == 12) return 46;
			if (Level == 14) return 48;
			if (Level == 1) return 35;
			if (Level == 3) return 37;
			if (Level == 5) return 39;
			if (Level == 7) return 41;
			if (Level == 9) return 43;
			if (Level == 11) return 45;
			if (Level == 13) return 47;
			if (Level == 0) return 34;
			if (Level == 2) return 36;
			if (Level == 4) return 38;
			if (Level == 6) return 40;
			if (Level == 8) return 42;
			if (Level == 10) return 44;
			return 49;
		}
		short Water();
		unsigned char Level(short ID);
	}
	namespace WeepingVines
	{
		constexpr short WeepingVines(unsigned char Age)
		{
			if (Age == 11) return 15001;
			if (Age == 19) return 15009;
			if (Age == 4) return 14994;
			if (Age == 12) return 15002;
			if (Age == 20) return 15010;
			if (Age == 5) return 14995;
			if (Age == 13) return 15003;
			if (Age == 21) return 15011;
			if (Age == 6) return 14996;
			if (Age == 14) return 15004;
			if (Age == 22) return 15012;
			if (Age == 7) return 14997;
			if (Age == 15) return 15005;
			if (Age == 23) return 15013;
			if (Age == 0) return 14990;
			if (Age == 8) return 14998;
			if (Age == 16) return 15006;
			if (Age == 24) return 15014;
			if (Age == 1) return 14991;
			if (Age == 9) return 14999;
			if (Age == 17) return 15007;
			if (Age == 25) return 15015;
			if (Age == 2) return 14992;
			if (Age == 10) return 15000;
			if (Age == 18) return 15008;
			return 14993;
		}
		short WeepingVines();
		unsigned char Age(short ID);
	}
	namespace WeepingVinesPlant
	{
		constexpr short WeepingVinesPlant()
		{
			return 15016;
		}
	}
	namespace WetSponge
	{
		constexpr short WetSponge()
		{
			return 230;
		}
	}
	namespace Wheat
	{
		constexpr short Wheat(unsigned char Age)
		{
			if (Age == 1) return 3358;
			if (Age == 2) return 3359;
			if (Age == 3) return 3360;
			if (Age == 4) return 3361;
			if (Age == 5) return 3362;
			if (Age == 6) return 3363;
			if (Age == 0) return 3357;
			return 3364;
		}
		short Wheat();
		unsigned char Age(short ID);
	}
	namespace WhiteBanner
	{
		constexpr short WhiteBanner(unsigned char Rotation)
		{
			if (Rotation == 9) return 7906;
			if (Rotation == 10) return 7907;
			if (Rotation == 11) return 7908;
			if (Rotation == 12) return 7909;
			if (Rotation == 13) return 7910;
			if (Rotation == 14) return 7911;
			if (Rotation == 0) return 7897;
			if (Rotation == 1) return 7898;
			if (Rotation == 2) return 7899;
			if (Rotation == 3) return 7900;
			if (Rotation == 4) return 7901;
			if (Rotation == 5) return 7902;
			if (Rotation == 6) return 7903;
			if (Rotation == 7) return 7904;
			if (Rotation == 8) return 7905;
			return 7912;
		}
		short WhiteBanner();
		unsigned char Rotation(short ID);
	}
	namespace WhiteBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short WhiteBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1062;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1051;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1055;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1059;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1063;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1052;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1056;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1060;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1049;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1053;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1057;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1061;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1050;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1054;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1058;
			return 1064;
		}
		short WhiteBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace WhiteCarpet
	{
		constexpr short WhiteCarpet()
		{
			return 7866;
		}
	}
	namespace WhiteConcrete
	{
		constexpr short WhiteConcrete()
		{
			return 9438;
		}
	}
	namespace WhiteConcretePowder
	{
		constexpr short WhiteConcretePowder()
		{
			return 9454;
		}
	}
	namespace WhiteGlazedTerracotta
	{
		constexpr short WhiteGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9375;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9374;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9376;
			return 9377;
		}
		short WhiteGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace WhiteShulkerBox
	{
		constexpr short WhiteShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9281;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9278;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9282;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9279;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9283;
			return 9280;
		}
		short WhiteShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace WhiteStainedGlass
	{
		constexpr short WhiteStainedGlass()
		{
			return 4095;
		}
	}
	namespace WhiteStainedGlassPane
	{
		constexpr short WhiteStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (!false && !South && West && East && North) return 6869;
			if (!false && South && West && East && !North) return 6873;
			if (!false && !South && West && East && !North) return 6877;
			if (!false && South && West && !East && North) return 6881;
			if (!false && !South && West && !East && North) return 6885;
			if (!false && South && West && !East && !North) return 6889;
			if (!false && !South && West && !East && !North) return 6893;
			if (!false && South && !West && East && North) return 6866;
			if (!false && !South && !West && East && North) return 6870;
			if (!false && South && !West && East && !North) return 6874;
			if (!false && !South && !West && East && !North) return 6878;
			if (!false && South && !West && !East && North) return 6882;
			if (!false && !South && !West && !East && North) return 6886;
			if (!false && South && !West && !East && !North) return 6890;
			if (false && South && West && East && North) return 6863;
			if (false && !South && West && East && North) return 6867;
			if (false && South && West && East && !North) return 6871;
			if (false && !South && West && East && !North) return 6875;
			if (false && South && West && !East && North) return 6879;
			if (false && !South && West && !East && North) return 6883;
			if (false && South && West && !East && !North) return 6887;
			if (false && !South && West && !East && !North) return 6891;
			if (false && South && !West && East && North) return 6864;
			if (false && !South && !West && East && North) return 6868;
			if (false && South && !West && East && !North) return 6872;
			if (false && !South && !West && East && !North) return 6876;
			if (false && South && !West && !East && North) return 6880;
			if (false && !South && !West && !East && North) return 6884;
			if (false && South && !West && !East && !North) return 6888;
			if (false && !South && !West && !East && !North) return 6892;
			if (!false && South && West && East && North) return 6865;
			return 6894;
		}
		short WhiteStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace WhiteTerracotta
	{
		constexpr short WhiteTerracotta()
		{
			return 6847;
		}
	}
	namespace WhiteTulip
	{
		constexpr short WhiteTulip()
		{
			return 1419;
		}
	}
	namespace WhiteWallBanner
	{
		constexpr short WhiteWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8155;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8153;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8154;
			return 8156;
		}
		short WhiteWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace WhiteWool
	{
		constexpr short WhiteWool()
		{
			return 1384;
		}
	}
	namespace WitherRose
	{
		constexpr short WitherRose()
		{
			return 1423;
		}
	}
	namespace WitherSkeletonSkull
	{
		constexpr short WitherSkeletonSkull(unsigned char Rotation)
		{
			if (Rotation == 1) return 6511;
			if (Rotation == 2) return 6512;
			if (Rotation == 3) return 6513;
			if (Rotation == 4) return 6514;
			if (Rotation == 5) return 6515;
			if (Rotation == 6) return 6516;
			if (Rotation == 7) return 6517;
			if (Rotation == 8) return 6518;
			if (Rotation == 9) return 6519;
			if (Rotation == 10) return 6520;
			if (Rotation == 11) return 6521;
			if (Rotation == 12) return 6522;
			if (Rotation == 13) return 6523;
			if (Rotation == 14) return 6524;
			if (Rotation == 0) return 6510;
			return 6525;
		}
		short WitherSkeletonSkull();
		unsigned char Rotation(short ID);
	}
	namespace WitherSkeletonWallSkull
	{
		constexpr short WitherSkeletonWallSkull(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6526;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6527;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6528;
			return 6529;
		}
		short WitherSkeletonWallSkull();
		eBlockFace Facing(short ID);
	}
	namespace YellowBanner
	{
		constexpr short YellowBanner(unsigned char Rotation)
		{
			if (Rotation == 5) return 7966;
			if (Rotation == 6) return 7967;
			if (Rotation == 7) return 7968;
			if (Rotation == 8) return 7969;
			if (Rotation == 9) return 7970;
			if (Rotation == 10) return 7971;
			if (Rotation == 11) return 7972;
			if (Rotation == 12) return 7973;
			if (Rotation == 13) return 7974;
			if (Rotation == 14) return 7975;
			if (Rotation == 0) return 7961;
			if (Rotation == 1) return 7962;
			if (Rotation == 2) return 7963;
			if (Rotation == 3) return 7964;
			if (Rotation == 4) return 7965;
			return 7976;
		}
		short YellowBanner();
		unsigned char Rotation(short ID);
	}
	namespace YellowBed
	{
		enum class Part
		{
			Head,
			Foot
		};
		constexpr short YellowBed(eBlockFace Facing, bool Occupied, enum Part Part)
		{
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1122;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1126;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1115;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1119;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1123;
			if (Part == Part::Head && !Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1127;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1116;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1120;
			if (Part == Part::Foot && !Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1124;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1113;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1117;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XM) return 1121;
			if (Part == Part::Head && Occupied && Facing == eBlockFace::BLOCK_FACE_XP) return 1125;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZM) return 1114;
			if (Part == Part::Foot && Occupied && Facing == eBlockFace::BLOCK_FACE_ZP) return 1118;
			return 1128;
		}
		short YellowBed();
		eBlockFace Facing(short ID);
		bool Occupied(short ID);
		enum Part Part(short ID);
	}
	namespace YellowCarpet
	{
		constexpr short YellowCarpet()
		{
			return 7870;
		}
	}
	namespace YellowConcrete
	{
		constexpr short YellowConcrete()
		{
			return 9442;
		}
	}
	namespace YellowConcretePowder
	{
		constexpr short YellowConcretePowder()
		{
			return 9458;
		}
	}
	namespace YellowGlazedTerracotta
	{
		constexpr short YellowGlazedTerracotta(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9390;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9392;
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9391;
			return 9393;
		}
		short YellowGlazedTerracotta();
		eBlockFace Facing(short ID);
	}
	namespace YellowShulkerBox
	{
		constexpr short YellowShulkerBox(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 9305;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9302;
			if (Facing == eBlockFace::BLOCK_FACE_YP) return 9306;
			if (Facing == eBlockFace::BLOCK_FACE_XP) return 9303;
			if (Facing == eBlockFace::BLOCK_FACE_YM) return 9307;
			return 9304;
		}
		short YellowShulkerBox();
		eBlockFace Facing(short ID);
	}
	namespace YellowStainedGlass
	{
		constexpr short YellowStainedGlass()
		{
			return 4099;
		}
	}
	namespace YellowStainedGlassPane
	{
		constexpr short YellowStainedGlassPane(bool East, bool North, bool South, bool West)
		{
			if (!false && South && West && East && North) return 6993;
			if (!false && !South && West && East && North) return 6997;
			if (!false && South && West && East && !North) return 7001;
			if (!false && !South && West && East && !North) return 7005;
			if (!false && South && West && !East && North) return 7009;
			if (!false && !South && West && !East && North) return 7013;
			if (!false && South && West && !East && !North) return 7017;
			if (!false && !South && West && !East && !North) return 7021;
			if (!false && South && !West && East && North) return 6994;
			if (!false && !South && !West && East && North) return 6998;
			if (!false && South && !West && East && !North) return 7002;
			if (!false && !South && !West && East && !North) return 7006;
			if (!false && South && !West && !East && North) return 7010;
			if (!false && !South && !West && !East && North) return 7014;
			if (!false && South && !West && !East && !North) return 7018;
			if (false && South && West && East && North) return 6991;
			if (false && !South && West && East && North) return 6995;
			if (false && South && West && East && !North) return 6999;
			if (false && !South && West && East && !North) return 7003;
			if (false && South && West && !East && North) return 7007;
			if (false && !South && West && !East && North) return 7011;
			if (false && South && West && !East && !North) return 7015;
			if (false && !South && West && !East && !North) return 7019;
			if (false && South && !West && East && North) return 6992;
			if (false && !South && !West && East && North) return 6996;
			if (false && South && !West && East && !North) return 7000;
			if (false && !South && !West && East && !North) return 7004;
			if (false && South && !West && !East && North) return 7008;
			if (false && !South && !West && !East && North) return 7012;
			if (false && South && !West && !East && !North) return 7016;
			if (false && !South && !West && !East && !North) return 7020;
			return 7022;
		}
		short YellowStainedGlassPane();
		bool East(short ID);
		bool North(short ID);
		bool South(short ID);
		bool Waterlogged(short ID);
		bool West(short ID);
	}
	namespace YellowTerracotta
	{
		constexpr short YellowTerracotta()
		{
			return 6851;
		}
	}
	namespace YellowWallBanner
	{
		constexpr short YellowWallBanner(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8170;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 8171;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8169;
			return 8172;
		}
		short YellowWallBanner();
		eBlockFace Facing(short ID);
	}
	namespace YellowWool
	{
		constexpr short YellowWool()
		{
			return 1388;
		}
	}
	namespace ZombieHead
	{
		constexpr short ZombieHead(unsigned char Rotation)
		{
			if (Rotation == 11) return 6541;
			if (Rotation == 12) return 6542;
			if (Rotation == 13) return 6543;
			if (Rotation == 14) return 6544;
			if (Rotation == 0) return 6530;
			if (Rotation == 1) return 6531;
			if (Rotation == 2) return 6532;
			if (Rotation == 3) return 6533;
			if (Rotation == 4) return 6534;
			if (Rotation == 5) return 6535;
			if (Rotation == 6) return 6536;
			if (Rotation == 7) return 6537;
			if (Rotation == 8) return 6538;
			if (Rotation == 9) return 6539;
			if (Rotation == 10) return 6540;
			return 6545;
		}
		short ZombieHead();
		unsigned char Rotation(short ID);
	}
	namespace ZombieWallHead
	{
		constexpr short ZombieWallHead(eBlockFace Facing)
		{
			if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6547;
			if (Facing == eBlockFace::BLOCK_FACE_XM) return 6548;
			if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6546;
			return 6549;
		}
		short ZombieWallHead();
		eBlockFace Facing(short ID);
	}
}
