#pragma once #include "Globals.h" #include "BlockState.h" #include "Defines.h" namespace Block { namespace AcaciaButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState AcaciaButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6442; else return 6443; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6444; else return 6445; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6446; else return 6447; else if (Powered) return 6448; else return 6449; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6450; else return 6451; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6452; else return 6453; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6454; else return 6455; else if (Powered) return 6456; else return 6457; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6458; else return 6459; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6460; else return 6461; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6462; else return 6463; else if (Powered) return 6464; else return 6465; } BlockState AcaciaButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace AcaciaDoor { enum class Half { Upper, Lower }; enum class Hinge { Left, Right }; constexpr BlockState AcaciaDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8930; else return 8931; else if (Powered) return 8932; else return 8933; else if (Open) if (Powered) return 8934; else return 8935; else if (Powered) return 8936; else return 8937; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8938; else return 8939; else if (Powered) return 8940; else return 8941; else if (Open) if (Powered) return 8942; else return 8943; else if (Powered) return 8944; else return 8945; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8946; else return 8947; else if (Powered) return 8948; else return 8949; else if (Open) if (Powered) return 8950; else return 8951; else if (Powered) return 8952; else return 8953; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8954; else return 8955; else if (Powered) return 8956; else return 8957; else if (Open) if (Powered) return 8958; else return 8959; else if (Powered) return 8960; else return 8961; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8962; else return 8963; else if (Powered) return 8964; else return 8965; else if (Open) if (Powered) return 8966; else return 8967; else if (Powered) return 8968; else return 8969; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8970; else return 8971; else if (Powered) return 8972; else return 8973; else if (Open) if (Powered) return 8974; else return 8975; else if (Powered) return 8976; else return 8977; else if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8978; else return 8979; else if (Powered) return 8980; else return 8981; else if (Open) if (Powered) return 8982; else return 8983; else if (Powered) return 8984; else return 8985; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8986; else return 8987; else if (Powered) return 8988; else return 8989; else if (Open) if (Powered) return 8990; else return 8991; else if (Powered) return 8992; else return 8993; } BlockState AcaciaDoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Hinge Hinge(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace AcaciaFence { constexpr BlockState AcaciaFence(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 8676; else return 8677; else if (West) return 8680; else return 8681; else if (South) if (West) return 8684; else return 8685; else if (West) return 8688; else return 8689; else if (North) if (South) if (West) return 8692; else return 8693; else if (West) return 8696; else return 8697; else if (South) if (West) return 8700; else return 8701; else if (West) return 8704; else return 8705; } BlockState AcaciaFence(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace AcaciaFenceGate { constexpr BlockState AcaciaFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (InWall) if (Open) if (Powered) return 8514; else return 8515; else if (Powered) return 8516; else return 8517; else if (Open) if (Powered) return 8518; else return 8519; else if (Powered) return 8520; else return 8521; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (InWall) if (Open) if (Powered) return 8522; else return 8523; else if (Powered) return 8524; else return 8525; else if (Open) if (Powered) return 8526; else return 8527; else if (Powered) return 8528; else return 8529; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (InWall) if (Open) if (Powered) return 8530; else return 8531; else if (Powered) return 8532; else return 8533; else if (Open) if (Powered) return 8534; else return 8535; else if (Powered) return 8536; else return 8537; else if (InWall) if (Open) if (Powered) return 8538; else return 8539; else if (Powered) return 8540; else return 8541; else if (Open) if (Powered) return 8542; else return 8543; else if (Powered) return 8544; else return 8545; } BlockState AcaciaFenceGate(); eBlockFace Facing(BlockState Block); bool InWall(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace AcaciaLeaves { constexpr BlockState AcaciaLeaves(const unsigned char Distance, const bool Persistent) { if (Distance == 1) if (Persistent) return 201; else return 202; else if (Distance == 2) if (Persistent) return 203; else return 204; else if (Distance == 3) if (Persistent) return 205; else return 206; else if (Distance == 4) if (Persistent) return 207; else return 208; else if (Distance == 5) if (Persistent) return 209; else return 210; else if (Distance == 6) if (Persistent) return 211; else return 212; else if (Persistent) return 213; else return 214; } BlockState AcaciaLeaves(); unsigned char Distance(BlockState Block); bool Persistent(BlockState Block); } namespace AcaciaLog { enum class Axis { X, Y, Z }; constexpr BlockState AcaciaLog(const enum Axis Axis) { if (Axis == Axis::X) return 85; else if (Axis == Axis::Y) return 86; else return 87; } BlockState AcaciaLog(); enum Axis Axis(BlockState Block); } namespace AcaciaPlanks { constexpr BlockState AcaciaPlanks() { return 19; } } namespace AcaciaPressurePlate { constexpr BlockState AcaciaPressurePlate(const bool Powered) { if (Powered) return 3881; else return 3882; } BlockState AcaciaPressurePlate(); bool Powered(BlockState Block); } namespace AcaciaSapling { constexpr BlockState AcaciaSapling(const unsigned char Stage) { if (Stage == 0) return 29; else return 30; } BlockState AcaciaSapling(); unsigned char Stage(BlockState Block); } namespace AcaciaSign { constexpr BlockState AcaciaSign(const unsigned char Rotation) { if (Rotation == 0) return 3478; else if (Rotation == 1) return 3480; else if (Rotation == 2) return 3482; else if (Rotation == 3) return 3484; else if (Rotation == 4) return 3486; else if (Rotation == 5) return 3488; else if (Rotation == 6) return 3490; else if (Rotation == 7) return 3492; else if (Rotation == 8) return 3494; else if (Rotation == 9) return 3496; else if (Rotation == 10) return 3498; else if (Rotation == 11) return 3500; else if (Rotation == 12) return 3502; else if (Rotation == 13) return 3504; else if (Rotation == 14) return 3506; else return 3508; } BlockState AcaciaSign(); unsigned char Rotation(BlockState Block); } namespace AcaciaSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState AcaciaSlab(const enum Type Type) { if (Type == Type::Top) return 8325; else if (Type == Type::Bottom) return 8327; else return 8329; } BlockState AcaciaSlab(); enum Type Type(BlockState Block); } namespace AcaciaStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState AcaciaStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7376; else if (Shape == Shape::InnerLeft) return 7378; else if (Shape == Shape::InnerRight) return 7380; else if (Shape == Shape::OuterLeft) return 7382; else return 7384; else if (Shape == Shape::Straight) return 7386; else if (Shape == Shape::InnerLeft) return 7388; else if (Shape == Shape::InnerRight) return 7390; else if (Shape == Shape::OuterLeft) return 7392; else return 7394; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 7396; else if (Shape == Shape::InnerLeft) return 7398; else if (Shape == Shape::InnerRight) return 7400; else if (Shape == Shape::OuterLeft) return 7402; else return 7404; else if (Shape == Shape::Straight) return 7406; else if (Shape == Shape::InnerLeft) return 7408; else if (Shape == Shape::InnerRight) return 7410; else if (Shape == Shape::OuterLeft) return 7412; else return 7414; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7416; else if (Shape == Shape::InnerLeft) return 7418; else if (Shape == Shape::InnerRight) return 7420; else if (Shape == Shape::OuterLeft) return 7422; else return 7424; else if (Shape == Shape::Straight) return 7426; else if (Shape == Shape::InnerLeft) return 7428; else if (Shape == Shape::InnerRight) return 7430; else if (Shape == Shape::OuterLeft) return 7432; else return 7434; else if (Half == Half::Top) if (Shape == Shape::Straight) return 7436; else if (Shape == Shape::InnerLeft) return 7438; else if (Shape == Shape::InnerRight) return 7440; else if (Shape == Shape::OuterLeft) return 7442; else return 7444; else if (Shape == Shape::Straight) return 7446; else if (Shape == Shape::InnerLeft) return 7448; else if (Shape == Shape::InnerRight) return 7450; else if (Shape == Shape::OuterLeft) return 7452; else return 7454; } BlockState AcaciaStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace AcaciaTrapdoor { enum class Half { Top, Bottom }; constexpr BlockState AcaciaTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Open) if (Powered) return 4368; else return 4370; else if (Powered) return 4372; else return 4374; else if (Open) if (Powered) return 4376; else return 4378; else if (Powered) return 4380; else return 4382; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Open) if (Powered) return 4384; else return 4386; else if (Powered) return 4388; else return 4390; else if (Open) if (Powered) return 4392; else return 4394; else if (Powered) return 4396; else return 4398; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Open) if (Powered) return 4400; else return 4402; else if (Powered) return 4404; else return 4406; else if (Open) if (Powered) return 4408; else return 4410; else if (Powered) return 4412; else return 4414; else if (Half == Half::Top) if (Open) if (Powered) return 4416; else return 4418; else if (Powered) return 4420; else return 4422; else if (Open) if (Powered) return 4424; else return 4426; else if (Powered) return 4428; else return 4430; } BlockState AcaciaTrapdoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace AcaciaWallSign { constexpr BlockState AcaciaWallSign(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3760; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3762; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3764; else return 3766; } BlockState AcaciaWallSign(); eBlockFace Facing(BlockState Block); } namespace AcaciaWood { enum class Axis { X, Y, Z }; constexpr BlockState AcaciaWood(const enum Axis Axis) { if (Axis == Axis::X) return 121; else if (Axis == Axis::Y) return 122; else return 123; } BlockState AcaciaWood(); enum Axis Axis(BlockState Block); } namespace ActivatorRail { enum class Shape { NorthSouth, EastWest, AscendingEast, AscendingWest, AscendingNorth, AscendingSouth }; constexpr BlockState ActivatorRail(const bool Powered, const enum Shape Shape) { if (Powered) if (Shape == Shape::NorthSouth) return 6823; else if (Shape == Shape::EastWest) return 6824; else if (Shape == Shape::AscendingEast) return 6825; else if (Shape == Shape::AscendingWest) return 6826; else if (Shape == Shape::AscendingNorth) return 6827; else return 6828; else if (Shape == Shape::NorthSouth) return 6829; else if (Shape == Shape::EastWest) return 6830; else if (Shape == Shape::AscendingEast) return 6831; else if (Shape == Shape::AscendingWest) return 6832; else if (Shape == Shape::AscendingNorth) return 6833; else return 6834; } BlockState ActivatorRail(); bool Powered(BlockState Block); enum Shape Shape(BlockState Block); } namespace Air { constexpr BlockState Air() { return -0; } } namespace Allium { constexpr BlockState Allium() { return 1415; } } namespace AncientDebris { constexpr BlockState AncientDebris() { return 15827; } } namespace Andesite { constexpr BlockState Andesite() { return 6; } } namespace AndesiteSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState AndesiteSlab(const enum Type Type) { if (Type == Type::Top) return 10844; else if (Type == Type::Bottom) return 10846; else return 10848; } BlockState AndesiteSlab(); enum Type Type(BlockState Block); } namespace AndesiteStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState AndesiteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10470; else if (Shape == Shape::InnerLeft) return 10472; else if (Shape == Shape::InnerRight) return 10474; else if (Shape == Shape::OuterLeft) return 10476; else return 10478; else if (Shape == Shape::Straight) return 10480; else if (Shape == Shape::InnerLeft) return 10482; else if (Shape == Shape::InnerRight) return 10484; else if (Shape == Shape::OuterLeft) return 10486; else return 10488; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10490; else if (Shape == Shape::InnerLeft) return 10492; else if (Shape == Shape::InnerRight) return 10494; else if (Shape == Shape::OuterLeft) return 10496; else return 10498; else if (Shape == Shape::Straight) return 10500; else if (Shape == Shape::InnerLeft) return 10502; else if (Shape == Shape::InnerRight) return 10504; else if (Shape == Shape::OuterLeft) return 10506; else return 10508; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10510; else if (Shape == Shape::InnerLeft) return 10512; else if (Shape == Shape::InnerRight) return 10514; else if (Shape == Shape::OuterLeft) return 10516; else return 10518; else if (Shape == Shape::Straight) return 10520; else if (Shape == Shape::InnerLeft) return 10522; else if (Shape == Shape::InnerRight) return 10524; else if (Shape == Shape::OuterLeft) return 10526; else return 10528; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10530; else if (Shape == Shape::InnerLeft) return 10532; else if (Shape == Shape::InnerRight) return 10534; else if (Shape == Shape::OuterLeft) return 10536; else return 10538; else if (Shape == Shape::Straight) return 10540; else if (Shape == Shape::InnerLeft) return 10542; else if (Shape == Shape::InnerRight) return 10544; else if (Shape == Shape::OuterLeft) return 10546; else return 10548; } BlockState AndesiteStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace AndesiteWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState AndesiteWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 13138; else if (West == West::Low) return 13139; else return 13140; else if (West == West::None) return 13144; else if (West == West::Low) return 13145; else return 13146; else if (South == South::Low) if (Up) if (West == West::None) return 13150; else if (West == West::Low) return 13151; else return 13152; else if (West == West::None) return 13156; else if (West == West::Low) return 13157; else return 13158; else if (Up) if (West == West::None) return 13162; else if (West == West::Low) return 13163; else return 13164; else if (West == West::None) return 13168; else if (West == West::Low) return 13169; else return 13170; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 13174; else if (West == West::Low) return 13175; else return 13176; else if (West == West::None) return 13180; else if (West == West::Low) return 13181; else return 13182; else if (South == South::Low) if (Up) if (West == West::None) return 13186; else if (West == West::Low) return 13187; else return 13188; else if (West == West::None) return 13192; else if (West == West::Low) return 13193; else return 13194; else if (Up) if (West == West::None) return 13198; else if (West == West::Low) return 13199; else return 13200; else if (West == West::None) return 13204; else if (West == West::Low) return 13205; else return 13206; else if (South == South::None) if (Up) if (West == West::None) return 13210; else if (West == West::Low) return 13211; else return 13212; else if (West == West::None) return 13216; else if (West == West::Low) return 13217; else return 13218; else if (South == South::Low) if (Up) if (West == West::None) return 13222; else if (West == West::Low) return 13223; else return 13224; else if (West == West::None) return 13228; else if (West == West::Low) return 13229; else return 13230; else if (Up) if (West == West::None) return 13234; else if (West == West::Low) return 13235; else return 13236; else if (West == West::None) return 13240; else if (West == West::Low) return 13241; else return 13242; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 13246; else if (West == West::Low) return 13247; else return 13248; else if (West == West::None) return 13252; else if (West == West::Low) return 13253; else return 13254; else if (South == South::Low) if (Up) if (West == West::None) return 13258; else if (West == West::Low) return 13259; else return 13260; else if (West == West::None) return 13264; else if (West == West::Low) return 13265; else return 13266; else if (Up) if (West == West::None) return 13270; else if (West == West::Low) return 13271; else return 13272; else if (West == West::None) return 13276; else if (West == West::Low) return 13277; else return 13278; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 13282; else if (West == West::Low) return 13283; else return 13284; else if (West == West::None) return 13288; else if (West == West::Low) return 13289; else return 13290; else if (South == South::Low) if (Up) if (West == West::None) return 13294; else if (West == West::Low) return 13295; else return 13296; else if (West == West::None) return 13300; else if (West == West::Low) return 13301; else return 13302; else if (Up) if (West == West::None) return 13306; else if (West == West::Low) return 13307; else return 13308; else if (West == West::None) return 13312; else if (West == West::Low) return 13313; else return 13314; else if (South == South::None) if (Up) if (West == West::None) return 13318; else if (West == West::Low) return 13319; else return 13320; else if (West == West::None) return 13324; else if (West == West::Low) return 13325; else return 13326; else if (South == South::Low) if (Up) if (West == West::None) return 13330; else if (West == West::Low) return 13331; else return 13332; else if (West == West::None) return 13336; else if (West == West::Low) return 13337; else return 13338; else if (Up) if (West == West::None) return 13342; else if (West == West::Low) return 13343; else return 13344; else if (West == West::None) return 13348; else if (West == West::Low) return 13349; else return 13350; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 13354; else if (West == West::Low) return 13355; else return 13356; else if (West == West::None) return 13360; else if (West == West::Low) return 13361; else return 13362; else if (South == South::Low) if (Up) if (West == West::None) return 13366; else if (West == West::Low) return 13367; else return 13368; else if (West == West::None) return 13372; else if (West == West::Low) return 13373; else return 13374; else if (Up) if (West == West::None) return 13378; else if (West == West::Low) return 13379; else return 13380; else if (West == West::None) return 13384; else if (West == West::Low) return 13385; else return 13386; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 13390; else if (West == West::Low) return 13391; else return 13392; else if (West == West::None) return 13396; else if (West == West::Low) return 13397; else return 13398; else if (South == South::Low) if (Up) if (West == West::None) return 13402; else if (West == West::Low) return 13403; else return 13404; else if (West == West::None) return 13408; else if (West == West::Low) return 13409; else return 13410; else if (Up) if (West == West::None) return 13414; else if (West == West::Low) return 13415; else return 13416; else if (West == West::None) return 13420; else if (West == West::Low) return 13421; else return 13422; else if (South == South::None) if (Up) if (West == West::None) return 13426; else if (West == West::Low) return 13427; else return 13428; else if (West == West::None) return 13432; else if (West == West::Low) return 13433; else return 13434; else if (South == South::Low) if (Up) if (West == West::None) return 13438; else if (West == West::Low) return 13439; else return 13440; else if (West == West::None) return 13444; else if (West == West::Low) return 13445; else return 13446; else if (Up) if (West == West::None) return 13450; else if (West == West::Low) return 13451; else return 13452; else if (West == West::None) return 13456; else if (West == West::Low) return 13457; else return 13458; } BlockState AndesiteWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace Anvil { constexpr BlockState Anvil(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6610; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6611; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6612; else return 6613; } BlockState Anvil(); eBlockFace Facing(BlockState Block); } namespace AttachedMelonStem { constexpr BlockState AttachedMelonStem(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4768; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4769; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4770; else return 4771; } BlockState AttachedMelonStem(); eBlockFace Facing(BlockState Block); } namespace AttachedPumpkinStem { constexpr BlockState AttachedPumpkinStem(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4764; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4765; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4766; else return 4767; } BlockState AttachedPumpkinStem(); eBlockFace Facing(BlockState Block); } namespace AzureBluet { constexpr BlockState AzureBluet() { return 1416; } } namespace Bamboo { enum class Leaves { None, Small, Large }; constexpr BlockState Bamboo(const unsigned char Age, const enum Leaves Leaves, const unsigned char Stage) { if (Age == 0) if (Leaves == Leaves::None) if (Stage == 0) return 9652; else return 9653; else if (Leaves == Leaves::Small) if (Stage == 0) return 9654; else return 9655; else if (Stage == 0) return 9656; else return 9657; else if (Leaves == Leaves::None) if (Stage == 0) return 9658; else return 9659; else if (Leaves == Leaves::Small) if (Stage == 0) return 9660; else return 9661; else if (Stage == 0) return 9662; else return 9663; } BlockState Bamboo(); unsigned char Age(BlockState Block); enum Leaves Leaves(BlockState Block); unsigned char Stage(BlockState Block); } namespace BambooSapling { constexpr BlockState BambooSapling() { return 9651; } } namespace Barrel { constexpr BlockState Barrel(const eBlockFace Facing, const bool Open) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Open) return 14791; else return 14792; else if (Facing == eBlockFace::BLOCK_FACE_XP) if (Open) return 14793; else return 14794; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Open) return 14795; else return 14796; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Open) return 14797; else return 14798; else if (Facing == eBlockFace::BLOCK_FACE_YP) if (Open) return 14799; else return 14800; else if (Open) return 14801; else return 14802; } BlockState Barrel(); eBlockFace Facing(BlockState Block); bool Open(BlockState Block); } namespace Barrier { constexpr BlockState Barrier() { return 7536; } } namespace Basalt { enum class Axis { X, Y, Z }; constexpr BlockState Basalt(const enum Axis Axis) { if (Axis == Axis::X) return 4002; else if (Axis == Axis::Y) return 4003; else return 4004; } BlockState Basalt(); enum Axis Axis(BlockState Block); } namespace Beacon { constexpr BlockState Beacon() { return 5656; } } namespace Bedrock { constexpr BlockState Bedrock() { return 33; } } namespace BeeNest { constexpr BlockState BeeNest(const eBlockFace Facing, const unsigned char HoneyLevel) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (HoneyLevel == 0) return 15776; else if (HoneyLevel == 1) return 15777; else if (HoneyLevel == 2) return 15778; else if (HoneyLevel == 3) return 15779; else if (HoneyLevel == 4) return 15780; else return 15781; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (HoneyLevel == 0) return 15782; else if (HoneyLevel == 1) return 15783; else if (HoneyLevel == 2) return 15784; else if (HoneyLevel == 3) return 15785; else if (HoneyLevel == 4) return 15786; else return 15787; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (HoneyLevel == 0) return 15788; else if (HoneyLevel == 1) return 15789; else if (HoneyLevel == 2) return 15790; else if (HoneyLevel == 3) return 15791; else if (HoneyLevel == 4) return 15792; else return 15793; else if (HoneyLevel == 0) return 15794; else if (HoneyLevel == 1) return 15795; else if (HoneyLevel == 2) return 15796; else if (HoneyLevel == 3) return 15797; else if (HoneyLevel == 4) return 15798; else return 15799; } BlockState BeeNest(); eBlockFace Facing(BlockState Block); unsigned char HoneyLevel(BlockState Block); } namespace Beehive { constexpr BlockState Beehive(const eBlockFace Facing, const unsigned char HoneyLevel) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (HoneyLevel == 0) return 15800; else if (HoneyLevel == 1) return 15801; else if (HoneyLevel == 2) return 15802; else if (HoneyLevel == 3) return 15803; else if (HoneyLevel == 4) return 15804; else return 15805; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (HoneyLevel == 0) return 15806; else if (HoneyLevel == 1) return 15807; else if (HoneyLevel == 2) return 15808; else if (HoneyLevel == 3) return 15809; else if (HoneyLevel == 4) return 15810; else return 15811; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (HoneyLevel == 0) return 15812; else if (HoneyLevel == 1) return 15813; else if (HoneyLevel == 2) return 15814; else if (HoneyLevel == 3) return 15815; else if (HoneyLevel == 4) return 15816; else return 15817; else if (HoneyLevel == 0) return 15818; else if (HoneyLevel == 1) return 15819; else if (HoneyLevel == 2) return 15820; else if (HoneyLevel == 3) return 15821; else if (HoneyLevel == 4) return 15822; else return 15823; } BlockState Beehive(); eBlockFace Facing(BlockState Block); unsigned char HoneyLevel(BlockState Block); } namespace Beetroots { constexpr BlockState Beetroots(const unsigned char Age) { if (Age == 0) return 9219; else if (Age == 1) return 9220; else if (Age == 2) return 9221; else return 9222; } BlockState Beetroots(); unsigned char Age(BlockState Block); } namespace Bell { enum class Attachment { Floor, Ceiling, SingleWall, DoubleWall }; constexpr BlockState Bell(const enum Attachment Attachment, const eBlockFace Facing, const bool Powered) { if (Attachment == Attachment::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 14854; else return 14855; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 14856; else return 14857; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 14858; else return 14859; else if (Powered) return 14860; else return 14861; else if (Attachment == Attachment::Ceiling) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 14862; else return 14863; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 14864; else return 14865; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 14866; else return 14867; else if (Powered) return 14868; else return 14869; else if (Attachment == Attachment::SingleWall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 14870; else return 14871; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 14872; else return 14873; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 14874; else return 14875; else if (Powered) return 14876; else return 14877; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 14878; else return 14879; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 14880; else return 14881; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 14882; else return 14883; else if (Powered) return 14884; else return 14885; } BlockState Bell(); enum Attachment Attachment(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace BirchButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState BirchButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6394; else return 6395; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6396; else return 6397; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6398; else return 6399; else if (Powered) return 6400; else return 6401; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6402; else return 6403; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6404; else return 6405; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6406; else return 6407; else if (Powered) return 6408; else return 6409; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6410; else return 6411; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6412; else return 6413; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6414; else return 6415; else if (Powered) return 6416; else return 6417; } BlockState BirchButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace BirchDoor { enum class Half { Upper, Lower }; enum class Hinge { Left, Right }; constexpr BlockState BirchDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8802; else return 8803; else if (Powered) return 8804; else return 8805; else if (Open) if (Powered) return 8806; else return 8807; else if (Powered) return 8808; else return 8809; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8810; else return 8811; else if (Powered) return 8812; else return 8813; else if (Open) if (Powered) return 8814; else return 8815; else if (Powered) return 8816; else return 8817; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8818; else return 8819; else if (Powered) return 8820; else return 8821; else if (Open) if (Powered) return 8822; else return 8823; else if (Powered) return 8824; else return 8825; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8826; else return 8827; else if (Powered) return 8828; else return 8829; else if (Open) if (Powered) return 8830; else return 8831; else if (Powered) return 8832; else return 8833; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8834; else return 8835; else if (Powered) return 8836; else return 8837; else if (Open) if (Powered) return 8838; else return 8839; else if (Powered) return 8840; else return 8841; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8842; else return 8843; else if (Powered) return 8844; else return 8845; else if (Open) if (Powered) return 8846; else return 8847; else if (Powered) return 8848; else return 8849; else if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8850; else return 8851; else if (Powered) return 8852; else return 8853; else if (Open) if (Powered) return 8854; else return 8855; else if (Powered) return 8856; else return 8857; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8858; else return 8859; else if (Powered) return 8860; else return 8861; else if (Open) if (Powered) return 8862; else return 8863; else if (Powered) return 8864; else return 8865; } BlockState BirchDoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Hinge Hinge(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace BirchFence { constexpr BlockState BirchFence(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 8612; else return 8613; else if (West) return 8616; else return 8617; else if (South) if (West) return 8620; else return 8621; else if (West) return 8624; else return 8625; else if (North) if (South) if (West) return 8628; else return 8629; else if (West) return 8632; else return 8633; else if (South) if (West) return 8636; else return 8637; else if (West) return 8640; else return 8641; } BlockState BirchFence(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace BirchFenceGate { constexpr BlockState BirchFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (InWall) if (Open) if (Powered) return 8450; else return 8451; else if (Powered) return 8452; else return 8453; else if (Open) if (Powered) return 8454; else return 8455; else if (Powered) return 8456; else return 8457; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (InWall) if (Open) if (Powered) return 8458; else return 8459; else if (Powered) return 8460; else return 8461; else if (Open) if (Powered) return 8462; else return 8463; else if (Powered) return 8464; else return 8465; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (InWall) if (Open) if (Powered) return 8466; else return 8467; else if (Powered) return 8468; else return 8469; else if (Open) if (Powered) return 8470; else return 8471; else if (Powered) return 8472; else return 8473; else if (InWall) if (Open) if (Powered) return 8474; else return 8475; else if (Powered) return 8476; else return 8477; else if (Open) if (Powered) return 8478; else return 8479; else if (Powered) return 8480; else return 8481; } BlockState BirchFenceGate(); eBlockFace Facing(BlockState Block); bool InWall(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace BirchLeaves { constexpr BlockState BirchLeaves(const unsigned char Distance, const bool Persistent) { if (Distance == 1) if (Persistent) return 173; else return 174; else if (Distance == 2) if (Persistent) return 175; else return 176; else if (Distance == 3) if (Persistent) return 177; else return 178; else if (Distance == 4) if (Persistent) return 179; else return 180; else if (Distance == 5) if (Persistent) return 181; else return 182; else if (Distance == 6) if (Persistent) return 183; else return 184; else if (Persistent) return 185; else return 186; } BlockState BirchLeaves(); unsigned char Distance(BlockState Block); bool Persistent(BlockState Block); } namespace BirchLog { enum class Axis { X, Y, Z }; constexpr BlockState BirchLog(const enum Axis Axis) { if (Axis == Axis::X) return 79; else if (Axis == Axis::Y) return 80; else return 81; } BlockState BirchLog(); enum Axis Axis(BlockState Block); } namespace BirchPlanks { constexpr BlockState BirchPlanks() { return 17; } } namespace BirchPressurePlate { constexpr BlockState BirchPressurePlate(const bool Powered) { if (Powered) return 3877; else return 3878; } BlockState BirchPressurePlate(); bool Powered(BlockState Block); } namespace BirchSapling { constexpr BlockState BirchSapling(const unsigned char Stage) { if (Stage == 0) return 25; else return 26; } BlockState BirchSapling(); unsigned char Stage(BlockState Block); } namespace BirchSign { constexpr BlockState BirchSign(const unsigned char Rotation) { if (Rotation == 0) return 3446; else if (Rotation == 1) return 3448; else if (Rotation == 2) return 3450; else if (Rotation == 3) return 3452; else if (Rotation == 4) return 3454; else if (Rotation == 5) return 3456; else if (Rotation == 6) return 3458; else if (Rotation == 7) return 3460; else if (Rotation == 8) return 3462; else if (Rotation == 9) return 3464; else if (Rotation == 10) return 3466; else if (Rotation == 11) return 3468; else if (Rotation == 12) return 3470; else if (Rotation == 13) return 3472; else if (Rotation == 14) return 3474; else return 3476; } BlockState BirchSign(); unsigned char Rotation(BlockState Block); } namespace BirchSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState BirchSlab(const enum Type Type) { if (Type == Type::Top) return 8313; else if (Type == Type::Bottom) return 8315; else return 8317; } BlockState BirchSlab(); enum Type Type(BlockState Block); } namespace BirchStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState BirchStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5485; else if (Shape == Shape::InnerLeft) return 5487; else if (Shape == Shape::InnerRight) return 5489; else if (Shape == Shape::OuterLeft) return 5491; else return 5493; else if (Shape == Shape::Straight) return 5495; else if (Shape == Shape::InnerLeft) return 5497; else if (Shape == Shape::InnerRight) return 5499; else if (Shape == Shape::OuterLeft) return 5501; else return 5503; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 5505; else if (Shape == Shape::InnerLeft) return 5507; else if (Shape == Shape::InnerRight) return 5509; else if (Shape == Shape::OuterLeft) return 5511; else return 5513; else if (Shape == Shape::Straight) return 5515; else if (Shape == Shape::InnerLeft) return 5517; else if (Shape == Shape::InnerRight) return 5519; else if (Shape == Shape::OuterLeft) return 5521; else return 5523; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5525; else if (Shape == Shape::InnerLeft) return 5527; else if (Shape == Shape::InnerRight) return 5529; else if (Shape == Shape::OuterLeft) return 5531; else return 5533; else if (Shape == Shape::Straight) return 5535; else if (Shape == Shape::InnerLeft) return 5537; else if (Shape == Shape::InnerRight) return 5539; else if (Shape == Shape::OuterLeft) return 5541; else return 5543; else if (Half == Half::Top) if (Shape == Shape::Straight) return 5545; else if (Shape == Shape::InnerLeft) return 5547; else if (Shape == Shape::InnerRight) return 5549; else if (Shape == Shape::OuterLeft) return 5551; else return 5553; else if (Shape == Shape::Straight) return 5555; else if (Shape == Shape::InnerLeft) return 5557; else if (Shape == Shape::InnerRight) return 5559; else if (Shape == Shape::OuterLeft) return 5561; else return 5563; } BlockState BirchStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace BirchTrapdoor { enum class Half { Top, Bottom }; constexpr BlockState BirchTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Open) if (Powered) return 4240; else return 4242; else if (Powered) return 4244; else return 4246; else if (Open) if (Powered) return 4248; else return 4250; else if (Powered) return 4252; else return 4254; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Open) if (Powered) return 4256; else return 4258; else if (Powered) return 4260; else return 4262; else if (Open) if (Powered) return 4264; else return 4266; else if (Powered) return 4268; else return 4270; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Open) if (Powered) return 4272; else return 4274; else if (Powered) return 4276; else return 4278; else if (Open) if (Powered) return 4280; else return 4282; else if (Powered) return 4284; else return 4286; else if (Half == Half::Top) if (Open) if (Powered) return 4288; else return 4290; else if (Powered) return 4292; else return 4294; else if (Open) if (Powered) return 4296; else return 4298; else if (Powered) return 4300; else return 4302; } BlockState BirchTrapdoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace BirchWallSign { constexpr BlockState BirchWallSign(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3752; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3754; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3756; else return 3758; } BlockState BirchWallSign(); eBlockFace Facing(BlockState Block); } namespace BirchWood { enum class Axis { X, Y, Z }; constexpr BlockState BirchWood(const enum Axis Axis) { if (Axis == Axis::X) return 115; else if (Axis == Axis::Y) return 116; else return 117; } BlockState BirchWood(); enum Axis Axis(BlockState Block); } namespace BlackBanner { constexpr BlockState BlackBanner(const unsigned char Rotation) { if (Rotation == 0) return 8137; else if (Rotation == 1) return 8138; else if (Rotation == 2) return 8139; else if (Rotation == 3) return 8140; else if (Rotation == 4) return 8141; else if (Rotation == 5) return 8142; else if (Rotation == 6) return 8143; else if (Rotation == 7) return 8144; else if (Rotation == 8) return 8145; else if (Rotation == 9) return 8146; else if (Rotation == 10) return 8147; else if (Rotation == 11) return 8148; else if (Rotation == 12) return 8149; else if (Rotation == 13) return 8150; else if (Rotation == 14) return 8151; else return 8152; } BlockState BlackBanner(); unsigned char Rotation(BlockState Block); } namespace BlackBed { enum class Part { Head, Foot }; constexpr BlockState BlackBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1289; else return 1290; else if (Part == Part::Head) return 1291; else return 1292; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1293; else return 1294; else if (Part == Part::Head) return 1295; else return 1296; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1297; else return 1298; else if (Part == Part::Head) return 1299; else return 1300; else if (Occupied) if (Part == Part::Head) return 1301; else return 1302; else if (Part == Part::Head) return 1303; else return 1304; } BlockState BlackBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace BlackCarpet { constexpr BlockState BlackCarpet() { return 7881; } } namespace BlackConcrete { constexpr BlockState BlackConcrete() { return 9453; } } namespace BlackConcretePowder { constexpr BlockState BlackConcretePowder() { return 9469; } } namespace BlackGlazedTerracotta { constexpr BlockState BlackGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9434; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9435; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9436; else return 9437; } BlockState BlackGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace BlackShulkerBox { constexpr BlockState BlackShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9368; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9369; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9370; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9371; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9372; else return 9373; } BlockState BlackShulkerBox(); eBlockFace Facing(BlockState Block); } namespace BlackStainedGlass { constexpr BlockState BlackStainedGlass() { return 4110; } } namespace BlackStainedGlassPane { constexpr BlockState BlackStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7345; else return 7346; else if (West) return 7349; else return 7350; else if (South) if (West) return 7353; else return 7354; else if (West) return 7357; else return 7358; else if (North) if (South) if (West) return 7361; else return 7362; else if (West) return 7365; else return 7366; else if (South) if (West) return 7369; else return 7370; else if (West) return 7373; else return 7374; } BlockState BlackStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace BlackTerracotta { constexpr BlockState BlackTerracotta() { return 6862; } } namespace BlackWallBanner { constexpr BlockState BlackWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8213; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8214; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8215; else return 8216; } BlockState BlackWallBanner(); eBlockFace Facing(BlockState Block); } namespace BlackWool { constexpr BlockState BlackWool() { return 1399; } } namespace Blackstone { constexpr BlockState Blackstone() { return 15839; } } namespace BlackstoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState BlackstoneSlab(const enum Type Type) { if (Type == Type::Top) return 16245; else if (Type == Type::Bottom) return 16247; else return 16249; } BlockState BlackstoneSlab(); enum Type Type(BlockState Block); } namespace BlackstoneStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState BlackstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 15841; else if (Shape == Shape::InnerLeft) return 15843; else if (Shape == Shape::InnerRight) return 15845; else if (Shape == Shape::OuterLeft) return 15847; else return 15849; else if (Shape == Shape::Straight) return 15851; else if (Shape == Shape::InnerLeft) return 15853; else if (Shape == Shape::InnerRight) return 15855; else if (Shape == Shape::OuterLeft) return 15857; else return 15859; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 15861; else if (Shape == Shape::InnerLeft) return 15863; else if (Shape == Shape::InnerRight) return 15865; else if (Shape == Shape::OuterLeft) return 15867; else return 15869; else if (Shape == Shape::Straight) return 15871; else if (Shape == Shape::InnerLeft) return 15873; else if (Shape == Shape::InnerRight) return 15875; else if (Shape == Shape::OuterLeft) return 15877; else return 15879; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 15881; else if (Shape == Shape::InnerLeft) return 15883; else if (Shape == Shape::InnerRight) return 15885; else if (Shape == Shape::OuterLeft) return 15887; else return 15889; else if (Shape == Shape::Straight) return 15891; else if (Shape == Shape::InnerLeft) return 15893; else if (Shape == Shape::InnerRight) return 15895; else if (Shape == Shape::OuterLeft) return 15897; else return 15899; else if (Half == Half::Top) if (Shape == Shape::Straight) return 15901; else if (Shape == Shape::InnerLeft) return 15903; else if (Shape == Shape::InnerRight) return 15905; else if (Shape == Shape::OuterLeft) return 15907; else return 15909; else if (Shape == Shape::Straight) return 15911; else if (Shape == Shape::InnerLeft) return 15913; else if (Shape == Shape::InnerRight) return 15915; else if (Shape == Shape::OuterLeft) return 15917; else return 15919; } BlockState BlackstoneStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace BlackstoneWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState BlackstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 15923; else if (West == West::Low) return 15924; else return 15925; else if (West == West::None) return 15929; else if (West == West::Low) return 15930; else return 15931; else if (South == South::Low) if (Up) if (West == West::None) return 15935; else if (West == West::Low) return 15936; else return 15937; else if (West == West::None) return 15941; else if (West == West::Low) return 15942; else return 15943; else if (Up) if (West == West::None) return 15947; else if (West == West::Low) return 15948; else return 15949; else if (West == West::None) return 15953; else if (West == West::Low) return 15954; else return 15955; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 15959; else if (West == West::Low) return 15960; else return 15961; else if (West == West::None) return 15965; else if (West == West::Low) return 15966; else return 15967; else if (South == South::Low) if (Up) if (West == West::None) return 15971; else if (West == West::Low) return 15972; else return 15973; else if (West == West::None) return 15977; else if (West == West::Low) return 15978; else return 15979; else if (Up) if (West == West::None) return 15983; else if (West == West::Low) return 15984; else return 15985; else if (West == West::None) return 15989; else if (West == West::Low) return 15990; else return 15991; else if (South == South::None) if (Up) if (West == West::None) return 15995; else if (West == West::Low) return 15996; else return 15997; else if (West == West::None) return 16001; else if (West == West::Low) return 16002; else return 16003; else if (South == South::Low) if (Up) if (West == West::None) return 16007; else if (West == West::Low) return 16008; else return 16009; else if (West == West::None) return 16013; else if (West == West::Low) return 16014; else return 16015; else if (Up) if (West == West::None) return 16019; else if (West == West::Low) return 16020; else return 16021; else if (West == West::None) return 16025; else if (West == West::Low) return 16026; else return 16027; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 16031; else if (West == West::Low) return 16032; else return 16033; else if (West == West::None) return 16037; else if (West == West::Low) return 16038; else return 16039; else if (South == South::Low) if (Up) if (West == West::None) return 16043; else if (West == West::Low) return 16044; else return 16045; else if (West == West::None) return 16049; else if (West == West::Low) return 16050; else return 16051; else if (Up) if (West == West::None) return 16055; else if (West == West::Low) return 16056; else return 16057; else if (West == West::None) return 16061; else if (West == West::Low) return 16062; else return 16063; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 16067; else if (West == West::Low) return 16068; else return 16069; else if (West == West::None) return 16073; else if (West == West::Low) return 16074; else return 16075; else if (South == South::Low) if (Up) if (West == West::None) return 16079; else if (West == West::Low) return 16080; else return 16081; else if (West == West::None) return 16085; else if (West == West::Low) return 16086; else return 16087; else if (Up) if (West == West::None) return 16091; else if (West == West::Low) return 16092; else return 16093; else if (West == West::None) return 16097; else if (West == West::Low) return 16098; else return 16099; else if (South == South::None) if (Up) if (West == West::None) return 16103; else if (West == West::Low) return 16104; else return 16105; else if (West == West::None) return 16109; else if (West == West::Low) return 16110; else return 16111; else if (South == South::Low) if (Up) if (West == West::None) return 16115; else if (West == West::Low) return 16116; else return 16117; else if (West == West::None) return 16121; else if (West == West::Low) return 16122; else return 16123; else if (Up) if (West == West::None) return 16127; else if (West == West::Low) return 16128; else return 16129; else if (West == West::None) return 16133; else if (West == West::Low) return 16134; else return 16135; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 16139; else if (West == West::Low) return 16140; else return 16141; else if (West == West::None) return 16145; else if (West == West::Low) return 16146; else return 16147; else if (South == South::Low) if (Up) if (West == West::None) return 16151; else if (West == West::Low) return 16152; else return 16153; else if (West == West::None) return 16157; else if (West == West::Low) return 16158; else return 16159; else if (Up) if (West == West::None) return 16163; else if (West == West::Low) return 16164; else return 16165; else if (West == West::None) return 16169; else if (West == West::Low) return 16170; else return 16171; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 16175; else if (West == West::Low) return 16176; else return 16177; else if (West == West::None) return 16181; else if (West == West::Low) return 16182; else return 16183; else if (South == South::Low) if (Up) if (West == West::None) return 16187; else if (West == West::Low) return 16188; else return 16189; else if (West == West::None) return 16193; else if (West == West::Low) return 16194; else return 16195; else if (Up) if (West == West::None) return 16199; else if (West == West::Low) return 16200; else return 16201; else if (West == West::None) return 16205; else if (West == West::Low) return 16206; else return 16207; else if (South == South::None) if (Up) if (West == West::None) return 16211; else if (West == West::Low) return 16212; else return 16213; else if (West == West::None) return 16217; else if (West == West::Low) return 16218; else return 16219; else if (South == South::Low) if (Up) if (West == West::None) return 16223; else if (West == West::Low) return 16224; else return 16225; else if (West == West::None) return 16229; else if (West == West::Low) return 16230; else return 16231; else if (Up) if (West == West::None) return 16235; else if (West == West::Low) return 16236; else return 16237; else if (West == West::None) return 16241; else if (West == West::Low) return 16242; else return 16243; } BlockState BlackstoneWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace BlastFurnace { constexpr BlockState BlastFurnace(const eBlockFace Facing, const bool Lit) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Lit) return 14811; else return 14812; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Lit) return 14813; else return 14814; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Lit) return 14815; else return 14816; else if (Lit) return 14817; else return 14818; } BlockState BlastFurnace(); eBlockFace Facing(BlockState Block); bool Lit(BlockState Block); } namespace BlueBanner { constexpr BlockState BlueBanner(const unsigned char Rotation) { if (Rotation == 0) return 8073; else if (Rotation == 1) return 8074; else if (Rotation == 2) return 8075; else if (Rotation == 3) return 8076; else if (Rotation == 4) return 8077; else if (Rotation == 5) return 8078; else if (Rotation == 6) return 8079; else if (Rotation == 7) return 8080; else if (Rotation == 8) return 8081; else if (Rotation == 9) return 8082; else if (Rotation == 10) return 8083; else if (Rotation == 11) return 8084; else if (Rotation == 12) return 8085; else if (Rotation == 13) return 8086; else if (Rotation == 14) return 8087; else return 8088; } BlockState BlueBanner(); unsigned char Rotation(BlockState Block); } namespace BlueBed { enum class Part { Head, Foot }; constexpr BlockState BlueBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1225; else return 1226; else if (Part == Part::Head) return 1227; else return 1228; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1229; else return 1230; else if (Part == Part::Head) return 1231; else return 1232; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1233; else return 1234; else if (Part == Part::Head) return 1235; else return 1236; else if (Occupied) if (Part == Part::Head) return 1237; else return 1238; else if (Part == Part::Head) return 1239; else return 1240; } BlockState BlueBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace BlueCarpet { constexpr BlockState BlueCarpet() { return 7877; } } namespace BlueConcrete { constexpr BlockState BlueConcrete() { return 9449; } } namespace BlueConcretePowder { constexpr BlockState BlueConcretePowder() { return 9465; } } namespace BlueGlazedTerracotta { constexpr BlockState BlueGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9418; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9419; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9420; else return 9421; } BlockState BlueGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace BlueIce { constexpr BlockState BlueIce() { return 9648; } } namespace BlueOrchid { constexpr BlockState BlueOrchid() { return 1414; } } namespace BlueShulkerBox { constexpr BlockState BlueShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9344; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9345; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9346; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9347; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9348; else return 9349; } BlockState BlueShulkerBox(); eBlockFace Facing(BlockState Block); } namespace BlueStainedGlass { constexpr BlockState BlueStainedGlass() { return 4106; } } namespace BlueStainedGlassPane { constexpr BlockState BlueStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7217; else return 7218; else if (West) return 7221; else return 7222; else if (South) if (West) return 7225; else return 7226; else if (West) return 7229; else return 7230; else if (North) if (South) if (West) return 7233; else return 7234; else if (West) return 7237; else return 7238; else if (South) if (West) return 7241; else return 7242; else if (West) return 7245; else return 7246; } BlockState BlueStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace BlueTerracotta { constexpr BlockState BlueTerracotta() { return 6858; } } namespace BlueWallBanner { constexpr BlockState BlueWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8197; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8198; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8199; else return 8200; } BlockState BlueWallBanner(); eBlockFace Facing(BlockState Block); } namespace BlueWool { constexpr BlockState BlueWool() { return 1395; } } namespace BoneBlock { enum class Axis { X, Y, Z }; constexpr BlockState BoneBlock(const enum Axis Axis) { if (Axis == Axis::X) return 9256; else if (Axis == Axis::Y) return 9257; else return 9258; } BlockState BoneBlock(); enum Axis Axis(BlockState Block); } namespace Bookshelf { constexpr BlockState Bookshelf() { return 1432; } } namespace BrainCoral { constexpr BlockState BrainCoral() { return 9533; } } namespace BrainCoralBlock { constexpr BlockState BrainCoralBlock() { return 9516; } } namespace BrainCoralFan { constexpr BlockState BrainCoralFan() { return 9553; } } namespace BrainCoralWallFan { constexpr BlockState BrainCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9609; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9611; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9613; else return 9615; } BlockState BrainCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace BrewingStand { constexpr BlockState BrewingStand(const bool HasBottle_0, const bool HasBottle_1, const bool HasBottle_2) { if (HasBottle_0) if (HasBottle_1) if (HasBottle_2) return 5133; else return 5134; else if (HasBottle_2) return 5135; else return 5136; else if (HasBottle_1) if (HasBottle_2) return 5137; else return 5138; else if (HasBottle_2) return 5139; else return 5140; } BlockState BrewingStand(); bool HasBottle_0(BlockState Block); bool HasBottle_1(BlockState Block); bool HasBottle_2(BlockState Block); } namespace BrickSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState BrickSlab(const enum Type Type) { if (Type == Type::Top) return 8373; else if (Type == Type::Bottom) return 8375; else return 8377; } BlockState BrickSlab(); enum Type Type(BlockState Block); } namespace BrickStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState BrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 4853; else if (Shape == Shape::InnerLeft) return 4855; else if (Shape == Shape::InnerRight) return 4857; else if (Shape == Shape::OuterLeft) return 4859; else return 4861; else if (Shape == Shape::Straight) return 4863; else if (Shape == Shape::InnerLeft) return 4865; else if (Shape == Shape::InnerRight) return 4867; else if (Shape == Shape::OuterLeft) return 4869; else return 4871; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 4873; else if (Shape == Shape::InnerLeft) return 4875; else if (Shape == Shape::InnerRight) return 4877; else if (Shape == Shape::OuterLeft) return 4879; else return 4881; else if (Shape == Shape::Straight) return 4883; else if (Shape == Shape::InnerLeft) return 4885; else if (Shape == Shape::InnerRight) return 4887; else if (Shape == Shape::OuterLeft) return 4889; else return 4891; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 4893; else if (Shape == Shape::InnerLeft) return 4895; else if (Shape == Shape::InnerRight) return 4897; else if (Shape == Shape::OuterLeft) return 4899; else return 4901; else if (Shape == Shape::Straight) return 4903; else if (Shape == Shape::InnerLeft) return 4905; else if (Shape == Shape::InnerRight) return 4907; else if (Shape == Shape::OuterLeft) return 4909; else return 4911; else if (Half == Half::Top) if (Shape == Shape::Straight) return 4913; else if (Shape == Shape::InnerLeft) return 4915; else if (Shape == Shape::InnerRight) return 4917; else if (Shape == Shape::OuterLeft) return 4919; else return 4921; else if (Shape == Shape::Straight) return 4923; else if (Shape == Shape::InnerLeft) return 4925; else if (Shape == Shape::InnerRight) return 4927; else if (Shape == Shape::OuterLeft) return 4929; else return 4931; } BlockState BrickStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace BrickWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState BrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 10870; else if (West == West::Low) return 10871; else return 10872; else if (West == West::None) return 10876; else if (West == West::Low) return 10877; else return 10878; else if (South == South::Low) if (Up) if (West == West::None) return 10882; else if (West == West::Low) return 10883; else return 10884; else if (West == West::None) return 10888; else if (West == West::Low) return 10889; else return 10890; else if (Up) if (West == West::None) return 10894; else if (West == West::Low) return 10895; else return 10896; else if (West == West::None) return 10900; else if (West == West::Low) return 10901; else return 10902; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 10906; else if (West == West::Low) return 10907; else return 10908; else if (West == West::None) return 10912; else if (West == West::Low) return 10913; else return 10914; else if (South == South::Low) if (Up) if (West == West::None) return 10918; else if (West == West::Low) return 10919; else return 10920; else if (West == West::None) return 10924; else if (West == West::Low) return 10925; else return 10926; else if (Up) if (West == West::None) return 10930; else if (West == West::Low) return 10931; else return 10932; else if (West == West::None) return 10936; else if (West == West::Low) return 10937; else return 10938; else if (South == South::None) if (Up) if (West == West::None) return 10942; else if (West == West::Low) return 10943; else return 10944; else if (West == West::None) return 10948; else if (West == West::Low) return 10949; else return 10950; else if (South == South::Low) if (Up) if (West == West::None) return 10954; else if (West == West::Low) return 10955; else return 10956; else if (West == West::None) return 10960; else if (West == West::Low) return 10961; else return 10962; else if (Up) if (West == West::None) return 10966; else if (West == West::Low) return 10967; else return 10968; else if (West == West::None) return 10972; else if (West == West::Low) return 10973; else return 10974; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 10978; else if (West == West::Low) return 10979; else return 10980; else if (West == West::None) return 10984; else if (West == West::Low) return 10985; else return 10986; else if (South == South::Low) if (Up) if (West == West::None) return 10990; else if (West == West::Low) return 10991; else return 10992; else if (West == West::None) return 10996; else if (West == West::Low) return 10997; else return 10998; else if (Up) if (West == West::None) return 11002; else if (West == West::Low) return 11003; else return 11004; else if (West == West::None) return 11008; else if (West == West::Low) return 11009; else return 11010; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11014; else if (West == West::Low) return 11015; else return 11016; else if (West == West::None) return 11020; else if (West == West::Low) return 11021; else return 11022; else if (South == South::Low) if (Up) if (West == West::None) return 11026; else if (West == West::Low) return 11027; else return 11028; else if (West == West::None) return 11032; else if (West == West::Low) return 11033; else return 11034; else if (Up) if (West == West::None) return 11038; else if (West == West::Low) return 11039; else return 11040; else if (West == West::None) return 11044; else if (West == West::Low) return 11045; else return 11046; else if (South == South::None) if (Up) if (West == West::None) return 11050; else if (West == West::Low) return 11051; else return 11052; else if (West == West::None) return 11056; else if (West == West::Low) return 11057; else return 11058; else if (South == South::Low) if (Up) if (West == West::None) return 11062; else if (West == West::Low) return 11063; else return 11064; else if (West == West::None) return 11068; else if (West == West::Low) return 11069; else return 11070; else if (Up) if (West == West::None) return 11074; else if (West == West::Low) return 11075; else return 11076; else if (West == West::None) return 11080; else if (West == West::Low) return 11081; else return 11082; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 11086; else if (West == West::Low) return 11087; else return 11088; else if (West == West::None) return 11092; else if (West == West::Low) return 11093; else return 11094; else if (South == South::Low) if (Up) if (West == West::None) return 11098; else if (West == West::Low) return 11099; else return 11100; else if (West == West::None) return 11104; else if (West == West::Low) return 11105; else return 11106; else if (Up) if (West == West::None) return 11110; else if (West == West::Low) return 11111; else return 11112; else if (West == West::None) return 11116; else if (West == West::Low) return 11117; else return 11118; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11122; else if (West == West::Low) return 11123; else return 11124; else if (West == West::None) return 11128; else if (West == West::Low) return 11129; else return 11130; else if (South == South::Low) if (Up) if (West == West::None) return 11134; else if (West == West::Low) return 11135; else return 11136; else if (West == West::None) return 11140; else if (West == West::Low) return 11141; else return 11142; else if (Up) if (West == West::None) return 11146; else if (West == West::Low) return 11147; else return 11148; else if (West == West::None) return 11152; else if (West == West::Low) return 11153; else return 11154; else if (South == South::None) if (Up) if (West == West::None) return 11158; else if (West == West::Low) return 11159; else return 11160; else if (West == West::None) return 11164; else if (West == West::Low) return 11165; else return 11166; else if (South == South::Low) if (Up) if (West == West::None) return 11170; else if (West == West::Low) return 11171; else return 11172; else if (West == West::None) return 11176; else if (West == West::Low) return 11177; else return 11178; else if (Up) if (West == West::None) return 11182; else if (West == West::Low) return 11183; else return 11184; else if (West == West::None) return 11188; else if (West == West::Low) return 11189; else return 11190; } BlockState BrickWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace Bricks { constexpr BlockState Bricks() { return 1429; } } namespace BrownBanner { constexpr BlockState BrownBanner(const unsigned char Rotation) { if (Rotation == 0) return 8089; else if (Rotation == 1) return 8090; else if (Rotation == 2) return 8091; else if (Rotation == 3) return 8092; else if (Rotation == 4) return 8093; else if (Rotation == 5) return 8094; else if (Rotation == 6) return 8095; else if (Rotation == 7) return 8096; else if (Rotation == 8) return 8097; else if (Rotation == 9) return 8098; else if (Rotation == 10) return 8099; else if (Rotation == 11) return 8100; else if (Rotation == 12) return 8101; else if (Rotation == 13) return 8102; else if (Rotation == 14) return 8103; else return 8104; } BlockState BrownBanner(); unsigned char Rotation(BlockState Block); } namespace BrownBed { enum class Part { Head, Foot }; constexpr BlockState BrownBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1241; else return 1242; else if (Part == Part::Head) return 1243; else return 1244; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1245; else return 1246; else if (Part == Part::Head) return 1247; else return 1248; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1249; else return 1250; else if (Part == Part::Head) return 1251; else return 1252; else if (Occupied) if (Part == Part::Head) return 1253; else return 1254; else if (Part == Part::Head) return 1255; else return 1256; } BlockState BrownBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace BrownCarpet { constexpr BlockState BrownCarpet() { return 7878; } } namespace BrownConcrete { constexpr BlockState BrownConcrete() { return 9450; } } namespace BrownConcretePowder { constexpr BlockState BrownConcretePowder() { return 9466; } } namespace BrownGlazedTerracotta { constexpr BlockState BrownGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9422; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9423; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9424; else return 9425; } BlockState BrownGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace BrownMushroom { constexpr BlockState BrownMushroom() { return 1425; } } namespace BrownMushroomBlock { constexpr BlockState BrownMushroomBlock(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West) { if (Down) if (East) if (North) if (South) if (Up) if (West) return 4505; else return 4506; else if (West) return 4507; else return 4508; else if (Up) if (West) return 4509; else return 4510; else if (West) return 4511; else return 4512; else if (South) if (Up) if (West) return 4513; else return 4514; else if (West) return 4515; else return 4516; else if (Up) if (West) return 4517; else return 4518; else if (West) return 4519; else return 4520; else if (North) if (South) if (Up) if (West) return 4521; else return 4522; else if (West) return 4523; else return 4524; else if (Up) if (West) return 4525; else return 4526; else if (West) return 4527; else return 4528; else if (South) if (Up) if (West) return 4529; else return 4530; else if (West) return 4531; else return 4532; else if (Up) if (West) return 4533; else return 4534; else if (West) return 4535; else return 4536; else if (East) if (North) if (South) if (Up) if (West) return 4537; else return 4538; else if (West) return 4539; else return 4540; else if (Up) if (West) return 4541; else return 4542; else if (West) return 4543; else return 4544; else if (South) if (Up) if (West) return 4545; else return 4546; else if (West) return 4547; else return 4548; else if (Up) if (West) return 4549; else return 4550; else if (West) return 4551; else return 4552; else if (North) if (South) if (Up) if (West) return 4553; else return 4554; else if (West) return 4555; else return 4556; else if (Up) if (West) return 4557; else return 4558; else if (West) return 4559; else return 4560; else if (South) if (Up) if (West) return 4561; else return 4562; else if (West) return 4563; else return 4564; else if (Up) if (West) return 4565; else return 4566; else if (West) return 4567; else return 4568; } BlockState BrownMushroomBlock(); bool Down(BlockState Block); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool Up(BlockState Block); bool West(BlockState Block); } namespace BrownShulkerBox { constexpr BlockState BrownShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9350; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9351; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9352; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9353; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9354; else return 9355; } BlockState BrownShulkerBox(); eBlockFace Facing(BlockState Block); } namespace BrownStainedGlass { constexpr BlockState BrownStainedGlass() { return 4107; } } namespace BrownStainedGlassPane { constexpr BlockState BrownStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7249; else return 7250; else if (West) return 7253; else return 7254; else if (South) if (West) return 7257; else return 7258; else if (West) return 7261; else return 7262; else if (North) if (South) if (West) return 7265; else return 7266; else if (West) return 7269; else return 7270; else if (South) if (West) return 7273; else return 7274; else if (West) return 7277; else return 7278; } BlockState BrownStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace BrownTerracotta { constexpr BlockState BrownTerracotta() { return 6859; } } namespace BrownWallBanner { constexpr BlockState BrownWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8201; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8202; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8203; else return 8204; } BlockState BrownWallBanner(); eBlockFace Facing(BlockState Block); } namespace BrownWool { constexpr BlockState BrownWool() { return 1396; } } namespace BubbleColumn { constexpr BlockState BubbleColumn(const bool Drag) { if (Drag) return 9667; else return 9668; } BlockState BubbleColumn(); bool Drag(BlockState Block); } namespace BubbleCoral { constexpr BlockState BubbleCoral() { return 9535; } } namespace BubbleCoralBlock { constexpr BlockState BubbleCoralBlock() { return 9517; } } namespace BubbleCoralFan { constexpr BlockState BubbleCoralFan() { return 9555; } } namespace BubbleCoralWallFan { constexpr BlockState BubbleCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9617; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9619; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9621; else return 9623; } BlockState BubbleCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace Cactus { constexpr BlockState Cactus(const unsigned char Age) { if (Age == 0) return 3931; else if (Age == 1) return 3932; else if (Age == 2) return 3933; else if (Age == 3) return 3934; else if (Age == 4) return 3935; else if (Age == 5) return 3936; else if (Age == 6) return 3937; else if (Age == 7) return 3938; else if (Age == 8) return 3939; else if (Age == 9) return 3940; else if (Age == 10) return 3941; else if (Age == 11) return 3942; else if (Age == 12) return 3943; else if (Age == 13) return 3944; else if (Age == 14) return 3945; else return 3946; } BlockState Cactus(); unsigned char Age(BlockState Block); } namespace Cake { constexpr BlockState Cake(const unsigned char Bites) { if (Bites == 0) return 4024; else if (Bites == 1) return 4025; else if (Bites == 2) return 4026; else if (Bites == 3) return 4027; else if (Bites == 4) return 4028; else if (Bites == 5) return 4029; else return 4030; } BlockState Cake(); unsigned char Bites(BlockState Block); } namespace Campfire { constexpr BlockState Campfire(const eBlockFace Facing, const bool Lit, const bool SignalFire) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Lit) if (SignalFire) return 14891; else return 14893; else if (SignalFire) return 14895; else return 14897; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Lit) if (SignalFire) return 14899; else return 14901; else if (SignalFire) return 14903; else return 14905; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Lit) if (SignalFire) return 14907; else return 14909; else if (SignalFire) return 14911; else return 14913; else if (Lit) if (SignalFire) return 14915; else return 14917; else if (SignalFire) return 14919; else return 14921; } BlockState Campfire(); eBlockFace Facing(BlockState Block); bool Lit(BlockState Block); bool SignalFire(BlockState Block); } namespace Carrots { constexpr BlockState Carrots(const unsigned char Age) { if (Age == 0) return 6330; else if (Age == 1) return 6331; else if (Age == 2) return 6332; else if (Age == 3) return 6333; else if (Age == 4) return 6334; else if (Age == 5) return 6335; else if (Age == 6) return 6336; else return 6337; } BlockState Carrots(); unsigned char Age(BlockState Block); } namespace CartographyTable { constexpr BlockState CartographyTable() { return 14819; } } namespace CarvedPumpkin { constexpr BlockState CarvedPumpkin(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4016; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4017; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4018; else return 4019; } BlockState CarvedPumpkin(); eBlockFace Facing(BlockState Block); } namespace Cauldron { constexpr BlockState Cauldron(const unsigned char Level) { if (Level == 0) return 5141; else if (Level == 1) return 5142; else if (Level == 2) return 5143; else return 5144; } BlockState Cauldron(); unsigned char Level(BlockState Block); } namespace CaveAir { constexpr BlockState CaveAir() { return 9666; } } namespace Chain { constexpr BlockState Chain() { return 4730; } } namespace ChainCommandBlock { constexpr BlockState ChainCommandBlock(const bool Conditional, const eBlockFace Facing) { if (Conditional) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9237; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9238; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9239; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9240; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9241; else return 9242; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9243; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9244; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9245; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9246; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9247; else return 9248; } BlockState ChainCommandBlock(); bool Conditional(BlockState Block); eBlockFace Facing(BlockState Block); } namespace Chest { enum class Type { Single, Left, Right }; constexpr BlockState Chest(const eBlockFace Facing, const enum Type Type) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Type == Type::Single) return 2035; else if (Type == Type::Left) return 2037; else return 2039; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Type == Type::Single) return 2041; else if (Type == Type::Left) return 2043; else return 2045; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Type == Type::Single) return 2047; else if (Type == Type::Left) return 2049; else return 2051; else if (Type == Type::Single) return 2053; else if (Type == Type::Left) return 2055; else return 2057; } BlockState Chest(); eBlockFace Facing(BlockState Block); enum Type Type(BlockState Block); } namespace ChippedAnvil { constexpr BlockState ChippedAnvil(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6614; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6615; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6616; else return 6617; } BlockState ChippedAnvil(); eBlockFace Facing(BlockState Block); } namespace ChiseledNetherBricks { constexpr BlockState ChiseledNetherBricks() { return 17101; } } namespace ChiseledPolishedBlackstone { constexpr BlockState ChiseledPolishedBlackstone() { return 16253; } } namespace ChiseledQuartzBlock { constexpr BlockState ChiseledQuartzBlock() { return 6739; } } namespace ChiseledRedSandstone { constexpr BlockState ChiseledRedSandstone() { return 8218; } } namespace ChiseledSandstone { constexpr BlockState ChiseledSandstone() { return 247; } } namespace ChiseledStoneBricks { constexpr BlockState ChiseledStoneBricks() { return 4498; } } namespace ChorusFlower { constexpr BlockState ChorusFlower(const unsigned char Age) { if (Age == 0) return 9128; else if (Age == 1) return 9129; else if (Age == 2) return 9130; else if (Age == 3) return 9131; else if (Age == 4) return 9132; else return 9133; } BlockState ChorusFlower(); unsigned char Age(BlockState Block); } namespace ChorusPlant { constexpr BlockState ChorusPlant(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West) { if (Down) if (East) if (North) if (South) if (Up) if (West) return 9064; else return 9065; else if (West) return 9066; else return 9067; else if (Up) if (West) return 9068; else return 9069; else if (West) return 9070; else return 9071; else if (South) if (Up) if (West) return 9072; else return 9073; else if (West) return 9074; else return 9075; else if (Up) if (West) return 9076; else return 9077; else if (West) return 9078; else return 9079; else if (North) if (South) if (Up) if (West) return 9080; else return 9081; else if (West) return 9082; else return 9083; else if (Up) if (West) return 9084; else return 9085; else if (West) return 9086; else return 9087; else if (South) if (Up) if (West) return 9088; else return 9089; else if (West) return 9090; else return 9091; else if (Up) if (West) return 9092; else return 9093; else if (West) return 9094; else return 9095; else if (East) if (North) if (South) if (Up) if (West) return 9096; else return 9097; else if (West) return 9098; else return 9099; else if (Up) if (West) return 9100; else return 9101; else if (West) return 9102; else return 9103; else if (South) if (Up) if (West) return 9104; else return 9105; else if (West) return 9106; else return 9107; else if (Up) if (West) return 9108; else return 9109; else if (West) return 9110; else return 9111; else if (North) if (South) if (Up) if (West) return 9112; else return 9113; else if (West) return 9114; else return 9115; else if (Up) if (West) return 9116; else return 9117; else if (West) return 9118; else return 9119; else if (South) if (Up) if (West) return 9120; else return 9121; else if (West) return 9122; else return 9123; else if (Up) if (West) return 9124; else return 9125; else if (West) return 9126; else return 9127; } BlockState ChorusPlant(); bool Down(BlockState Block); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool Up(BlockState Block); bool West(BlockState Block); } namespace Clay { constexpr BlockState Clay() { return 3947; } } namespace CoalBlock { constexpr BlockState CoalBlock() { return 7883; } } namespace CoalOre { constexpr BlockState CoalOre() { return 71; } } namespace CoarseDirt { constexpr BlockState CoarseDirt() { return 11; } } namespace Cobblestone { constexpr BlockState Cobblestone() { return 14; } } namespace CobblestoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState CobblestoneSlab(const enum Type Type) { if (Type == Type::Top) return 8367; else if (Type == Type::Bottom) return 8369; else return 8371; } BlockState CobblestoneSlab(); enum Type Type(BlockState Block); } namespace CobblestoneStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState CobblestoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 3656; else if (Shape == Shape::InnerLeft) return 3658; else if (Shape == Shape::InnerRight) return 3660; else if (Shape == Shape::OuterLeft) return 3662; else return 3664; else if (Shape == Shape::Straight) return 3666; else if (Shape == Shape::InnerLeft) return 3668; else if (Shape == Shape::InnerRight) return 3670; else if (Shape == Shape::OuterLeft) return 3672; else return 3674; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 3676; else if (Shape == Shape::InnerLeft) return 3678; else if (Shape == Shape::InnerRight) return 3680; else if (Shape == Shape::OuterLeft) return 3682; else return 3684; else if (Shape == Shape::Straight) return 3686; else if (Shape == Shape::InnerLeft) return 3688; else if (Shape == Shape::InnerRight) return 3690; else if (Shape == Shape::OuterLeft) return 3692; else return 3694; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 3696; else if (Shape == Shape::InnerLeft) return 3698; else if (Shape == Shape::InnerRight) return 3700; else if (Shape == Shape::OuterLeft) return 3702; else return 3704; else if (Shape == Shape::Straight) return 3706; else if (Shape == Shape::InnerLeft) return 3708; else if (Shape == Shape::InnerRight) return 3710; else if (Shape == Shape::OuterLeft) return 3712; else return 3714; else if (Half == Half::Top) if (Shape == Shape::Straight) return 3716; else if (Shape == Shape::InnerLeft) return 3718; else if (Shape == Shape::InnerRight) return 3720; else if (Shape == Shape::OuterLeft) return 3722; else return 3724; else if (Shape == Shape::Straight) return 3726; else if (Shape == Shape::InnerLeft) return 3728; else if (Shape == Shape::InnerRight) return 3730; else if (Shape == Shape::OuterLeft) return 3732; else return 3734; } BlockState CobblestoneStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace CobblestoneWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState CobblestoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 5660; else if (West == West::Low) return 5661; else return 5662; else if (West == West::None) return 5666; else if (West == West::Low) return 5667; else return 5668; else if (South == South::Low) if (Up) if (West == West::None) return 5672; else if (West == West::Low) return 5673; else return 5674; else if (West == West::None) return 5678; else if (West == West::Low) return 5679; else return 5680; else if (Up) if (West == West::None) return 5684; else if (West == West::Low) return 5685; else return 5686; else if (West == West::None) return 5690; else if (West == West::Low) return 5691; else return 5692; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 5696; else if (West == West::Low) return 5697; else return 5698; else if (West == West::None) return 5702; else if (West == West::Low) return 5703; else return 5704; else if (South == South::Low) if (Up) if (West == West::None) return 5708; else if (West == West::Low) return 5709; else return 5710; else if (West == West::None) return 5714; else if (West == West::Low) return 5715; else return 5716; else if (Up) if (West == West::None) return 5720; else if (West == West::Low) return 5721; else return 5722; else if (West == West::None) return 5726; else if (West == West::Low) return 5727; else return 5728; else if (South == South::None) if (Up) if (West == West::None) return 5732; else if (West == West::Low) return 5733; else return 5734; else if (West == West::None) return 5738; else if (West == West::Low) return 5739; else return 5740; else if (South == South::Low) if (Up) if (West == West::None) return 5744; else if (West == West::Low) return 5745; else return 5746; else if (West == West::None) return 5750; else if (West == West::Low) return 5751; else return 5752; else if (Up) if (West == West::None) return 5756; else if (West == West::Low) return 5757; else return 5758; else if (West == West::None) return 5762; else if (West == West::Low) return 5763; else return 5764; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 5768; else if (West == West::Low) return 5769; else return 5770; else if (West == West::None) return 5774; else if (West == West::Low) return 5775; else return 5776; else if (South == South::Low) if (Up) if (West == West::None) return 5780; else if (West == West::Low) return 5781; else return 5782; else if (West == West::None) return 5786; else if (West == West::Low) return 5787; else return 5788; else if (Up) if (West == West::None) return 5792; else if (West == West::Low) return 5793; else return 5794; else if (West == West::None) return 5798; else if (West == West::Low) return 5799; else return 5800; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 5804; else if (West == West::Low) return 5805; else return 5806; else if (West == West::None) return 5810; else if (West == West::Low) return 5811; else return 5812; else if (South == South::Low) if (Up) if (West == West::None) return 5816; else if (West == West::Low) return 5817; else return 5818; else if (West == West::None) return 5822; else if (West == West::Low) return 5823; else return 5824; else if (Up) if (West == West::None) return 5828; else if (West == West::Low) return 5829; else return 5830; else if (West == West::None) return 5834; else if (West == West::Low) return 5835; else return 5836; else if (South == South::None) if (Up) if (West == West::None) return 5840; else if (West == West::Low) return 5841; else return 5842; else if (West == West::None) return 5846; else if (West == West::Low) return 5847; else return 5848; else if (South == South::Low) if (Up) if (West == West::None) return 5852; else if (West == West::Low) return 5853; else return 5854; else if (West == West::None) return 5858; else if (West == West::Low) return 5859; else return 5860; else if (Up) if (West == West::None) return 5864; else if (West == West::Low) return 5865; else return 5866; else if (West == West::None) return 5870; else if (West == West::Low) return 5871; else return 5872; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 5876; else if (West == West::Low) return 5877; else return 5878; else if (West == West::None) return 5882; else if (West == West::Low) return 5883; else return 5884; else if (South == South::Low) if (Up) if (West == West::None) return 5888; else if (West == West::Low) return 5889; else return 5890; else if (West == West::None) return 5894; else if (West == West::Low) return 5895; else return 5896; else if (Up) if (West == West::None) return 5900; else if (West == West::Low) return 5901; else return 5902; else if (West == West::None) return 5906; else if (West == West::Low) return 5907; else return 5908; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 5912; else if (West == West::Low) return 5913; else return 5914; else if (West == West::None) return 5918; else if (West == West::Low) return 5919; else return 5920; else if (South == South::Low) if (Up) if (West == West::None) return 5924; else if (West == West::Low) return 5925; else return 5926; else if (West == West::None) return 5930; else if (West == West::Low) return 5931; else return 5932; else if (Up) if (West == West::None) return 5936; else if (West == West::Low) return 5937; else return 5938; else if (West == West::None) return 5942; else if (West == West::Low) return 5943; else return 5944; else if (South == South::None) if (Up) if (West == West::None) return 5948; else if (West == West::Low) return 5949; else return 5950; else if (West == West::None) return 5954; else if (West == West::Low) return 5955; else return 5956; else if (South == South::Low) if (Up) if (West == West::None) return 5960; else if (West == West::Low) return 5961; else return 5962; else if (West == West::None) return 5966; else if (West == West::Low) return 5967; else return 5968; else if (Up) if (West == West::None) return 5972; else if (West == West::Low) return 5973; else return 5974; else if (West == West::None) return 5978; else if (West == West::Low) return 5979; else return 5980; } BlockState CobblestoneWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace Cobweb { constexpr BlockState Cobweb() { return 1341; } } namespace Cocoa { constexpr BlockState Cocoa(const unsigned char Age, const eBlockFace Facing) { if (Age == 0) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5158; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5159; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5160; else return 5161; else if (Age == 1) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5162; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5163; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5164; else return 5165; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5166; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5167; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5168; else return 5169; } BlockState Cocoa(); unsigned char Age(BlockState Block); eBlockFace Facing(BlockState Block); } namespace CommandBlock { constexpr BlockState CommandBlock(const bool Conditional, const eBlockFace Facing) { if (Conditional) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5644; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 5645; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5646; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5647; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 5648; else return 5649; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5650; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 5651; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5652; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5653; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 5654; else return 5655; } BlockState CommandBlock(); bool Conditional(BlockState Block); eBlockFace Facing(BlockState Block); } namespace Comparator { enum class Mode { Compare, Subtract }; constexpr BlockState Comparator(const eBlockFace Facing, const enum Mode Mode, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Mode == Mode::Compare) if (Powered) return 6678; else return 6679; else if (Powered) return 6680; else return 6681; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Mode == Mode::Compare) if (Powered) return 6682; else return 6683; else if (Powered) return 6684; else return 6685; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Mode == Mode::Compare) if (Powered) return 6686; else return 6687; else if (Powered) return 6688; else return 6689; else if (Mode == Mode::Compare) if (Powered) return 6690; else return 6691; else if (Powered) return 6692; else return 6693; } BlockState Comparator(); eBlockFace Facing(BlockState Block); enum Mode Mode(BlockState Block); bool Powered(BlockState Block); } namespace Composter { constexpr BlockState Composter(const unsigned char Level) { if (Level == 0) return 15751; else if (Level == 1) return 15752; else if (Level == 2) return 15753; else if (Level == 3) return 15754; else if (Level == 4) return 15755; else if (Level == 5) return 15756; else if (Level == 6) return 15757; else if (Level == 7) return 15758; else return 15759; } BlockState Composter(); unsigned char Level(BlockState Block); } namespace Conduit { constexpr BlockState Conduit() { return 9650; } } namespace Cornflower { constexpr BlockState Cornflower() { return 1422; } } namespace CrackedNetherBricks { constexpr BlockState CrackedNetherBricks() { return 17102; } } namespace CrackedPolishedBlackstoneBricks { constexpr BlockState CrackedPolishedBlackstoneBricks() { return 16252; } } namespace CrackedStoneBricks { constexpr BlockState CrackedStoneBricks() { return 4497; } } namespace CraftingTable { constexpr BlockState CraftingTable() { return 3356; } } namespace CreeperHead { constexpr BlockState CreeperHead(const unsigned char Rotation) { if (Rotation == 0) return 6570; else if (Rotation == 1) return 6571; else if (Rotation == 2) return 6572; else if (Rotation == 3) return 6573; else if (Rotation == 4) return 6574; else if (Rotation == 5) return 6575; else if (Rotation == 6) return 6576; else if (Rotation == 7) return 6577; else if (Rotation == 8) return 6578; else if (Rotation == 9) return 6579; else if (Rotation == 10) return 6580; else if (Rotation == 11) return 6581; else if (Rotation == 12) return 6582; else if (Rotation == 13) return 6583; else if (Rotation == 14) return 6584; else return 6585; } BlockState CreeperHead(); unsigned char Rotation(BlockState Block); } namespace CreeperWallHead { constexpr BlockState CreeperWallHead(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6586; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6587; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6588; else return 6589; } BlockState CreeperWallHead(); eBlockFace Facing(BlockState Block); } namespace CrimsonButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState CrimsonButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 15479; else return 15480; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 15481; else return 15482; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 15483; else return 15484; else if (Powered) return 15485; else return 15486; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 15487; else return 15488; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 15489; else return 15490; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 15491; else return 15492; else if (Powered) return 15493; else return 15494; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 15495; else return 15496; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 15497; else return 15498; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 15499; else return 15500; else if (Powered) return 15501; else return 15502; } BlockState CrimsonButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace CrimsonDoor { enum class Half { Upper, Lower }; enum class Hinge { Left, Right }; constexpr BlockState CrimsonDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 15527; else return 15528; else if (Powered) return 15529; else return 15530; else if (Open) if (Powered) return 15531; else return 15532; else if (Powered) return 15533; else return 15534; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 15535; else return 15536; else if (Powered) return 15537; else return 15538; else if (Open) if (Powered) return 15539; else return 15540; else if (Powered) return 15541; else return 15542; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 15543; else return 15544; else if (Powered) return 15545; else return 15546; else if (Open) if (Powered) return 15547; else return 15548; else if (Powered) return 15549; else return 15550; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 15551; else return 15552; else if (Powered) return 15553; else return 15554; else if (Open) if (Powered) return 15555; else return 15556; else if (Powered) return 15557; else return 15558; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 15559; else return 15560; else if (Powered) return 15561; else return 15562; else if (Open) if (Powered) return 15563; else return 15564; else if (Powered) return 15565; else return 15566; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 15567; else return 15568; else if (Powered) return 15569; else return 15570; else if (Open) if (Powered) return 15571; else return 15572; else if (Powered) return 15573; else return 15574; else if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 15575; else return 15576; else if (Powered) return 15577; else return 15578; else if (Open) if (Powered) return 15579; else return 15580; else if (Powered) return 15581; else return 15582; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 15583; else return 15584; else if (Powered) return 15585; else return 15586; else if (Open) if (Powered) return 15587; else return 15588; else if (Powered) return 15589; else return 15590; } BlockState CrimsonDoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Hinge Hinge(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace CrimsonFence { constexpr BlockState CrimsonFence(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 15065; else return 15066; else if (West) return 15069; else return 15070; else if (South) if (West) return 15073; else return 15074; else if (West) return 15077; else return 15078; else if (North) if (South) if (West) return 15081; else return 15082; else if (West) return 15085; else return 15086; else if (South) if (West) return 15089; else return 15090; else if (West) return 15093; else return 15094; } BlockState CrimsonFence(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace CrimsonFenceGate { constexpr BlockState CrimsonFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (InWall) if (Open) if (Powered) return 15255; else return 15256; else if (Powered) return 15257; else return 15258; else if (Open) if (Powered) return 15259; else return 15260; else if (Powered) return 15261; else return 15262; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (InWall) if (Open) if (Powered) return 15263; else return 15264; else if (Powered) return 15265; else return 15266; else if (Open) if (Powered) return 15267; else return 15268; else if (Powered) return 15269; else return 15270; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (InWall) if (Open) if (Powered) return 15271; else return 15272; else if (Powered) return 15273; else return 15274; else if (Open) if (Powered) return 15275; else return 15276; else if (Powered) return 15277; else return 15278; else if (InWall) if (Open) if (Powered) return 15279; else return 15280; else if (Powered) return 15281; else return 15282; else if (Open) if (Powered) return 15283; else return 15284; else if (Powered) return 15285; else return 15286; } BlockState CrimsonFenceGate(); eBlockFace Facing(BlockState Block); bool InWall(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace CrimsonFungus { constexpr BlockState CrimsonFungus() { return 14988; } } namespace CrimsonHyphae { enum class Axis { X, Y, Z }; constexpr BlockState CrimsonHyphae(const enum Axis Axis) { if (Axis == Axis::X) return 14981; else if (Axis == Axis::Y) return 14982; else return 14983; } BlockState CrimsonHyphae(); enum Axis Axis(BlockState Block); } namespace CrimsonNylium { constexpr BlockState CrimsonNylium() { return 14987; } } namespace CrimsonPlanks { constexpr BlockState CrimsonPlanks() { return 15045; } } namespace CrimsonPressurePlate { constexpr BlockState CrimsonPressurePlate(const bool Powered) { if (Powered) return 15059; else return 15060; } BlockState CrimsonPressurePlate(); bool Powered(BlockState Block); } namespace CrimsonRoots { constexpr BlockState CrimsonRoots() { return 15044; } } namespace CrimsonSign { constexpr BlockState CrimsonSign(const unsigned char Rotation) { if (Rotation == 0) return 15656; else if (Rotation == 1) return 15658; else if (Rotation == 2) return 15660; else if (Rotation == 3) return 15662; else if (Rotation == 4) return 15664; else if (Rotation == 5) return 15666; else if (Rotation == 6) return 15668; else if (Rotation == 7) return 15670; else if (Rotation == 8) return 15672; else if (Rotation == 9) return 15674; else if (Rotation == 10) return 15676; else if (Rotation == 11) return 15678; else if (Rotation == 12) return 15680; else if (Rotation == 13) return 15682; else if (Rotation == 14) return 15684; else return 15686; } BlockState CrimsonSign(); unsigned char Rotation(BlockState Block); } namespace CrimsonSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState CrimsonSlab(const enum Type Type) { if (Type == Type::Top) return 15048; else if (Type == Type::Bottom) return 15050; else return 15052; } BlockState CrimsonSlab(); enum Type Type(BlockState Block); } namespace CrimsonStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState CrimsonStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 15320; else if (Shape == Shape::InnerLeft) return 15322; else if (Shape == Shape::InnerRight) return 15324; else if (Shape == Shape::OuterLeft) return 15326; else return 15328; else if (Shape == Shape::Straight) return 15330; else if (Shape == Shape::InnerLeft) return 15332; else if (Shape == Shape::InnerRight) return 15334; else if (Shape == Shape::OuterLeft) return 15336; else return 15338; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 15340; else if (Shape == Shape::InnerLeft) return 15342; else if (Shape == Shape::InnerRight) return 15344; else if (Shape == Shape::OuterLeft) return 15346; else return 15348; else if (Shape == Shape::Straight) return 15350; else if (Shape == Shape::InnerLeft) return 15352; else if (Shape == Shape::InnerRight) return 15354; else if (Shape == Shape::OuterLeft) return 15356; else return 15358; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 15360; else if (Shape == Shape::InnerLeft) return 15362; else if (Shape == Shape::InnerRight) return 15364; else if (Shape == Shape::OuterLeft) return 15366; else return 15368; else if (Shape == Shape::Straight) return 15370; else if (Shape == Shape::InnerLeft) return 15372; else if (Shape == Shape::InnerRight) return 15374; else if (Shape == Shape::OuterLeft) return 15376; else return 15378; else if (Half == Half::Top) if (Shape == Shape::Straight) return 15380; else if (Shape == Shape::InnerLeft) return 15382; else if (Shape == Shape::InnerRight) return 15384; else if (Shape == Shape::OuterLeft) return 15386; else return 15388; else if (Shape == Shape::Straight) return 15390; else if (Shape == Shape::InnerLeft) return 15392; else if (Shape == Shape::InnerRight) return 15394; else if (Shape == Shape::OuterLeft) return 15396; else return 15398; } BlockState CrimsonStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace CrimsonStem { enum class Axis { X, Y, Z }; constexpr BlockState CrimsonStem(const enum Axis Axis) { if (Axis == Axis::X) return 14975; else if (Axis == Axis::Y) return 14976; else return 14977; } BlockState CrimsonStem(); enum Axis Axis(BlockState Block); } namespace CrimsonTrapdoor { enum class Half { Top, Bottom }; constexpr BlockState CrimsonTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Open) if (Powered) return 15128; else return 15130; else if (Powered) return 15132; else return 15134; else if (Open) if (Powered) return 15136; else return 15138; else if (Powered) return 15140; else return 15142; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Open) if (Powered) return 15144; else return 15146; else if (Powered) return 15148; else return 15150; else if (Open) if (Powered) return 15152; else return 15154; else if (Powered) return 15156; else return 15158; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Open) if (Powered) return 15160; else return 15162; else if (Powered) return 15164; else return 15166; else if (Open) if (Powered) return 15168; else return 15170; else if (Powered) return 15172; else return 15174; else if (Half == Half::Top) if (Open) if (Powered) return 15176; else return 15178; else if (Powered) return 15180; else return 15182; else if (Open) if (Powered) return 15184; else return 15186; else if (Powered) return 15188; else return 15190; } BlockState CrimsonTrapdoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace CrimsonWallSign { constexpr BlockState CrimsonWallSign(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 15720; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 15722; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 15724; else return 15726; } BlockState CrimsonWallSign(); eBlockFace Facing(BlockState Block); } namespace CryingObsidian { constexpr BlockState CryingObsidian() { return 15828; } } namespace CutRedSandstone { constexpr BlockState CutRedSandstone() { return 8219; } } namespace CutRedSandstoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState CutRedSandstoneSlab(const enum Type Type) { if (Type == Type::Top) return 8403; else if (Type == Type::Bottom) return 8405; else return 8407; } BlockState CutRedSandstoneSlab(); enum Type Type(BlockState Block); } namespace CutSandstone { constexpr BlockState CutSandstone() { return 248; } } namespace CutSandstoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState CutSandstoneSlab(const enum Type Type) { if (Type == Type::Top) return 8355; else if (Type == Type::Bottom) return 8357; else return 8359; } BlockState CutSandstoneSlab(); enum Type Type(BlockState Block); } namespace CyanBanner { constexpr BlockState CyanBanner(const unsigned char Rotation) { if (Rotation == 0) return 8041; else if (Rotation == 1) return 8042; else if (Rotation == 2) return 8043; else if (Rotation == 3) return 8044; else if (Rotation == 4) return 8045; else if (Rotation == 5) return 8046; else if (Rotation == 6) return 8047; else if (Rotation == 7) return 8048; else if (Rotation == 8) return 8049; else if (Rotation == 9) return 8050; else if (Rotation == 10) return 8051; else if (Rotation == 11) return 8052; else if (Rotation == 12) return 8053; else if (Rotation == 13) return 8054; else if (Rotation == 14) return 8055; else return 8056; } BlockState CyanBanner(); unsigned char Rotation(BlockState Block); } namespace CyanBed { enum class Part { Head, Foot }; constexpr BlockState CyanBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1193; else return 1194; else if (Part == Part::Head) return 1195; else return 1196; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1197; else return 1198; else if (Part == Part::Head) return 1199; else return 1200; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1201; else return 1202; else if (Part == Part::Head) return 1203; else return 1204; else if (Occupied) if (Part == Part::Head) return 1205; else return 1206; else if (Part == Part::Head) return 1207; else return 1208; } BlockState CyanBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace CyanCarpet { constexpr BlockState CyanCarpet() { return 7875; } } namespace CyanConcrete { constexpr BlockState CyanConcrete() { return 9447; } } namespace CyanConcretePowder { constexpr BlockState CyanConcretePowder() { return 9463; } } namespace CyanGlazedTerracotta { constexpr BlockState CyanGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9410; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9411; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9412; else return 9413; } BlockState CyanGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace CyanShulkerBox { constexpr BlockState CyanShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9332; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9333; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9334; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9335; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9336; else return 9337; } BlockState CyanShulkerBox(); eBlockFace Facing(BlockState Block); } namespace CyanStainedGlass { constexpr BlockState CyanStainedGlass() { return 4104; } } namespace CyanStainedGlassPane { constexpr BlockState CyanStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7153; else return 7154; else if (West) return 7157; else return 7158; else if (South) if (West) return 7161; else return 7162; else if (West) return 7165; else return 7166; else if (North) if (South) if (West) return 7169; else return 7170; else if (West) return 7173; else return 7174; else if (South) if (West) return 7177; else return 7178; else if (West) return 7181; else return 7182; } BlockState CyanStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace CyanTerracotta { constexpr BlockState CyanTerracotta() { return 6856; } } namespace CyanWallBanner { constexpr BlockState CyanWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8189; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8190; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8191; else return 8192; } BlockState CyanWallBanner(); eBlockFace Facing(BlockState Block); } namespace CyanWool { constexpr BlockState CyanWool() { return 1393; } } namespace DamagedAnvil { constexpr BlockState DamagedAnvil(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6618; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6619; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6620; else return 6621; } BlockState DamagedAnvil(); eBlockFace Facing(BlockState Block); } namespace Dandelion { constexpr BlockState Dandelion() { return 1412; } } namespace DarkOakButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState DarkOakButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6466; else return 6467; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6468; else return 6469; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6470; else return 6471; else if (Powered) return 6472; else return 6473; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6474; else return 6475; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6476; else return 6477; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6478; else return 6479; else if (Powered) return 6480; else return 6481; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6482; else return 6483; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6484; else return 6485; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6486; else return 6487; else if (Powered) return 6488; else return 6489; } BlockState DarkOakButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace DarkOakDoor { enum class Half { Upper, Lower }; enum class Hinge { Left, Right }; constexpr BlockState DarkOakDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8994; else return 8995; else if (Powered) return 8996; else return 8997; else if (Open) if (Powered) return 8998; else return 8999; else if (Powered) return 9000; else return 9001; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 9002; else return 9003; else if (Powered) return 9004; else return 9005; else if (Open) if (Powered) return 9006; else return 9007; else if (Powered) return 9008; else return 9009; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 9010; else return 9011; else if (Powered) return 9012; else return 9013; else if (Open) if (Powered) return 9014; else return 9015; else if (Powered) return 9016; else return 9017; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 9018; else return 9019; else if (Powered) return 9020; else return 9021; else if (Open) if (Powered) return 9022; else return 9023; else if (Powered) return 9024; else return 9025; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 9026; else return 9027; else if (Powered) return 9028; else return 9029; else if (Open) if (Powered) return 9030; else return 9031; else if (Powered) return 9032; else return 9033; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 9034; else return 9035; else if (Powered) return 9036; else return 9037; else if (Open) if (Powered) return 9038; else return 9039; else if (Powered) return 9040; else return 9041; else if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 9042; else return 9043; else if (Powered) return 9044; else return 9045; else if (Open) if (Powered) return 9046; else return 9047; else if (Powered) return 9048; else return 9049; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 9050; else return 9051; else if (Powered) return 9052; else return 9053; else if (Open) if (Powered) return 9054; else return 9055; else if (Powered) return 9056; else return 9057; } BlockState DarkOakDoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Hinge Hinge(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace DarkOakFence { constexpr BlockState DarkOakFence(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 8708; else return 8709; else if (West) return 8712; else return 8713; else if (South) if (West) return 8716; else return 8717; else if (West) return 8720; else return 8721; else if (North) if (South) if (West) return 8724; else return 8725; else if (West) return 8728; else return 8729; else if (South) if (West) return 8732; else return 8733; else if (West) return 8736; else return 8737; } BlockState DarkOakFence(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace DarkOakFenceGate { constexpr BlockState DarkOakFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (InWall) if (Open) if (Powered) return 8546; else return 8547; else if (Powered) return 8548; else return 8549; else if (Open) if (Powered) return 8550; else return 8551; else if (Powered) return 8552; else return 8553; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (InWall) if (Open) if (Powered) return 8554; else return 8555; else if (Powered) return 8556; else return 8557; else if (Open) if (Powered) return 8558; else return 8559; else if (Powered) return 8560; else return 8561; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (InWall) if (Open) if (Powered) return 8562; else return 8563; else if (Powered) return 8564; else return 8565; else if (Open) if (Powered) return 8566; else return 8567; else if (Powered) return 8568; else return 8569; else if (InWall) if (Open) if (Powered) return 8570; else return 8571; else if (Powered) return 8572; else return 8573; else if (Open) if (Powered) return 8574; else return 8575; else if (Powered) return 8576; else return 8577; } BlockState DarkOakFenceGate(); eBlockFace Facing(BlockState Block); bool InWall(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace DarkOakLeaves { constexpr BlockState DarkOakLeaves(const unsigned char Distance, const bool Persistent) { if (Distance == 1) if (Persistent) return 215; else return 216; else if (Distance == 2) if (Persistent) return 217; else return 218; else if (Distance == 3) if (Persistent) return 219; else return 220; else if (Distance == 4) if (Persistent) return 221; else return 222; else if (Distance == 5) if (Persistent) return 223; else return 224; else if (Distance == 6) if (Persistent) return 225; else return 226; else if (Persistent) return 227; else return 228; } BlockState DarkOakLeaves(); unsigned char Distance(BlockState Block); bool Persistent(BlockState Block); } namespace DarkOakLog { enum class Axis { X, Y, Z }; constexpr BlockState DarkOakLog(const enum Axis Axis) { if (Axis == Axis::X) return 88; else if (Axis == Axis::Y) return 89; else return 90; } BlockState DarkOakLog(); enum Axis Axis(BlockState Block); } namespace DarkOakPlanks { constexpr BlockState DarkOakPlanks() { return 20; } } namespace DarkOakPressurePlate { constexpr BlockState DarkOakPressurePlate(const bool Powered) { if (Powered) return 3883; else return 3884; } BlockState DarkOakPressurePlate(); bool Powered(BlockState Block); } namespace DarkOakSapling { constexpr BlockState DarkOakSapling(const unsigned char Stage) { if (Stage == 0) return 31; else return 32; } BlockState DarkOakSapling(); unsigned char Stage(BlockState Block); } namespace DarkOakSign { constexpr BlockState DarkOakSign(const unsigned char Rotation) { if (Rotation == 0) return 3542; else if (Rotation == 1) return 3544; else if (Rotation == 2) return 3546; else if (Rotation == 3) return 3548; else if (Rotation == 4) return 3550; else if (Rotation == 5) return 3552; else if (Rotation == 6) return 3554; else if (Rotation == 7) return 3556; else if (Rotation == 8) return 3558; else if (Rotation == 9) return 3560; else if (Rotation == 10) return 3562; else if (Rotation == 11) return 3564; else if (Rotation == 12) return 3566; else if (Rotation == 13) return 3568; else if (Rotation == 14) return 3570; else return 3572; } BlockState DarkOakSign(); unsigned char Rotation(BlockState Block); } namespace DarkOakSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState DarkOakSlab(const enum Type Type) { if (Type == Type::Top) return 8331; else if (Type == Type::Bottom) return 8333; else return 8335; } BlockState DarkOakSlab(); enum Type Type(BlockState Block); } namespace DarkOakStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState DarkOakStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7456; else if (Shape == Shape::InnerLeft) return 7458; else if (Shape == Shape::InnerRight) return 7460; else if (Shape == Shape::OuterLeft) return 7462; else return 7464; else if (Shape == Shape::Straight) return 7466; else if (Shape == Shape::InnerLeft) return 7468; else if (Shape == Shape::InnerRight) return 7470; else if (Shape == Shape::OuterLeft) return 7472; else return 7474; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 7476; else if (Shape == Shape::InnerLeft) return 7478; else if (Shape == Shape::InnerRight) return 7480; else if (Shape == Shape::OuterLeft) return 7482; else return 7484; else if (Shape == Shape::Straight) return 7486; else if (Shape == Shape::InnerLeft) return 7488; else if (Shape == Shape::InnerRight) return 7490; else if (Shape == Shape::OuterLeft) return 7492; else return 7494; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7496; else if (Shape == Shape::InnerLeft) return 7498; else if (Shape == Shape::InnerRight) return 7500; else if (Shape == Shape::OuterLeft) return 7502; else return 7504; else if (Shape == Shape::Straight) return 7506; else if (Shape == Shape::InnerLeft) return 7508; else if (Shape == Shape::InnerRight) return 7510; else if (Shape == Shape::OuterLeft) return 7512; else return 7514; else if (Half == Half::Top) if (Shape == Shape::Straight) return 7516; else if (Shape == Shape::InnerLeft) return 7518; else if (Shape == Shape::InnerRight) return 7520; else if (Shape == Shape::OuterLeft) return 7522; else return 7524; else if (Shape == Shape::Straight) return 7526; else if (Shape == Shape::InnerLeft) return 7528; else if (Shape == Shape::InnerRight) return 7530; else if (Shape == Shape::OuterLeft) return 7532; else return 7534; } BlockState DarkOakStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace DarkOakTrapdoor { enum class Half { Top, Bottom }; constexpr BlockState DarkOakTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Open) if (Powered) return 4432; else return 4434; else if (Powered) return 4436; else return 4438; else if (Open) if (Powered) return 4440; else return 4442; else if (Powered) return 4444; else return 4446; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Open) if (Powered) return 4448; else return 4450; else if (Powered) return 4452; else return 4454; else if (Open) if (Powered) return 4456; else return 4458; else if (Powered) return 4460; else return 4462; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Open) if (Powered) return 4464; else return 4466; else if (Powered) return 4468; else return 4470; else if (Open) if (Powered) return 4472; else return 4474; else if (Powered) return 4476; else return 4478; else if (Half == Half::Top) if (Open) if (Powered) return 4480; else return 4482; else if (Powered) return 4484; else return 4486; else if (Open) if (Powered) return 4488; else return 4490; else if (Powered) return 4492; else return 4494; } BlockState DarkOakTrapdoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace DarkOakWallSign { constexpr BlockState DarkOakWallSign(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3776; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3778; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3780; else return 3782; } BlockState DarkOakWallSign(); eBlockFace Facing(BlockState Block); } namespace DarkOakWood { enum class Axis { X, Y, Z }; constexpr BlockState DarkOakWood(const enum Axis Axis) { if (Axis == Axis::X) return 124; else if (Axis == Axis::Y) return 125; else return 126; } BlockState DarkOakWood(); enum Axis Axis(BlockState Block); } namespace DarkPrismarine { constexpr BlockState DarkPrismarine() { return 7603; } } namespace DarkPrismarineSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState DarkPrismarineSlab(const enum Type Type) { if (Type == Type::Top) return 7857; else if (Type == Type::Bottom) return 7859; else return 7861; } BlockState DarkPrismarineSlab(); enum Type Type(BlockState Block); } namespace DarkPrismarineStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState DarkPrismarineStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7765; else if (Shape == Shape::InnerLeft) return 7767; else if (Shape == Shape::InnerRight) return 7769; else if (Shape == Shape::OuterLeft) return 7771; else return 7773; else if (Shape == Shape::Straight) return 7775; else if (Shape == Shape::InnerLeft) return 7777; else if (Shape == Shape::InnerRight) return 7779; else if (Shape == Shape::OuterLeft) return 7781; else return 7783; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 7785; else if (Shape == Shape::InnerLeft) return 7787; else if (Shape == Shape::InnerRight) return 7789; else if (Shape == Shape::OuterLeft) return 7791; else return 7793; else if (Shape == Shape::Straight) return 7795; else if (Shape == Shape::InnerLeft) return 7797; else if (Shape == Shape::InnerRight) return 7799; else if (Shape == Shape::OuterLeft) return 7801; else return 7803; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7805; else if (Shape == Shape::InnerLeft) return 7807; else if (Shape == Shape::InnerRight) return 7809; else if (Shape == Shape::OuterLeft) return 7811; else return 7813; else if (Shape == Shape::Straight) return 7815; else if (Shape == Shape::InnerLeft) return 7817; else if (Shape == Shape::InnerRight) return 7819; else if (Shape == Shape::OuterLeft) return 7821; else return 7823; else if (Half == Half::Top) if (Shape == Shape::Straight) return 7825; else if (Shape == Shape::InnerLeft) return 7827; else if (Shape == Shape::InnerRight) return 7829; else if (Shape == Shape::OuterLeft) return 7831; else return 7833; else if (Shape == Shape::Straight) return 7835; else if (Shape == Shape::InnerLeft) return 7837; else if (Shape == Shape::InnerRight) return 7839; else if (Shape == Shape::OuterLeft) return 7841; else return 7843; } BlockState DarkPrismarineStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace DaylightDetector { constexpr BlockState DaylightDetector(const bool Inverted, const unsigned char Power) { if (Inverted) if (Power == 0) return 6694; else if (Power == 1) return 6695; else if (Power == 2) return 6696; else if (Power == 3) return 6697; else if (Power == 4) return 6698; else if (Power == 5) return 6699; else if (Power == 6) return 6700; else if (Power == 7) return 6701; else if (Power == 8) return 6702; else if (Power == 9) return 6703; else if (Power == 10) return 6704; else if (Power == 11) return 6705; else if (Power == 12) return 6706; else if (Power == 13) return 6707; else if (Power == 14) return 6708; else return 6709; else if (Power == 0) return 6710; else if (Power == 1) return 6711; else if (Power == 2) return 6712; else if (Power == 3) return 6713; else if (Power == 4) return 6714; else if (Power == 5) return 6715; else if (Power == 6) return 6716; else if (Power == 7) return 6717; else if (Power == 8) return 6718; else if (Power == 9) return 6719; else if (Power == 10) return 6720; else if (Power == 11) return 6721; else if (Power == 12) return 6722; else if (Power == 13) return 6723; else if (Power == 14) return 6724; else return 6725; } BlockState DaylightDetector(); bool Inverted(BlockState Block); unsigned char Power(BlockState Block); } namespace DeadBrainCoral { constexpr BlockState DeadBrainCoral() { return 9523; } } namespace DeadBrainCoralBlock { constexpr BlockState DeadBrainCoralBlock() { return 9511; } } namespace DeadBrainCoralFan { constexpr BlockState DeadBrainCoralFan() { return 9543; } } namespace DeadBrainCoralWallFan { constexpr BlockState DeadBrainCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9569; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9571; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9573; else return 9575; } BlockState DeadBrainCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace DeadBubbleCoral { constexpr BlockState DeadBubbleCoral() { return 9525; } } namespace DeadBubbleCoralBlock { constexpr BlockState DeadBubbleCoralBlock() { return 9512; } } namespace DeadBubbleCoralFan { constexpr BlockState DeadBubbleCoralFan() { return 9545; } } namespace DeadBubbleCoralWallFan { constexpr BlockState DeadBubbleCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9577; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9579; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9581; else return 9583; } BlockState DeadBubbleCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace DeadBush { constexpr BlockState DeadBush() { return 1344; } } namespace DeadFireCoral { constexpr BlockState DeadFireCoral() { return 9527; } } namespace DeadFireCoralBlock { constexpr BlockState DeadFireCoralBlock() { return 9513; } } namespace DeadFireCoralFan { constexpr BlockState DeadFireCoralFan() { return 9547; } } namespace DeadFireCoralWallFan { constexpr BlockState DeadFireCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9585; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9587; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9589; else return 9591; } BlockState DeadFireCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace DeadHornCoral { constexpr BlockState DeadHornCoral() { return 9529; } } namespace DeadHornCoralBlock { constexpr BlockState DeadHornCoralBlock() { return 9514; } } namespace DeadHornCoralFan { constexpr BlockState DeadHornCoralFan() { return 9549; } } namespace DeadHornCoralWallFan { constexpr BlockState DeadHornCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9593; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9595; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9597; else return 9599; } BlockState DeadHornCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace DeadTubeCoral { constexpr BlockState DeadTubeCoral() { return 9521; } } namespace DeadTubeCoralBlock { constexpr BlockState DeadTubeCoralBlock() { return 9510; } } namespace DeadTubeCoralFan { constexpr BlockState DeadTubeCoralFan() { return 9541; } } namespace DeadTubeCoralWallFan { constexpr BlockState DeadTubeCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9561; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9563; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9565; else return 9567; } BlockState DeadTubeCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace DetectorRail { enum class Shape { NorthSouth, EastWest, AscendingEast, AscendingWest, AscendingNorth, AscendingSouth }; constexpr BlockState DetectorRail(const bool Powered, const enum Shape Shape) { if (Powered) if (Shape == Shape::NorthSouth) return 1317; else if (Shape == Shape::EastWest) return 1318; else if (Shape == Shape::AscendingEast) return 1319; else if (Shape == Shape::AscendingWest) return 1320; else if (Shape == Shape::AscendingNorth) return 1321; else return 1322; else if (Shape == Shape::NorthSouth) return 1323; else if (Shape == Shape::EastWest) return 1324; else if (Shape == Shape::AscendingEast) return 1325; else if (Shape == Shape::AscendingWest) return 1326; else if (Shape == Shape::AscendingNorth) return 1327; else return 1328; } BlockState DetectorRail(); bool Powered(BlockState Block); enum Shape Shape(BlockState Block); } namespace DiamondBlock { constexpr BlockState DiamondBlock() { return 3355; } } namespace DiamondOre { constexpr BlockState DiamondOre() { return 3354; } } namespace Diorite { constexpr BlockState Diorite() { return 4; } } namespace DioriteSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState DioriteSlab(const enum Type Type) { if (Type == Type::Top) return 10862; else if (Type == Type::Bottom) return 10864; else return 10866; } BlockState DioriteSlab(); enum Type Type(BlockState Block); } namespace DioriteStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState DioriteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10710; else if (Shape == Shape::InnerLeft) return 10712; else if (Shape == Shape::InnerRight) return 10714; else if (Shape == Shape::OuterLeft) return 10716; else return 10718; else if (Shape == Shape::Straight) return 10720; else if (Shape == Shape::InnerLeft) return 10722; else if (Shape == Shape::InnerRight) return 10724; else if (Shape == Shape::OuterLeft) return 10726; else return 10728; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10730; else if (Shape == Shape::InnerLeft) return 10732; else if (Shape == Shape::InnerRight) return 10734; else if (Shape == Shape::OuterLeft) return 10736; else return 10738; else if (Shape == Shape::Straight) return 10740; else if (Shape == Shape::InnerLeft) return 10742; else if (Shape == Shape::InnerRight) return 10744; else if (Shape == Shape::OuterLeft) return 10746; else return 10748; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10750; else if (Shape == Shape::InnerLeft) return 10752; else if (Shape == Shape::InnerRight) return 10754; else if (Shape == Shape::OuterLeft) return 10756; else return 10758; else if (Shape == Shape::Straight) return 10760; else if (Shape == Shape::InnerLeft) return 10762; else if (Shape == Shape::InnerRight) return 10764; else if (Shape == Shape::OuterLeft) return 10766; else return 10768; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10770; else if (Shape == Shape::InnerLeft) return 10772; else if (Shape == Shape::InnerRight) return 10774; else if (Shape == Shape::OuterLeft) return 10776; else return 10778; else if (Shape == Shape::Straight) return 10780; else if (Shape == Shape::InnerLeft) return 10782; else if (Shape == Shape::InnerRight) return 10784; else if (Shape == Shape::OuterLeft) return 10786; else return 10788; } BlockState DioriteStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace DioriteWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState DioriteWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 14434; else if (West == West::Low) return 14435; else return 14436; else if (West == West::None) return 14440; else if (West == West::Low) return 14441; else return 14442; else if (South == South::Low) if (Up) if (West == West::None) return 14446; else if (West == West::Low) return 14447; else return 14448; else if (West == West::None) return 14452; else if (West == West::Low) return 14453; else return 14454; else if (Up) if (West == West::None) return 14458; else if (West == West::Low) return 14459; else return 14460; else if (West == West::None) return 14464; else if (West == West::Low) return 14465; else return 14466; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 14470; else if (West == West::Low) return 14471; else return 14472; else if (West == West::None) return 14476; else if (West == West::Low) return 14477; else return 14478; else if (South == South::Low) if (Up) if (West == West::None) return 14482; else if (West == West::Low) return 14483; else return 14484; else if (West == West::None) return 14488; else if (West == West::Low) return 14489; else return 14490; else if (Up) if (West == West::None) return 14494; else if (West == West::Low) return 14495; else return 14496; else if (West == West::None) return 14500; else if (West == West::Low) return 14501; else return 14502; else if (South == South::None) if (Up) if (West == West::None) return 14506; else if (West == West::Low) return 14507; else return 14508; else if (West == West::None) return 14512; else if (West == West::Low) return 14513; else return 14514; else if (South == South::Low) if (Up) if (West == West::None) return 14518; else if (West == West::Low) return 14519; else return 14520; else if (West == West::None) return 14524; else if (West == West::Low) return 14525; else return 14526; else if (Up) if (West == West::None) return 14530; else if (West == West::Low) return 14531; else return 14532; else if (West == West::None) return 14536; else if (West == West::Low) return 14537; else return 14538; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 14542; else if (West == West::Low) return 14543; else return 14544; else if (West == West::None) return 14548; else if (West == West::Low) return 14549; else return 14550; else if (South == South::Low) if (Up) if (West == West::None) return 14554; else if (West == West::Low) return 14555; else return 14556; else if (West == West::None) return 14560; else if (West == West::Low) return 14561; else return 14562; else if (Up) if (West == West::None) return 14566; else if (West == West::Low) return 14567; else return 14568; else if (West == West::None) return 14572; else if (West == West::Low) return 14573; else return 14574; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 14578; else if (West == West::Low) return 14579; else return 14580; else if (West == West::None) return 14584; else if (West == West::Low) return 14585; else return 14586; else if (South == South::Low) if (Up) if (West == West::None) return 14590; else if (West == West::Low) return 14591; else return 14592; else if (West == West::None) return 14596; else if (West == West::Low) return 14597; else return 14598; else if (Up) if (West == West::None) return 14602; else if (West == West::Low) return 14603; else return 14604; else if (West == West::None) return 14608; else if (West == West::Low) return 14609; else return 14610; else if (South == South::None) if (Up) if (West == West::None) return 14614; else if (West == West::Low) return 14615; else return 14616; else if (West == West::None) return 14620; else if (West == West::Low) return 14621; else return 14622; else if (South == South::Low) if (Up) if (West == West::None) return 14626; else if (West == West::Low) return 14627; else return 14628; else if (West == West::None) return 14632; else if (West == West::Low) return 14633; else return 14634; else if (Up) if (West == West::None) return 14638; else if (West == West::Low) return 14639; else return 14640; else if (West == West::None) return 14644; else if (West == West::Low) return 14645; else return 14646; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 14650; else if (West == West::Low) return 14651; else return 14652; else if (West == West::None) return 14656; else if (West == West::Low) return 14657; else return 14658; else if (South == South::Low) if (Up) if (West == West::None) return 14662; else if (West == West::Low) return 14663; else return 14664; else if (West == West::None) return 14668; else if (West == West::Low) return 14669; else return 14670; else if (Up) if (West == West::None) return 14674; else if (West == West::Low) return 14675; else return 14676; else if (West == West::None) return 14680; else if (West == West::Low) return 14681; else return 14682; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 14686; else if (West == West::Low) return 14687; else return 14688; else if (West == West::None) return 14692; else if (West == West::Low) return 14693; else return 14694; else if (South == South::Low) if (Up) if (West == West::None) return 14698; else if (West == West::Low) return 14699; else return 14700; else if (West == West::None) return 14704; else if (West == West::Low) return 14705; else return 14706; else if (Up) if (West == West::None) return 14710; else if (West == West::Low) return 14711; else return 14712; else if (West == West::None) return 14716; else if (West == West::Low) return 14717; else return 14718; else if (South == South::None) if (Up) if (West == West::None) return 14722; else if (West == West::Low) return 14723; else return 14724; else if (West == West::None) return 14728; else if (West == West::Low) return 14729; else return 14730; else if (South == South::Low) if (Up) if (West == West::None) return 14734; else if (West == West::Low) return 14735; else return 14736; else if (West == West::None) return 14740; else if (West == West::Low) return 14741; else return 14742; else if (Up) if (West == West::None) return 14746; else if (West == West::Low) return 14747; else return 14748; else if (West == West::None) return 14752; else if (West == West::Low) return 14753; else return 14754; } BlockState DioriteWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace Dirt { constexpr BlockState Dirt() { return 10; } } namespace Dispenser { constexpr BlockState Dispenser(const eBlockFace Facing, const bool Triggered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Triggered) return 234; else return 235; else if (Facing == eBlockFace::BLOCK_FACE_XP) if (Triggered) return 236; else return 237; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Triggered) return 238; else return 239; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Triggered) return 240; else return 241; else if (Facing == eBlockFace::BLOCK_FACE_YP) if (Triggered) return 242; else return 243; else if (Triggered) return 244; else return 245; } BlockState Dispenser(); eBlockFace Facing(BlockState Block); bool Triggered(BlockState Block); } namespace DragonEgg { constexpr BlockState DragonEgg() { return 5155; } } namespace DragonHead { constexpr BlockState DragonHead(const unsigned char Rotation) { if (Rotation == 0) return 6590; else if (Rotation == 1) return 6591; else if (Rotation == 2) return 6592; else if (Rotation == 3) return 6593; else if (Rotation == 4) return 6594; else if (Rotation == 5) return 6595; else if (Rotation == 6) return 6596; else if (Rotation == 7) return 6597; else if (Rotation == 8) return 6598; else if (Rotation == 9) return 6599; else if (Rotation == 10) return 6600; else if (Rotation == 11) return 6601; else if (Rotation == 12) return 6602; else if (Rotation == 13) return 6603; else if (Rotation == 14) return 6604; else return 6605; } BlockState DragonHead(); unsigned char Rotation(BlockState Block); } namespace DragonWallHead { constexpr BlockState DragonWallHead(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6606; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6607; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6608; else return 6609; } BlockState DragonWallHead(); eBlockFace Facing(BlockState Block); } namespace DriedKelpBlock { constexpr BlockState DriedKelpBlock() { return 9497; } } namespace Dropper { constexpr BlockState Dropper(const eBlockFace Facing, const bool Triggered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Triggered) return 6835; else return 6836; else if (Facing == eBlockFace::BLOCK_FACE_XP) if (Triggered) return 6837; else return 6838; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Triggered) return 6839; else return 6840; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Triggered) return 6841; else return 6842; else if (Facing == eBlockFace::BLOCK_FACE_YP) if (Triggered) return 6843; else return 6844; else if (Triggered) return 6845; else return 6846; } BlockState Dropper(); eBlockFace Facing(BlockState Block); bool Triggered(BlockState Block); } namespace EmeraldBlock { constexpr BlockState EmeraldBlock() { return 5403; } } namespace EmeraldOre { constexpr BlockState EmeraldOre() { return 5250; } } namespace EnchantingTable { constexpr BlockState EnchantingTable() { return 5132; } } namespace EndGateway { constexpr BlockState EndGateway() { return 9224; } } namespace EndPortal { constexpr BlockState EndPortal() { return 5145; } } namespace EndPortalFrame { constexpr BlockState EndPortalFrame(const bool Eye, const eBlockFace Facing) { if (Eye) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5146; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5147; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5148; else return 5149; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5150; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5151; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5152; else return 5153; } BlockState EndPortalFrame(); bool Eye(BlockState Block); eBlockFace Facing(BlockState Block); } namespace EndRod { constexpr BlockState EndRod(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9058; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9059; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9060; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9061; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9062; else return 9063; } BlockState EndRod(); eBlockFace Facing(BlockState Block); } namespace EndStone { constexpr BlockState EndStone() { return 5154; } } namespace EndStoneBrickSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState EndStoneBrickSlab(const enum Type Type) { if (Type == Type::Top) return 10820; else if (Type == Type::Bottom) return 10822; else return 10824; } BlockState EndStoneBrickSlab(); enum Type Type(BlockState Block); } namespace EndStoneBrickStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState EndStoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10070; else if (Shape == Shape::InnerLeft) return 10072; else if (Shape == Shape::InnerRight) return 10074; else if (Shape == Shape::OuterLeft) return 10076; else return 10078; else if (Shape == Shape::Straight) return 10080; else if (Shape == Shape::InnerLeft) return 10082; else if (Shape == Shape::InnerRight) return 10084; else if (Shape == Shape::OuterLeft) return 10086; else return 10088; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10090; else if (Shape == Shape::InnerLeft) return 10092; else if (Shape == Shape::InnerRight) return 10094; else if (Shape == Shape::OuterLeft) return 10096; else return 10098; else if (Shape == Shape::Straight) return 10100; else if (Shape == Shape::InnerLeft) return 10102; else if (Shape == Shape::InnerRight) return 10104; else if (Shape == Shape::OuterLeft) return 10106; else return 10108; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10110; else if (Shape == Shape::InnerLeft) return 10112; else if (Shape == Shape::InnerRight) return 10114; else if (Shape == Shape::OuterLeft) return 10116; else return 10118; else if (Shape == Shape::Straight) return 10120; else if (Shape == Shape::InnerLeft) return 10122; else if (Shape == Shape::InnerRight) return 10124; else if (Shape == Shape::OuterLeft) return 10126; else return 10128; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10130; else if (Shape == Shape::InnerLeft) return 10132; else if (Shape == Shape::InnerRight) return 10134; else if (Shape == Shape::OuterLeft) return 10136; else return 10138; else if (Shape == Shape::Straight) return 10140; else if (Shape == Shape::InnerLeft) return 10142; else if (Shape == Shape::InnerRight) return 10144; else if (Shape == Shape::OuterLeft) return 10146; else return 10148; } BlockState EndStoneBrickStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace EndStoneBrickWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState EndStoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 14110; else if (West == West::Low) return 14111; else return 14112; else if (West == West::None) return 14116; else if (West == West::Low) return 14117; else return 14118; else if (South == South::Low) if (Up) if (West == West::None) return 14122; else if (West == West::Low) return 14123; else return 14124; else if (West == West::None) return 14128; else if (West == West::Low) return 14129; else return 14130; else if (Up) if (West == West::None) return 14134; else if (West == West::Low) return 14135; else return 14136; else if (West == West::None) return 14140; else if (West == West::Low) return 14141; else return 14142; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 14146; else if (West == West::Low) return 14147; else return 14148; else if (West == West::None) return 14152; else if (West == West::Low) return 14153; else return 14154; else if (South == South::Low) if (Up) if (West == West::None) return 14158; else if (West == West::Low) return 14159; else return 14160; else if (West == West::None) return 14164; else if (West == West::Low) return 14165; else return 14166; else if (Up) if (West == West::None) return 14170; else if (West == West::Low) return 14171; else return 14172; else if (West == West::None) return 14176; else if (West == West::Low) return 14177; else return 14178; else if (South == South::None) if (Up) if (West == West::None) return 14182; else if (West == West::Low) return 14183; else return 14184; else if (West == West::None) return 14188; else if (West == West::Low) return 14189; else return 14190; else if (South == South::Low) if (Up) if (West == West::None) return 14194; else if (West == West::Low) return 14195; else return 14196; else if (West == West::None) return 14200; else if (West == West::Low) return 14201; else return 14202; else if (Up) if (West == West::None) return 14206; else if (West == West::Low) return 14207; else return 14208; else if (West == West::None) return 14212; else if (West == West::Low) return 14213; else return 14214; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 14218; else if (West == West::Low) return 14219; else return 14220; else if (West == West::None) return 14224; else if (West == West::Low) return 14225; else return 14226; else if (South == South::Low) if (Up) if (West == West::None) return 14230; else if (West == West::Low) return 14231; else return 14232; else if (West == West::None) return 14236; else if (West == West::Low) return 14237; else return 14238; else if (Up) if (West == West::None) return 14242; else if (West == West::Low) return 14243; else return 14244; else if (West == West::None) return 14248; else if (West == West::Low) return 14249; else return 14250; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 14254; else if (West == West::Low) return 14255; else return 14256; else if (West == West::None) return 14260; else if (West == West::Low) return 14261; else return 14262; else if (South == South::Low) if (Up) if (West == West::None) return 14266; else if (West == West::Low) return 14267; else return 14268; else if (West == West::None) return 14272; else if (West == West::Low) return 14273; else return 14274; else if (Up) if (West == West::None) return 14278; else if (West == West::Low) return 14279; else return 14280; else if (West == West::None) return 14284; else if (West == West::Low) return 14285; else return 14286; else if (South == South::None) if (Up) if (West == West::None) return 14290; else if (West == West::Low) return 14291; else return 14292; else if (West == West::None) return 14296; else if (West == West::Low) return 14297; else return 14298; else if (South == South::Low) if (Up) if (West == West::None) return 14302; else if (West == West::Low) return 14303; else return 14304; else if (West == West::None) return 14308; else if (West == West::Low) return 14309; else return 14310; else if (Up) if (West == West::None) return 14314; else if (West == West::Low) return 14315; else return 14316; else if (West == West::None) return 14320; else if (West == West::Low) return 14321; else return 14322; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 14326; else if (West == West::Low) return 14327; else return 14328; else if (West == West::None) return 14332; else if (West == West::Low) return 14333; else return 14334; else if (South == South::Low) if (Up) if (West == West::None) return 14338; else if (West == West::Low) return 14339; else return 14340; else if (West == West::None) return 14344; else if (West == West::Low) return 14345; else return 14346; else if (Up) if (West == West::None) return 14350; else if (West == West::Low) return 14351; else return 14352; else if (West == West::None) return 14356; else if (West == West::Low) return 14357; else return 14358; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 14362; else if (West == West::Low) return 14363; else return 14364; else if (West == West::None) return 14368; else if (West == West::Low) return 14369; else return 14370; else if (South == South::Low) if (Up) if (West == West::None) return 14374; else if (West == West::Low) return 14375; else return 14376; else if (West == West::None) return 14380; else if (West == West::Low) return 14381; else return 14382; else if (Up) if (West == West::None) return 14386; else if (West == West::Low) return 14387; else return 14388; else if (West == West::None) return 14392; else if (West == West::Low) return 14393; else return 14394; else if (South == South::None) if (Up) if (West == West::None) return 14398; else if (West == West::Low) return 14399; else return 14400; else if (West == West::None) return 14404; else if (West == West::Low) return 14405; else return 14406; else if (South == South::Low) if (Up) if (West == West::None) return 14410; else if (West == West::Low) return 14411; else return 14412; else if (West == West::None) return 14416; else if (West == West::Low) return 14417; else return 14418; else if (Up) if (West == West::None) return 14422; else if (West == West::Low) return 14423; else return 14424; else if (West == West::None) return 14428; else if (West == West::Low) return 14429; else return 14430; } BlockState EndStoneBrickWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace EndStoneBricks { constexpr BlockState EndStoneBricks() { return 9218; } } namespace EnderChest { constexpr BlockState EnderChest(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 5252; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 5254; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 5256; else return 5258; } BlockState EnderChest(); eBlockFace Facing(BlockState Block); } namespace Farmland { constexpr BlockState Farmland(const unsigned char Moisture) { if (Moisture == 0) return 3365; else if (Moisture == 1) return 3366; else if (Moisture == 2) return 3367; else if (Moisture == 3) return 3368; else if (Moisture == 4) return 3369; else if (Moisture == 5) return 3370; else if (Moisture == 6) return 3371; else return 3372; } BlockState Farmland(); unsigned char Moisture(BlockState Block); } namespace Fern { constexpr BlockState Fern() { return 1343; } } namespace Fire { constexpr BlockState Fire(const unsigned char Age, const bool East, const bool North, const bool South, const bool Up, const bool West) { if (Age == 0) if (East) if (North) if (South) if (Up) if (West) return 1440; else return 1441; else if (West) return 1442; else return 1443; else if (Up) if (West) return 1444; else return 1445; else if (West) return 1446; else return 1447; else if (South) if (Up) if (West) return 1448; else return 1449; else if (West) return 1450; else return 1451; else if (Up) if (West) return 1452; else return 1453; else if (West) return 1454; else return 1455; else if (North) if (South) if (Up) if (West) return 1456; else return 1457; else if (West) return 1458; else return 1459; else if (Up) if (West) return 1460; else return 1461; else if (West) return 1462; else return 1463; else if (South) if (Up) if (West) return 1464; else return 1465; else if (West) return 1466; else return 1467; else if (Up) if (West) return 1468; else return 1469; else if (West) return 1470; else return 1471; else if (Age == 1) if (East) if (North) if (South) if (Up) if (West) return 1472; else return 1473; else if (West) return 1474; else return 1475; else if (Up) if (West) return 1476; else return 1477; else if (West) return 1478; else return 1479; else if (South) if (Up) if (West) return 1480; else return 1481; else if (West) return 1482; else return 1483; else if (Up) if (West) return 1484; else return 1485; else if (West) return 1486; else return 1487; else if (North) if (South) if (Up) if (West) return 1488; else return 1489; else if (West) return 1490; else return 1491; else if (Up) if (West) return 1492; else return 1493; else if (West) return 1494; else return 1495; else if (South) if (Up) if (West) return 1496; else return 1497; else if (West) return 1498; else return 1499; else if (Up) if (West) return 1500; else return 1501; else if (West) return 1502; else return 1503; else if (Age == 2) if (East) if (North) if (South) if (Up) if (West) return 1504; else return 1505; else if (West) return 1506; else return 1507; else if (Up) if (West) return 1508; else return 1509; else if (West) return 1510; else return 1511; else if (South) if (Up) if (West) return 1512; else return 1513; else if (West) return 1514; else return 1515; else if (Up) if (West) return 1516; else return 1517; else if (West) return 1518; else return 1519; else if (North) if (South) if (Up) if (West) return 1520; else return 1521; else if (West) return 1522; else return 1523; else if (Up) if (West) return 1524; else return 1525; else if (West) return 1526; else return 1527; else if (South) if (Up) if (West) return 1528; else return 1529; else if (West) return 1530; else return 1531; else if (Up) if (West) return 1532; else return 1533; else if (West) return 1534; else return 1535; else if (Age == 3) if (East) if (North) if (South) if (Up) if (West) return 1536; else return 1537; else if (West) return 1538; else return 1539; else if (Up) if (West) return 1540; else return 1541; else if (West) return 1542; else return 1543; else if (South) if (Up) if (West) return 1544; else return 1545; else if (West) return 1546; else return 1547; else if (Up) if (West) return 1548; else return 1549; else if (West) return 1550; else return 1551; else if (North) if (South) if (Up) if (West) return 1552; else return 1553; else if (West) return 1554; else return 1555; else if (Up) if (West) return 1556; else return 1557; else if (West) return 1558; else return 1559; else if (South) if (Up) if (West) return 1560; else return 1561; else if (West) return 1562; else return 1563; else if (Up) if (West) return 1564; else return 1565; else if (West) return 1566; else return 1567; else if (Age == 4) if (East) if (North) if (South) if (Up) if (West) return 1568; else return 1569; else if (West) return 1570; else return 1571; else if (Up) if (West) return 1572; else return 1573; else if (West) return 1574; else return 1575; else if (South) if (Up) if (West) return 1576; else return 1577; else if (West) return 1578; else return 1579; else if (Up) if (West) return 1580; else return 1581; else if (West) return 1582; else return 1583; else if (North) if (South) if (Up) if (West) return 1584; else return 1585; else if (West) return 1586; else return 1587; else if (Up) if (West) return 1588; else return 1589; else if (West) return 1590; else return 1591; else if (South) if (Up) if (West) return 1592; else return 1593; else if (West) return 1594; else return 1595; else if (Up) if (West) return 1596; else return 1597; else if (West) return 1598; else return 1599; else if (Age == 5) if (East) if (North) if (South) if (Up) if (West) return 1600; else return 1601; else if (West) return 1602; else return 1603; else if (Up) if (West) return 1604; else return 1605; else if (West) return 1606; else return 1607; else if (South) if (Up) if (West) return 1608; else return 1609; else if (West) return 1610; else return 1611; else if (Up) if (West) return 1612; else return 1613; else if (West) return 1614; else return 1615; else if (North) if (South) if (Up) if (West) return 1616; else return 1617; else if (West) return 1618; else return 1619; else if (Up) if (West) return 1620; else return 1621; else if (West) return 1622; else return 1623; else if (South) if (Up) if (West) return 1624; else return 1625; else if (West) return 1626; else return 1627; else if (Up) if (West) return 1628; else return 1629; else if (West) return 1630; else return 1631; else if (Age == 6) if (East) if (North) if (South) if (Up) if (West) return 1632; else return 1633; else if (West) return 1634; else return 1635; else if (Up) if (West) return 1636; else return 1637; else if (West) return 1638; else return 1639; else if (South) if (Up) if (West) return 1640; else return 1641; else if (West) return 1642; else return 1643; else if (Up) if (West) return 1644; else return 1645; else if (West) return 1646; else return 1647; else if (North) if (South) if (Up) if (West) return 1648; else return 1649; else if (West) return 1650; else return 1651; else if (Up) if (West) return 1652; else return 1653; else if (West) return 1654; else return 1655; else if (South) if (Up) if (West) return 1656; else return 1657; else if (West) return 1658; else return 1659; else if (Up) if (West) return 1660; else return 1661; else if (West) return 1662; else return 1663; else if (Age == 7) if (East) if (North) if (South) if (Up) if (West) return 1664; else return 1665; else if (West) return 1666; else return 1667; else if (Up) if (West) return 1668; else return 1669; else if (West) return 1670; else return 1671; else if (South) if (Up) if (West) return 1672; else return 1673; else if (West) return 1674; else return 1675; else if (Up) if (West) return 1676; else return 1677; else if (West) return 1678; else return 1679; else if (North) if (South) if (Up) if (West) return 1680; else return 1681; else if (West) return 1682; else return 1683; else if (Up) if (West) return 1684; else return 1685; else if (West) return 1686; else return 1687; else if (South) if (Up) if (West) return 1688; else return 1689; else if (West) return 1690; else return 1691; else if (Up) if (West) return 1692; else return 1693; else if (West) return 1694; else return 1695; else if (Age == 8) if (East) if (North) if (South) if (Up) if (West) return 1696; else return 1697; else if (West) return 1698; else return 1699; else if (Up) if (West) return 1700; else return 1701; else if (West) return 1702; else return 1703; else if (South) if (Up) if (West) return 1704; else return 1705; else if (West) return 1706; else return 1707; else if (Up) if (West) return 1708; else return 1709; else if (West) return 1710; else return 1711; else if (North) if (South) if (Up) if (West) return 1712; else return 1713; else if (West) return 1714; else return 1715; else if (Up) if (West) return 1716; else return 1717; else if (West) return 1718; else return 1719; else if (South) if (Up) if (West) return 1720; else return 1721; else if (West) return 1722; else return 1723; else if (Up) if (West) return 1724; else return 1725; else if (West) return 1726; else return 1727; else if (Age == 9) if (East) if (North) if (South) if (Up) if (West) return 1728; else return 1729; else if (West) return 1730; else return 1731; else if (Up) if (West) return 1732; else return 1733; else if (West) return 1734; else return 1735; else if (South) if (Up) if (West) return 1736; else return 1737; else if (West) return 1738; else return 1739; else if (Up) if (West) return 1740; else return 1741; else if (West) return 1742; else return 1743; else if (North) if (South) if (Up) if (West) return 1744; else return 1745; else if (West) return 1746; else return 1747; else if (Up) if (West) return 1748; else return 1749; else if (West) return 1750; else return 1751; else if (South) if (Up) if (West) return 1752; else return 1753; else if (West) return 1754; else return 1755; else if (Up) if (West) return 1756; else return 1757; else if (West) return 1758; else return 1759; else if (Age == 10) if (East) if (North) if (South) if (Up) if (West) return 1760; else return 1761; else if (West) return 1762; else return 1763; else if (Up) if (West) return 1764; else return 1765; else if (West) return 1766; else return 1767; else if (South) if (Up) if (West) return 1768; else return 1769; else if (West) return 1770; else return 1771; else if (Up) if (West) return 1772; else return 1773; else if (West) return 1774; else return 1775; else if (North) if (South) if (Up) if (West) return 1776; else return 1777; else if (West) return 1778; else return 1779; else if (Up) if (West) return 1780; else return 1781; else if (West) return 1782; else return 1783; else if (South) if (Up) if (West) return 1784; else return 1785; else if (West) return 1786; else return 1787; else if (Up) if (West) return 1788; else return 1789; else if (West) return 1790; else return 1791; else if (Age == 11) if (East) if (North) if (South) if (Up) if (West) return 1792; else return 1793; else if (West) return 1794; else return 1795; else if (Up) if (West) return 1796; else return 1797; else if (West) return 1798; else return 1799; else if (South) if (Up) if (West) return 1800; else return 1801; else if (West) return 1802; else return 1803; else if (Up) if (West) return 1804; else return 1805; else if (West) return 1806; else return 1807; else if (North) if (South) if (Up) if (West) return 1808; else return 1809; else if (West) return 1810; else return 1811; else if (Up) if (West) return 1812; else return 1813; else if (West) return 1814; else return 1815; else if (South) if (Up) if (West) return 1816; else return 1817; else if (West) return 1818; else return 1819; else if (Up) if (West) return 1820; else return 1821; else if (West) return 1822; else return 1823; else if (Age == 12) if (East) if (North) if (South) if (Up) if (West) return 1824; else return 1825; else if (West) return 1826; else return 1827; else if (Up) if (West) return 1828; else return 1829; else if (West) return 1830; else return 1831; else if (South) if (Up) if (West) return 1832; else return 1833; else if (West) return 1834; else return 1835; else if (Up) if (West) return 1836; else return 1837; else if (West) return 1838; else return 1839; else if (North) if (South) if (Up) if (West) return 1840; else return 1841; else if (West) return 1842; else return 1843; else if (Up) if (West) return 1844; else return 1845; else if (West) return 1846; else return 1847; else if (South) if (Up) if (West) return 1848; else return 1849; else if (West) return 1850; else return 1851; else if (Up) if (West) return 1852; else return 1853; else if (West) return 1854; else return 1855; else if (Age == 13) if (East) if (North) if (South) if (Up) if (West) return 1856; else return 1857; else if (West) return 1858; else return 1859; else if (Up) if (West) return 1860; else return 1861; else if (West) return 1862; else return 1863; else if (South) if (Up) if (West) return 1864; else return 1865; else if (West) return 1866; else return 1867; else if (Up) if (West) return 1868; else return 1869; else if (West) return 1870; else return 1871; else if (North) if (South) if (Up) if (West) return 1872; else return 1873; else if (West) return 1874; else return 1875; else if (Up) if (West) return 1876; else return 1877; else if (West) return 1878; else return 1879; else if (South) if (Up) if (West) return 1880; else return 1881; else if (West) return 1882; else return 1883; else if (Up) if (West) return 1884; else return 1885; else if (West) return 1886; else return 1887; else if (Age == 14) if (East) if (North) if (South) if (Up) if (West) return 1888; else return 1889; else if (West) return 1890; else return 1891; else if (Up) if (West) return 1892; else return 1893; else if (West) return 1894; else return 1895; else if (South) if (Up) if (West) return 1896; else return 1897; else if (West) return 1898; else return 1899; else if (Up) if (West) return 1900; else return 1901; else if (West) return 1902; else return 1903; else if (North) if (South) if (Up) if (West) return 1904; else return 1905; else if (West) return 1906; else return 1907; else if (Up) if (West) return 1908; else return 1909; else if (West) return 1910; else return 1911; else if (South) if (Up) if (West) return 1912; else return 1913; else if (West) return 1914; else return 1915; else if (Up) if (West) return 1916; else return 1917; else if (West) return 1918; else return 1919; else if (East) if (North) if (South) if (Up) if (West) return 1920; else return 1921; else if (West) return 1922; else return 1923; else if (Up) if (West) return 1924; else return 1925; else if (West) return 1926; else return 1927; else if (South) if (Up) if (West) return 1928; else return 1929; else if (West) return 1930; else return 1931; else if (Up) if (West) return 1932; else return 1933; else if (West) return 1934; else return 1935; else if (North) if (South) if (Up) if (West) return 1936; else return 1937; else if (West) return 1938; else return 1939; else if (Up) if (West) return 1940; else return 1941; else if (West) return 1942; else return 1943; else if (South) if (Up) if (West) return 1944; else return 1945; else if (West) return 1946; else return 1947; else if (Up) if (West) return 1948; else return 1949; else if (West) return 1950; else return 1951; } BlockState Fire(); unsigned char Age(BlockState Block); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool Up(BlockState Block); bool West(BlockState Block); } namespace FireCoral { constexpr BlockState FireCoral() { return 9537; } } namespace FireCoralBlock { constexpr BlockState FireCoralBlock() { return 9518; } } namespace FireCoralFan { constexpr BlockState FireCoralFan() { return 9557; } } namespace FireCoralWallFan { constexpr BlockState FireCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9625; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9627; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9629; else return 9631; } BlockState FireCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace FletchingTable { constexpr BlockState FletchingTable() { return 14820; } } namespace FlowerPot { constexpr BlockState FlowerPot() { return 6305; } } namespace FrostedIce { constexpr BlockState FrostedIce(const unsigned char Age) { if (Age == 0) return 9249; else if (Age == 1) return 9250; else if (Age == 2) return 9251; else return 9252; } BlockState FrostedIce(); unsigned char Age(BlockState Block); } namespace Furnace { constexpr BlockState Furnace(const eBlockFace Facing, const bool Lit) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Lit) return 3373; else return 3374; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Lit) return 3375; else return 3376; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Lit) return 3377; else return 3378; else if (Lit) return 3379; else return 3380; } BlockState Furnace(); eBlockFace Facing(BlockState Block); bool Lit(BlockState Block); } namespace GildedBlackstone { constexpr BlockState GildedBlackstone() { return 16664; } } namespace Glass { constexpr BlockState Glass() { return 231; } } namespace GlassPane { constexpr BlockState GlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 4733; else return 4734; else if (West) return 4737; else return 4738; else if (South) if (West) return 4741; else return 4742; else if (West) return 4745; else return 4746; else if (North) if (South) if (West) return 4749; else return 4750; else if (West) return 4753; else return 4754; else if (South) if (West) return 4757; else return 4758; else if (West) return 4761; else return 4762; } BlockState GlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace Glowstone { constexpr BlockState Glowstone() { return 4013; } } namespace GoldBlock { constexpr BlockState GoldBlock() { return 1427; } } namespace GoldOre { constexpr BlockState GoldOre() { return 69; } } namespace Granite { constexpr BlockState Granite() { return 2; } } namespace GraniteSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState GraniteSlab(const enum Type Type) { if (Type == Type::Top) return 10838; else if (Type == Type::Bottom) return 10840; else return 10842; } BlockState GraniteSlab(); enum Type Type(BlockState Block); } namespace GraniteStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState GraniteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10390; else if (Shape == Shape::InnerLeft) return 10392; else if (Shape == Shape::InnerRight) return 10394; else if (Shape == Shape::OuterLeft) return 10396; else return 10398; else if (Shape == Shape::Straight) return 10400; else if (Shape == Shape::InnerLeft) return 10402; else if (Shape == Shape::InnerRight) return 10404; else if (Shape == Shape::OuterLeft) return 10406; else return 10408; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10410; else if (Shape == Shape::InnerLeft) return 10412; else if (Shape == Shape::InnerRight) return 10414; else if (Shape == Shape::OuterLeft) return 10416; else return 10418; else if (Shape == Shape::Straight) return 10420; else if (Shape == Shape::InnerLeft) return 10422; else if (Shape == Shape::InnerRight) return 10424; else if (Shape == Shape::OuterLeft) return 10426; else return 10428; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10430; else if (Shape == Shape::InnerLeft) return 10432; else if (Shape == Shape::InnerRight) return 10434; else if (Shape == Shape::OuterLeft) return 10436; else return 10438; else if (Shape == Shape::Straight) return 10440; else if (Shape == Shape::InnerLeft) return 10442; else if (Shape == Shape::InnerRight) return 10444; else if (Shape == Shape::OuterLeft) return 10446; else return 10448; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10450; else if (Shape == Shape::InnerLeft) return 10452; else if (Shape == Shape::InnerRight) return 10454; else if (Shape == Shape::OuterLeft) return 10456; else return 10458; else if (Shape == Shape::Straight) return 10460; else if (Shape == Shape::InnerLeft) return 10462; else if (Shape == Shape::InnerRight) return 10464; else if (Shape == Shape::OuterLeft) return 10466; else return 10468; } BlockState GraniteStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace GraniteWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState GraniteWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 12166; else if (West == West::Low) return 12167; else return 12168; else if (West == West::None) return 12172; else if (West == West::Low) return 12173; else return 12174; else if (South == South::Low) if (Up) if (West == West::None) return 12178; else if (West == West::Low) return 12179; else return 12180; else if (West == West::None) return 12184; else if (West == West::Low) return 12185; else return 12186; else if (Up) if (West == West::None) return 12190; else if (West == West::Low) return 12191; else return 12192; else if (West == West::None) return 12196; else if (West == West::Low) return 12197; else return 12198; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 12202; else if (West == West::Low) return 12203; else return 12204; else if (West == West::None) return 12208; else if (West == West::Low) return 12209; else return 12210; else if (South == South::Low) if (Up) if (West == West::None) return 12214; else if (West == West::Low) return 12215; else return 12216; else if (West == West::None) return 12220; else if (West == West::Low) return 12221; else return 12222; else if (Up) if (West == West::None) return 12226; else if (West == West::Low) return 12227; else return 12228; else if (West == West::None) return 12232; else if (West == West::Low) return 12233; else return 12234; else if (South == South::None) if (Up) if (West == West::None) return 12238; else if (West == West::Low) return 12239; else return 12240; else if (West == West::None) return 12244; else if (West == West::Low) return 12245; else return 12246; else if (South == South::Low) if (Up) if (West == West::None) return 12250; else if (West == West::Low) return 12251; else return 12252; else if (West == West::None) return 12256; else if (West == West::Low) return 12257; else return 12258; else if (Up) if (West == West::None) return 12262; else if (West == West::Low) return 12263; else return 12264; else if (West == West::None) return 12268; else if (West == West::Low) return 12269; else return 12270; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 12274; else if (West == West::Low) return 12275; else return 12276; else if (West == West::None) return 12280; else if (West == West::Low) return 12281; else return 12282; else if (South == South::Low) if (Up) if (West == West::None) return 12286; else if (West == West::Low) return 12287; else return 12288; else if (West == West::None) return 12292; else if (West == West::Low) return 12293; else return 12294; else if (Up) if (West == West::None) return 12298; else if (West == West::Low) return 12299; else return 12300; else if (West == West::None) return 12304; else if (West == West::Low) return 12305; else return 12306; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 12310; else if (West == West::Low) return 12311; else return 12312; else if (West == West::None) return 12316; else if (West == West::Low) return 12317; else return 12318; else if (South == South::Low) if (Up) if (West == West::None) return 12322; else if (West == West::Low) return 12323; else return 12324; else if (West == West::None) return 12328; else if (West == West::Low) return 12329; else return 12330; else if (Up) if (West == West::None) return 12334; else if (West == West::Low) return 12335; else return 12336; else if (West == West::None) return 12340; else if (West == West::Low) return 12341; else return 12342; else if (South == South::None) if (Up) if (West == West::None) return 12346; else if (West == West::Low) return 12347; else return 12348; else if (West == West::None) return 12352; else if (West == West::Low) return 12353; else return 12354; else if (South == South::Low) if (Up) if (West == West::None) return 12358; else if (West == West::Low) return 12359; else return 12360; else if (West == West::None) return 12364; else if (West == West::Low) return 12365; else return 12366; else if (Up) if (West == West::None) return 12370; else if (West == West::Low) return 12371; else return 12372; else if (West == West::None) return 12376; else if (West == West::Low) return 12377; else return 12378; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 12382; else if (West == West::Low) return 12383; else return 12384; else if (West == West::None) return 12388; else if (West == West::Low) return 12389; else return 12390; else if (South == South::Low) if (Up) if (West == West::None) return 12394; else if (West == West::Low) return 12395; else return 12396; else if (West == West::None) return 12400; else if (West == West::Low) return 12401; else return 12402; else if (Up) if (West == West::None) return 12406; else if (West == West::Low) return 12407; else return 12408; else if (West == West::None) return 12412; else if (West == West::Low) return 12413; else return 12414; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 12418; else if (West == West::Low) return 12419; else return 12420; else if (West == West::None) return 12424; else if (West == West::Low) return 12425; else return 12426; else if (South == South::Low) if (Up) if (West == West::None) return 12430; else if (West == West::Low) return 12431; else return 12432; else if (West == West::None) return 12436; else if (West == West::Low) return 12437; else return 12438; else if (Up) if (West == West::None) return 12442; else if (West == West::Low) return 12443; else return 12444; else if (West == West::None) return 12448; else if (West == West::Low) return 12449; else return 12450; else if (South == South::None) if (Up) if (West == West::None) return 12454; else if (West == West::Low) return 12455; else return 12456; else if (West == West::None) return 12460; else if (West == West::Low) return 12461; else return 12462; else if (South == South::Low) if (Up) if (West == West::None) return 12466; else if (West == West::Low) return 12467; else return 12468; else if (West == West::None) return 12472; else if (West == West::Low) return 12473; else return 12474; else if (Up) if (West == West::None) return 12478; else if (West == West::Low) return 12479; else return 12480; else if (West == West::None) return 12484; else if (West == West::Low) return 12485; else return 12486; } BlockState GraniteWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace Grass { constexpr BlockState Grass() { return 1342; } } namespace GrassBlock { constexpr BlockState GrassBlock(const bool Snowy) { if (Snowy) return 8; else return 9; } BlockState GrassBlock(); bool Snowy(BlockState Block); } namespace GrassPath { constexpr BlockState GrassPath() { return 9223; } } namespace Gravel { constexpr BlockState Gravel() { return 68; } } namespace GrayBanner { constexpr BlockState GrayBanner(const unsigned char Rotation) { if (Rotation == 0) return 8009; else if (Rotation == 1) return 8010; else if (Rotation == 2) return 8011; else if (Rotation == 3) return 8012; else if (Rotation == 4) return 8013; else if (Rotation == 5) return 8014; else if (Rotation == 6) return 8015; else if (Rotation == 7) return 8016; else if (Rotation == 8) return 8017; else if (Rotation == 9) return 8018; else if (Rotation == 10) return 8019; else if (Rotation == 11) return 8020; else if (Rotation == 12) return 8021; else if (Rotation == 13) return 8022; else if (Rotation == 14) return 8023; else return 8024; } BlockState GrayBanner(); unsigned char Rotation(BlockState Block); } namespace GrayBed { enum class Part { Head, Foot }; constexpr BlockState GrayBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1161; else return 1162; else if (Part == Part::Head) return 1163; else return 1164; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1165; else return 1166; else if (Part == Part::Head) return 1167; else return 1168; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1169; else return 1170; else if (Part == Part::Head) return 1171; else return 1172; else if (Occupied) if (Part == Part::Head) return 1173; else return 1174; else if (Part == Part::Head) return 1175; else return 1176; } BlockState GrayBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace GrayCarpet { constexpr BlockState GrayCarpet() { return 7873; } } namespace GrayConcrete { constexpr BlockState GrayConcrete() { return 9445; } } namespace GrayConcretePowder { constexpr BlockState GrayConcretePowder() { return 9461; } } namespace GrayGlazedTerracotta { constexpr BlockState GrayGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9402; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9403; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9404; else return 9405; } BlockState GrayGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace GrayShulkerBox { constexpr BlockState GrayShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9320; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9321; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9322; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9323; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9324; else return 9325; } BlockState GrayShulkerBox(); eBlockFace Facing(BlockState Block); } namespace GrayStainedGlass { constexpr BlockState GrayStainedGlass() { return 4102; } } namespace GrayStainedGlassPane { constexpr BlockState GrayStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7089; else return 7090; else if (West) return 7093; else return 7094; else if (South) if (West) return 7097; else return 7098; else if (West) return 7101; else return 7102; else if (North) if (South) if (West) return 7105; else return 7106; else if (West) return 7109; else return 7110; else if (South) if (West) return 7113; else return 7114; else if (West) return 7117; else return 7118; } BlockState GrayStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace GrayTerracotta { constexpr BlockState GrayTerracotta() { return 6854; } } namespace GrayWallBanner { constexpr BlockState GrayWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8181; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8182; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8183; else return 8184; } BlockState GrayWallBanner(); eBlockFace Facing(BlockState Block); } namespace GrayWool { constexpr BlockState GrayWool() { return 1391; } } namespace GreenBanner { constexpr BlockState GreenBanner(const unsigned char Rotation) { if (Rotation == 0) return 8105; else if (Rotation == 1) return 8106; else if (Rotation == 2) return 8107; else if (Rotation == 3) return 8108; else if (Rotation == 4) return 8109; else if (Rotation == 5) return 8110; else if (Rotation == 6) return 8111; else if (Rotation == 7) return 8112; else if (Rotation == 8) return 8113; else if (Rotation == 9) return 8114; else if (Rotation == 10) return 8115; else if (Rotation == 11) return 8116; else if (Rotation == 12) return 8117; else if (Rotation == 13) return 8118; else if (Rotation == 14) return 8119; else return 8120; } BlockState GreenBanner(); unsigned char Rotation(BlockState Block); } namespace GreenBed { enum class Part { Head, Foot }; constexpr BlockState GreenBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1257; else return 1258; else if (Part == Part::Head) return 1259; else return 1260; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1261; else return 1262; else if (Part == Part::Head) return 1263; else return 1264; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1265; else return 1266; else if (Part == Part::Head) return 1267; else return 1268; else if (Occupied) if (Part == Part::Head) return 1269; else return 1270; else if (Part == Part::Head) return 1271; else return 1272; } BlockState GreenBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace GreenCarpet { constexpr BlockState GreenCarpet() { return 7879; } } namespace GreenConcrete { constexpr BlockState GreenConcrete() { return 9451; } } namespace GreenConcretePowder { constexpr BlockState GreenConcretePowder() { return 9467; } } namespace GreenGlazedTerracotta { constexpr BlockState GreenGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9426; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9427; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9428; else return 9429; } BlockState GreenGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace GreenShulkerBox { constexpr BlockState GreenShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9356; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9357; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9358; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9359; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9360; else return 9361; } BlockState GreenShulkerBox(); eBlockFace Facing(BlockState Block); } namespace GreenStainedGlass { constexpr BlockState GreenStainedGlass() { return 4108; } } namespace GreenStainedGlassPane { constexpr BlockState GreenStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7281; else return 7282; else if (West) return 7285; else return 7286; else if (South) if (West) return 7289; else return 7290; else if (West) return 7293; else return 7294; else if (North) if (South) if (West) return 7297; else return 7298; else if (West) return 7301; else return 7302; else if (South) if (West) return 7305; else return 7306; else if (West) return 7309; else return 7310; } BlockState GreenStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace GreenTerracotta { constexpr BlockState GreenTerracotta() { return 6860; } } namespace GreenWallBanner { constexpr BlockState GreenWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8205; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8206; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8207; else return 8208; } BlockState GreenWallBanner(); eBlockFace Facing(BlockState Block); } namespace GreenWool { constexpr BlockState GreenWool() { return 1397; } } namespace Grindstone { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState Grindstone(const enum Face Face, const eBlockFace Facing) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14821; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14822; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14823; else return 14824; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14825; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14826; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14827; else return 14828; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14829; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14830; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14831; else return 14832; } BlockState Grindstone(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); } namespace HayBale { enum class Axis { X, Y, Z }; constexpr BlockState HayBale(const enum Axis Axis) { if (Axis == Axis::X) return 7863; else if (Axis == Axis::Y) return 7864; else return 7865; } BlockState HayBale(); enum Axis Axis(BlockState Block); } namespace HeavyWeightedPressurePlate { constexpr BlockState HeavyWeightedPressurePlate(const unsigned char Power) { if (Power == 0) return 6662; else if (Power == 1) return 6663; else if (Power == 2) return 6664; else if (Power == 3) return 6665; else if (Power == 4) return 6666; else if (Power == 5) return 6667; else if (Power == 6) return 6668; else if (Power == 7) return 6669; else if (Power == 8) return 6670; else if (Power == 9) return 6671; else if (Power == 10) return 6672; else if (Power == 11) return 6673; else if (Power == 12) return 6674; else if (Power == 13) return 6675; else if (Power == 14) return 6676; else return 6677; } BlockState HeavyWeightedPressurePlate(); unsigned char Power(BlockState Block); } namespace HoneyBlock { constexpr BlockState HoneyBlock() { return 15824; } } namespace HoneycombBlock { constexpr BlockState HoneycombBlock() { return 15825; } } namespace Hopper { constexpr BlockState Hopper(const bool Enabled, const eBlockFace Facing) { if (Enabled) if (Facing == eBlockFace::BLOCK_FACE_YM) return 6728; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6729; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6730; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6731; else return 6732; else if (Facing == eBlockFace::BLOCK_FACE_YM) return 6733; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6734; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6735; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6736; else return 6737; } BlockState Hopper(); bool Enabled(BlockState Block); eBlockFace Facing(BlockState Block); } namespace HornCoral { constexpr BlockState HornCoral() { return 9539; } } namespace HornCoralBlock { constexpr BlockState HornCoralBlock() { return 9519; } } namespace HornCoralFan { constexpr BlockState HornCoralFan() { return 9559; } } namespace HornCoralWallFan { constexpr BlockState HornCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9633; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9635; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9637; else return 9639; } BlockState HornCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace Ice { constexpr BlockState Ice() { return 3929; } } namespace InfestedChiseledStoneBricks { constexpr BlockState InfestedChiseledStoneBricks() { return 4504; } } namespace InfestedCobblestone { constexpr BlockState InfestedCobblestone() { return 4500; } } namespace InfestedCrackedStoneBricks { constexpr BlockState InfestedCrackedStoneBricks() { return 4503; } } namespace InfestedMossyStoneBricks { constexpr BlockState InfestedMossyStoneBricks() { return 4502; } } namespace InfestedStone { constexpr BlockState InfestedStone() { return 4499; } } namespace InfestedStoneBricks { constexpr BlockState InfestedStoneBricks() { return 4501; } } namespace IronBars { constexpr BlockState IronBars(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 4699; else return 4700; else if (West) return 4703; else return 4704; else if (South) if (West) return 4707; else return 4708; else if (West) return 4711; else return 4712; else if (North) if (South) if (West) return 4715; else return 4716; else if (West) return 4719; else return 4720; else if (South) if (West) return 4723; else return 4724; else if (West) return 4727; else return 4728; } BlockState IronBars(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace IronBlock { constexpr BlockState IronBlock() { return 1428; } } namespace IronDoor { enum class Half { Upper, Lower }; enum class Hinge { Left, Right }; constexpr BlockState IronDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 3809; else return 3810; else if (Powered) return 3811; else return 3812; else if (Open) if (Powered) return 3813; else return 3814; else if (Powered) return 3815; else return 3816; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 3817; else return 3818; else if (Powered) return 3819; else return 3820; else if (Open) if (Powered) return 3821; else return 3822; else if (Powered) return 3823; else return 3824; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 3825; else return 3826; else if (Powered) return 3827; else return 3828; else if (Open) if (Powered) return 3829; else return 3830; else if (Powered) return 3831; else return 3832; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 3833; else return 3834; else if (Powered) return 3835; else return 3836; else if (Open) if (Powered) return 3837; else return 3838; else if (Powered) return 3839; else return 3840; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 3841; else return 3842; else if (Powered) return 3843; else return 3844; else if (Open) if (Powered) return 3845; else return 3846; else if (Powered) return 3847; else return 3848; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 3849; else return 3850; else if (Powered) return 3851; else return 3852; else if (Open) if (Powered) return 3853; else return 3854; else if (Powered) return 3855; else return 3856; else if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 3857; else return 3858; else if (Powered) return 3859; else return 3860; else if (Open) if (Powered) return 3861; else return 3862; else if (Powered) return 3863; else return 3864; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 3865; else return 3866; else if (Powered) return 3867; else return 3868; else if (Open) if (Powered) return 3869; else return 3870; else if (Powered) return 3871; else return 3872; } BlockState IronDoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Hinge Hinge(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace IronOre { constexpr BlockState IronOre() { return 70; } } namespace IronTrapdoor { enum class Half { Top, Bottom }; constexpr BlockState IronTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Open) if (Powered) return 7538; else return 7540; else if (Powered) return 7542; else return 7544; else if (Open) if (Powered) return 7546; else return 7548; else if (Powered) return 7550; else return 7552; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Open) if (Powered) return 7554; else return 7556; else if (Powered) return 7558; else return 7560; else if (Open) if (Powered) return 7562; else return 7564; else if (Powered) return 7566; else return 7568; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Open) if (Powered) return 7570; else return 7572; else if (Powered) return 7574; else return 7576; else if (Open) if (Powered) return 7578; else return 7580; else if (Powered) return 7582; else return 7584; else if (Half == Half::Top) if (Open) if (Powered) return 7586; else return 7588; else if (Powered) return 7590; else return 7592; else if (Open) if (Powered) return 7594; else return 7596; else if (Powered) return 7598; else return 7600; } BlockState IronTrapdoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace JackOLantern { constexpr BlockState JackOLantern(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4020; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4021; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4022; else return 4023; } BlockState JackOLantern(); eBlockFace Facing(BlockState Block); } namespace Jigsaw { enum class Orientation { DownEast, DownNorth, DownSouth, DownWest, UpEast, UpNorth, UpSouth, UpWest, WestUp, EastUp, NorthUp, SouthUp }; constexpr BlockState Jigsaw(const enum Orientation Orientation) { if (Orientation == Orientation::DownEast) return 15739; else if (Orientation == Orientation::DownNorth) return 15740; else if (Orientation == Orientation::DownSouth) return 15741; else if (Orientation == Orientation::DownWest) return 15742; else if (Orientation == Orientation::UpEast) return 15743; else if (Orientation == Orientation::UpNorth) return 15744; else if (Orientation == Orientation::UpSouth) return 15745; else if (Orientation == Orientation::UpWest) return 15746; else if (Orientation == Orientation::WestUp) return 15747; else if (Orientation == Orientation::EastUp) return 15748; else if (Orientation == Orientation::NorthUp) return 15749; else return 15750; } BlockState Jigsaw(); enum Orientation Orientation(BlockState Block); } namespace Jukebox { constexpr BlockState Jukebox(const bool HasRecord) { if (HasRecord) return 3964; else return 3965; } BlockState Jukebox(); bool HasRecord(BlockState Block); } namespace JungleButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState JungleButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6418; else return 6419; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6420; else return 6421; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6422; else return 6423; else if (Powered) return 6424; else return 6425; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6426; else return 6427; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6428; else return 6429; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6430; else return 6431; else if (Powered) return 6432; else return 6433; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6434; else return 6435; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6436; else return 6437; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6438; else return 6439; else if (Powered) return 6440; else return 6441; } BlockState JungleButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace JungleDoor { enum class Half { Upper, Lower }; enum class Hinge { Left, Right }; constexpr BlockState JungleDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8866; else return 8867; else if (Powered) return 8868; else return 8869; else if (Open) if (Powered) return 8870; else return 8871; else if (Powered) return 8872; else return 8873; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8874; else return 8875; else if (Powered) return 8876; else return 8877; else if (Open) if (Powered) return 8878; else return 8879; else if (Powered) return 8880; else return 8881; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8882; else return 8883; else if (Powered) return 8884; else return 8885; else if (Open) if (Powered) return 8886; else return 8887; else if (Powered) return 8888; else return 8889; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8890; else return 8891; else if (Powered) return 8892; else return 8893; else if (Open) if (Powered) return 8894; else return 8895; else if (Powered) return 8896; else return 8897; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8898; else return 8899; else if (Powered) return 8900; else return 8901; else if (Open) if (Powered) return 8902; else return 8903; else if (Powered) return 8904; else return 8905; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8906; else return 8907; else if (Powered) return 8908; else return 8909; else if (Open) if (Powered) return 8910; else return 8911; else if (Powered) return 8912; else return 8913; else if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8914; else return 8915; else if (Powered) return 8916; else return 8917; else if (Open) if (Powered) return 8918; else return 8919; else if (Powered) return 8920; else return 8921; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8922; else return 8923; else if (Powered) return 8924; else return 8925; else if (Open) if (Powered) return 8926; else return 8927; else if (Powered) return 8928; else return 8929; } BlockState JungleDoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Hinge Hinge(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace JungleFence { constexpr BlockState JungleFence(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 8644; else return 8645; else if (West) return 8648; else return 8649; else if (South) if (West) return 8652; else return 8653; else if (West) return 8656; else return 8657; else if (North) if (South) if (West) return 8660; else return 8661; else if (West) return 8664; else return 8665; else if (South) if (West) return 8668; else return 8669; else if (West) return 8672; else return 8673; } BlockState JungleFence(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace JungleFenceGate { constexpr BlockState JungleFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (InWall) if (Open) if (Powered) return 8482; else return 8483; else if (Powered) return 8484; else return 8485; else if (Open) if (Powered) return 8486; else return 8487; else if (Powered) return 8488; else return 8489; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (InWall) if (Open) if (Powered) return 8490; else return 8491; else if (Powered) return 8492; else return 8493; else if (Open) if (Powered) return 8494; else return 8495; else if (Powered) return 8496; else return 8497; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (InWall) if (Open) if (Powered) return 8498; else return 8499; else if (Powered) return 8500; else return 8501; else if (Open) if (Powered) return 8502; else return 8503; else if (Powered) return 8504; else return 8505; else if (InWall) if (Open) if (Powered) return 8506; else return 8507; else if (Powered) return 8508; else return 8509; else if (Open) if (Powered) return 8510; else return 8511; else if (Powered) return 8512; else return 8513; } BlockState JungleFenceGate(); eBlockFace Facing(BlockState Block); bool InWall(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace JungleLeaves { constexpr BlockState JungleLeaves(const unsigned char Distance, const bool Persistent) { if (Distance == 1) if (Persistent) return 187; else return 188; else if (Distance == 2) if (Persistent) return 189; else return 190; else if (Distance == 3) if (Persistent) return 191; else return 192; else if (Distance == 4) if (Persistent) return 193; else return 194; else if (Distance == 5) if (Persistent) return 195; else return 196; else if (Distance == 6) if (Persistent) return 197; else return 198; else if (Persistent) return 199; else return 200; } BlockState JungleLeaves(); unsigned char Distance(BlockState Block); bool Persistent(BlockState Block); } namespace JungleLog { enum class Axis { X, Y, Z }; constexpr BlockState JungleLog(const enum Axis Axis) { if (Axis == Axis::X) return 82; else if (Axis == Axis::Y) return 83; else return 84; } BlockState JungleLog(); enum Axis Axis(BlockState Block); } namespace JunglePlanks { constexpr BlockState JunglePlanks() { return 18; } } namespace JunglePressurePlate { constexpr BlockState JunglePressurePlate(const bool Powered) { if (Powered) return 3879; else return 3880; } BlockState JunglePressurePlate(); bool Powered(BlockState Block); } namespace JungleSapling { constexpr BlockState JungleSapling(const unsigned char Stage) { if (Stage == 0) return 27; else return 28; } BlockState JungleSapling(); unsigned char Stage(BlockState Block); } namespace JungleSign { constexpr BlockState JungleSign(const unsigned char Rotation) { if (Rotation == 0) return 3510; else if (Rotation == 1) return 3512; else if (Rotation == 2) return 3514; else if (Rotation == 3) return 3516; else if (Rotation == 4) return 3518; else if (Rotation == 5) return 3520; else if (Rotation == 6) return 3522; else if (Rotation == 7) return 3524; else if (Rotation == 8) return 3526; else if (Rotation == 9) return 3528; else if (Rotation == 10) return 3530; else if (Rotation == 11) return 3532; else if (Rotation == 12) return 3534; else if (Rotation == 13) return 3536; else if (Rotation == 14) return 3538; else return 3540; } BlockState JungleSign(); unsigned char Rotation(BlockState Block); } namespace JungleSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState JungleSlab(const enum Type Type) { if (Type == Type::Top) return 8319; else if (Type == Type::Bottom) return 8321; else return 8323; } BlockState JungleSlab(); enum Type Type(BlockState Block); } namespace JungleStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState JungleStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5565; else if (Shape == Shape::InnerLeft) return 5567; else if (Shape == Shape::InnerRight) return 5569; else if (Shape == Shape::OuterLeft) return 5571; else return 5573; else if (Shape == Shape::Straight) return 5575; else if (Shape == Shape::InnerLeft) return 5577; else if (Shape == Shape::InnerRight) return 5579; else if (Shape == Shape::OuterLeft) return 5581; else return 5583; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 5585; else if (Shape == Shape::InnerLeft) return 5587; else if (Shape == Shape::InnerRight) return 5589; else if (Shape == Shape::OuterLeft) return 5591; else return 5593; else if (Shape == Shape::Straight) return 5595; else if (Shape == Shape::InnerLeft) return 5597; else if (Shape == Shape::InnerRight) return 5599; else if (Shape == Shape::OuterLeft) return 5601; else return 5603; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5605; else if (Shape == Shape::InnerLeft) return 5607; else if (Shape == Shape::InnerRight) return 5609; else if (Shape == Shape::OuterLeft) return 5611; else return 5613; else if (Shape == Shape::Straight) return 5615; else if (Shape == Shape::InnerLeft) return 5617; else if (Shape == Shape::InnerRight) return 5619; else if (Shape == Shape::OuterLeft) return 5621; else return 5623; else if (Half == Half::Top) if (Shape == Shape::Straight) return 5625; else if (Shape == Shape::InnerLeft) return 5627; else if (Shape == Shape::InnerRight) return 5629; else if (Shape == Shape::OuterLeft) return 5631; else return 5633; else if (Shape == Shape::Straight) return 5635; else if (Shape == Shape::InnerLeft) return 5637; else if (Shape == Shape::InnerRight) return 5639; else if (Shape == Shape::OuterLeft) return 5641; else return 5643; } BlockState JungleStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace JungleTrapdoor { enum class Half { Top, Bottom }; constexpr BlockState JungleTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Open) if (Powered) return 4304; else return 4306; else if (Powered) return 4308; else return 4310; else if (Open) if (Powered) return 4312; else return 4314; else if (Powered) return 4316; else return 4318; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Open) if (Powered) return 4320; else return 4322; else if (Powered) return 4324; else return 4326; else if (Open) if (Powered) return 4328; else return 4330; else if (Powered) return 4332; else return 4334; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Open) if (Powered) return 4336; else return 4338; else if (Powered) return 4340; else return 4342; else if (Open) if (Powered) return 4344; else return 4346; else if (Powered) return 4348; else return 4350; else if (Half == Half::Top) if (Open) if (Powered) return 4352; else return 4354; else if (Powered) return 4356; else return 4358; else if (Open) if (Powered) return 4360; else return 4362; else if (Powered) return 4364; else return 4366; } BlockState JungleTrapdoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace JungleWallSign { constexpr BlockState JungleWallSign(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3768; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3770; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3772; else return 3774; } BlockState JungleWallSign(); eBlockFace Facing(BlockState Block); } namespace JungleWood { enum class Axis { X, Y, Z }; constexpr BlockState JungleWood(const enum Axis Axis) { if (Axis == Axis::X) return 118; else if (Axis == Axis::Y) return 119; else return 120; } BlockState JungleWood(); enum Axis Axis(BlockState Block); } namespace Kelp { constexpr BlockState Kelp(const unsigned char Age) { if (Age == 0) return 9470; else if (Age == 1) return 9471; else if (Age == 2) return 9472; else if (Age == 3) return 9473; else if (Age == 4) return 9474; else if (Age == 5) return 9475; else if (Age == 6) return 9476; else if (Age == 7) return 9477; else if (Age == 8) return 9478; else if (Age == 9) return 9479; else if (Age == 10) return 9480; else if (Age == 11) return 9481; else if (Age == 12) return 9482; else if (Age == 13) return 9483; else if (Age == 14) return 9484; else if (Age == 15) return 9485; else if (Age == 16) return 9486; else if (Age == 17) return 9487; else if (Age == 18) return 9488; else if (Age == 19) return 9489; else if (Age == 20) return 9490; else if (Age == 21) return 9491; else if (Age == 22) return 9492; else if (Age == 23) return 9493; else if (Age == 24) return 9494; else return 9495; } BlockState Kelp(); unsigned char Age(BlockState Block); } namespace KelpPlant { constexpr BlockState KelpPlant() { return 9496; } } namespace Ladder { constexpr BlockState Ladder(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3638; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3640; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3642; else return 3644; } BlockState Ladder(); eBlockFace Facing(BlockState Block); } namespace Lantern { constexpr BlockState Lantern(const bool Hanging) { if (Hanging) return 14886; else return 14887; } BlockState Lantern(); bool Hanging(BlockState Block); } namespace LapisBlock { constexpr BlockState LapisBlock() { return 233; } } namespace LapisOre { constexpr BlockState LapisOre() { return 232; } } namespace LargeFern { enum class Half { Upper, Lower }; constexpr BlockState LargeFern(const enum Half Half) { if (Half == Half::Upper) return 7895; else return 7896; } BlockState LargeFern(); enum Half Half(BlockState Block); } namespace Lava { constexpr BlockState Lava(const unsigned char Level) { if (Level == 0) return 50; else if (Level == 1) return 51; else if (Level == 2) return 52; else if (Level == 3) return 53; else if (Level == 4) return 54; else if (Level == 5) return 55; else if (Level == 6) return 56; else if (Level == 7) return 57; else if (Level == 8) return 58; else if (Level == 9) return 59; else if (Level == 10) return 60; else if (Level == 11) return 61; else if (Level == 12) return 62; else if (Level == 13) return 63; else if (Level == 14) return 64; else return 65; } BlockState Lava(); unsigned char Level(BlockState Block); } namespace Lectern { constexpr BlockState Lectern(const eBlockFace Facing, const bool HasBook, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (HasBook) if (Powered) return 14833; else return 14834; else if (Powered) return 14835; else return 14836; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (HasBook) if (Powered) return 14837; else return 14838; else if (Powered) return 14839; else return 14840; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (HasBook) if (Powered) return 14841; else return 14842; else if (Powered) return 14843; else return 14844; else if (HasBook) if (Powered) return 14845; else return 14846; else if (Powered) return 14847; else return 14848; } BlockState Lectern(); eBlockFace Facing(BlockState Block); bool HasBook(BlockState Block); bool Powered(BlockState Block); } namespace Lever { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState Lever(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 3783; else return 3784; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 3785; else return 3786; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 3787; else return 3788; else if (Powered) return 3789; else return 3790; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 3791; else return 3792; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 3793; else return 3794; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 3795; else return 3796; else if (Powered) return 3797; else return 3798; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 3799; else return 3800; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 3801; else return 3802; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 3803; else return 3804; else if (Powered) return 3805; else return 3806; } BlockState Lever(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace LightBlueBanner { constexpr BlockState LightBlueBanner(const unsigned char Rotation) { if (Rotation == 0) return 7945; else if (Rotation == 1) return 7946; else if (Rotation == 2) return 7947; else if (Rotation == 3) return 7948; else if (Rotation == 4) return 7949; else if (Rotation == 5) return 7950; else if (Rotation == 6) return 7951; else if (Rotation == 7) return 7952; else if (Rotation == 8) return 7953; else if (Rotation == 9) return 7954; else if (Rotation == 10) return 7955; else if (Rotation == 11) return 7956; else if (Rotation == 12) return 7957; else if (Rotation == 13) return 7958; else if (Rotation == 14) return 7959; else return 7960; } BlockState LightBlueBanner(); unsigned char Rotation(BlockState Block); } namespace LightBlueBed { enum class Part { Head, Foot }; constexpr BlockState LightBlueBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1097; else return 1098; else if (Part == Part::Head) return 1099; else return 1100; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1101; else return 1102; else if (Part == Part::Head) return 1103; else return 1104; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1105; else return 1106; else if (Part == Part::Head) return 1107; else return 1108; else if (Occupied) if (Part == Part::Head) return 1109; else return 1110; else if (Part == Part::Head) return 1111; else return 1112; } BlockState LightBlueBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace LightBlueCarpet { constexpr BlockState LightBlueCarpet() { return 7869; } } namespace LightBlueConcrete { constexpr BlockState LightBlueConcrete() { return 9441; } } namespace LightBlueConcretePowder { constexpr BlockState LightBlueConcretePowder() { return 9457; } } namespace LightBlueGlazedTerracotta { constexpr BlockState LightBlueGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9386; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9387; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9388; else return 9389; } BlockState LightBlueGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace LightBlueShulkerBox { constexpr BlockState LightBlueShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9296; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9297; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9298; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9299; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9300; else return 9301; } BlockState LightBlueShulkerBox(); eBlockFace Facing(BlockState Block); } namespace LightBlueStainedGlass { constexpr BlockState LightBlueStainedGlass() { return 4098; } } namespace LightBlueStainedGlassPane { constexpr BlockState LightBlueStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 6961; else return 6962; else if (West) return 6965; else return 6966; else if (South) if (West) return 6969; else return 6970; else if (West) return 6973; else return 6974; else if (North) if (South) if (West) return 6977; else return 6978; else if (West) return 6981; else return 6982; else if (South) if (West) return 6985; else return 6986; else if (West) return 6989; else return 6990; } BlockState LightBlueStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace LightBlueTerracotta { constexpr BlockState LightBlueTerracotta() { return 6850; } } namespace LightBlueWallBanner { constexpr BlockState LightBlueWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8165; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8166; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8167; else return 8168; } BlockState LightBlueWallBanner(); eBlockFace Facing(BlockState Block); } namespace LightBlueWool { constexpr BlockState LightBlueWool() { return 1387; } } namespace LightGrayBanner { constexpr BlockState LightGrayBanner(const unsigned char Rotation) { if (Rotation == 0) return 8025; else if (Rotation == 1) return 8026; else if (Rotation == 2) return 8027; else if (Rotation == 3) return 8028; else if (Rotation == 4) return 8029; else if (Rotation == 5) return 8030; else if (Rotation == 6) return 8031; else if (Rotation == 7) return 8032; else if (Rotation == 8) return 8033; else if (Rotation == 9) return 8034; else if (Rotation == 10) return 8035; else if (Rotation == 11) return 8036; else if (Rotation == 12) return 8037; else if (Rotation == 13) return 8038; else if (Rotation == 14) return 8039; else return 8040; } BlockState LightGrayBanner(); unsigned char Rotation(BlockState Block); } namespace LightGrayBed { enum class Part { Head, Foot }; constexpr BlockState LightGrayBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1177; else return 1178; else if (Part == Part::Head) return 1179; else return 1180; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1181; else return 1182; else if (Part == Part::Head) return 1183; else return 1184; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1185; else return 1186; else if (Part == Part::Head) return 1187; else return 1188; else if (Occupied) if (Part == Part::Head) return 1189; else return 1190; else if (Part == Part::Head) return 1191; else return 1192; } BlockState LightGrayBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace LightGrayCarpet { constexpr BlockState LightGrayCarpet() { return 7874; } } namespace LightGrayConcrete { constexpr BlockState LightGrayConcrete() { return 9446; } } namespace LightGrayConcretePowder { constexpr BlockState LightGrayConcretePowder() { return 9462; } } namespace LightGrayGlazedTerracotta { constexpr BlockState LightGrayGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9406; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9407; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9408; else return 9409; } BlockState LightGrayGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace LightGrayShulkerBox { constexpr BlockState LightGrayShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9326; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9327; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9328; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9329; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9330; else return 9331; } BlockState LightGrayShulkerBox(); eBlockFace Facing(BlockState Block); } namespace LightGrayStainedGlass { constexpr BlockState LightGrayStainedGlass() { return 4103; } } namespace LightGrayStainedGlassPane { constexpr BlockState LightGrayStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7121; else return 7122; else if (West) return 7125; else return 7126; else if (South) if (West) return 7129; else return 7130; else if (West) return 7133; else return 7134; else if (North) if (South) if (West) return 7137; else return 7138; else if (West) return 7141; else return 7142; else if (South) if (West) return 7145; else return 7146; else if (West) return 7149; else return 7150; } BlockState LightGrayStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace LightGrayTerracotta { constexpr BlockState LightGrayTerracotta() { return 6855; } } namespace LightGrayWallBanner { constexpr BlockState LightGrayWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8185; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8186; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8187; else return 8188; } BlockState LightGrayWallBanner(); eBlockFace Facing(BlockState Block); } namespace LightGrayWool { constexpr BlockState LightGrayWool() { return 1392; } } namespace LightWeightedPressurePlate { constexpr BlockState LightWeightedPressurePlate(const unsigned char Power) { if (Power == 0) return 6646; else if (Power == 1) return 6647; else if (Power == 2) return 6648; else if (Power == 3) return 6649; else if (Power == 4) return 6650; else if (Power == 5) return 6651; else if (Power == 6) return 6652; else if (Power == 7) return 6653; else if (Power == 8) return 6654; else if (Power == 9) return 6655; else if (Power == 10) return 6656; else if (Power == 11) return 6657; else if (Power == 12) return 6658; else if (Power == 13) return 6659; else if (Power == 14) return 6660; else return 6661; } BlockState LightWeightedPressurePlate(); unsigned char Power(BlockState Block); } namespace Lilac { enum class Half { Upper, Lower }; constexpr BlockState Lilac(const enum Half Half) { if (Half == Half::Upper) return 7887; else return 7888; } BlockState Lilac(); enum Half Half(BlockState Block); } namespace LilyOfTheValley { constexpr BlockState LilyOfTheValley() { return 1424; } } namespace LilyPad { constexpr BlockState LilyPad() { return 5014; } } namespace LimeBanner { constexpr BlockState LimeBanner(const unsigned char Rotation) { if (Rotation == 0) return 7977; else if (Rotation == 1) return 7978; else if (Rotation == 2) return 7979; else if (Rotation == 3) return 7980; else if (Rotation == 4) return 7981; else if (Rotation == 5) return 7982; else if (Rotation == 6) return 7983; else if (Rotation == 7) return 7984; else if (Rotation == 8) return 7985; else if (Rotation == 9) return 7986; else if (Rotation == 10) return 7987; else if (Rotation == 11) return 7988; else if (Rotation == 12) return 7989; else if (Rotation == 13) return 7990; else if (Rotation == 14) return 7991; else return 7992; } BlockState LimeBanner(); unsigned char Rotation(BlockState Block); } namespace LimeBed { enum class Part { Head, Foot }; constexpr BlockState LimeBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1129; else return 1130; else if (Part == Part::Head) return 1131; else return 1132; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1133; else return 1134; else if (Part == Part::Head) return 1135; else return 1136; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1137; else return 1138; else if (Part == Part::Head) return 1139; else return 1140; else if (Occupied) if (Part == Part::Head) return 1141; else return 1142; else if (Part == Part::Head) return 1143; else return 1144; } BlockState LimeBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace LimeCarpet { constexpr BlockState LimeCarpet() { return 7871; } } namespace LimeConcrete { constexpr BlockState LimeConcrete() { return 9443; } } namespace LimeConcretePowder { constexpr BlockState LimeConcretePowder() { return 9459; } } namespace LimeGlazedTerracotta { constexpr BlockState LimeGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9394; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9395; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9396; else return 9397; } BlockState LimeGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace LimeShulkerBox { constexpr BlockState LimeShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9308; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9309; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9310; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9311; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9312; else return 9313; } BlockState LimeShulkerBox(); eBlockFace Facing(BlockState Block); } namespace LimeStainedGlass { constexpr BlockState LimeStainedGlass() { return 4100; } } namespace LimeStainedGlassPane { constexpr BlockState LimeStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7025; else return 7026; else if (West) return 7029; else return 7030; else if (South) if (West) return 7033; else return 7034; else if (West) return 7037; else return 7038; else if (North) if (South) if (West) return 7041; else return 7042; else if (West) return 7045; else return 7046; else if (South) if (West) return 7049; else return 7050; else if (West) return 7053; else return 7054; } BlockState LimeStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace LimeTerracotta { constexpr BlockState LimeTerracotta() { return 6852; } } namespace LimeWallBanner { constexpr BlockState LimeWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8173; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8174; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8175; else return 8176; } BlockState LimeWallBanner(); eBlockFace Facing(BlockState Block); } namespace LimeWool { constexpr BlockState LimeWool() { return 1389; } } namespace Lodestone { constexpr BlockState Lodestone() { return 15838; } } namespace Loom { constexpr BlockState Loom(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14787; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14788; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14789; else return 14790; } BlockState Loom(); eBlockFace Facing(BlockState Block); } namespace MagentaBanner { constexpr BlockState MagentaBanner(const unsigned char Rotation) { if (Rotation == 0) return 7929; else if (Rotation == 1) return 7930; else if (Rotation == 2) return 7931; else if (Rotation == 3) return 7932; else if (Rotation == 4) return 7933; else if (Rotation == 5) return 7934; else if (Rotation == 6) return 7935; else if (Rotation == 7) return 7936; else if (Rotation == 8) return 7937; else if (Rotation == 9) return 7938; else if (Rotation == 10) return 7939; else if (Rotation == 11) return 7940; else if (Rotation == 12) return 7941; else if (Rotation == 13) return 7942; else if (Rotation == 14) return 7943; else return 7944; } BlockState MagentaBanner(); unsigned char Rotation(BlockState Block); } namespace MagentaBed { enum class Part { Head, Foot }; constexpr BlockState MagentaBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1081; else return 1082; else if (Part == Part::Head) return 1083; else return 1084; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1085; else return 1086; else if (Part == Part::Head) return 1087; else return 1088; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1089; else return 1090; else if (Part == Part::Head) return 1091; else return 1092; else if (Occupied) if (Part == Part::Head) return 1093; else return 1094; else if (Part == Part::Head) return 1095; else return 1096; } BlockState MagentaBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace MagentaCarpet { constexpr BlockState MagentaCarpet() { return 7868; } } namespace MagentaConcrete { constexpr BlockState MagentaConcrete() { return 9440; } } namespace MagentaConcretePowder { constexpr BlockState MagentaConcretePowder() { return 9456; } } namespace MagentaGlazedTerracotta { constexpr BlockState MagentaGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9382; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9383; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9384; else return 9385; } BlockState MagentaGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace MagentaShulkerBox { constexpr BlockState MagentaShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9290; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9291; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9292; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9293; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9294; else return 9295; } BlockState MagentaShulkerBox(); eBlockFace Facing(BlockState Block); } namespace MagentaStainedGlass { constexpr BlockState MagentaStainedGlass() { return 4097; } } namespace MagentaStainedGlassPane { constexpr BlockState MagentaStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 6929; else return 6930; else if (West) return 6933; else return 6934; else if (South) if (West) return 6937; else return 6938; else if (West) return 6941; else return 6942; else if (North) if (South) if (West) return 6945; else return 6946; else if (West) return 6949; else return 6950; else if (South) if (West) return 6953; else return 6954; else if (West) return 6957; else return 6958; } BlockState MagentaStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace MagentaTerracotta { constexpr BlockState MagentaTerracotta() { return 6849; } } namespace MagentaWallBanner { constexpr BlockState MagentaWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8161; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8162; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8163; else return 8164; } BlockState MagentaWallBanner(); eBlockFace Facing(BlockState Block); } namespace MagentaWool { constexpr BlockState MagentaWool() { return 1386; } } namespace MagmaBlock { constexpr BlockState MagmaBlock() { return 9253; } } namespace Melon { constexpr BlockState Melon() { return 4763; } } namespace MelonStem { constexpr BlockState MelonStem(const unsigned char Age) { if (Age == 0) return 4780; else if (Age == 1) return 4781; else if (Age == 2) return 4782; else if (Age == 3) return 4783; else if (Age == 4) return 4784; else if (Age == 5) return 4785; else if (Age == 6) return 4786; else return 4787; } BlockState MelonStem(); unsigned char Age(BlockState Block); } namespace MossyCobblestone { constexpr BlockState MossyCobblestone() { return 1433; } } namespace MossyCobblestoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState MossyCobblestoneSlab(const enum Type Type) { if (Type == Type::Top) return 10814; else if (Type == Type::Bottom) return 10816; else return 10818; } BlockState MossyCobblestoneSlab(); enum Type Type(BlockState Block); } namespace MossyCobblestoneStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState MossyCobblestoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9990; else if (Shape == Shape::InnerLeft) return 9992; else if (Shape == Shape::InnerRight) return 9994; else if (Shape == Shape::OuterLeft) return 9996; else return 9998; else if (Shape == Shape::Straight) return 10000; else if (Shape == Shape::InnerLeft) return 10002; else if (Shape == Shape::InnerRight) return 10004; else if (Shape == Shape::OuterLeft) return 10006; else return 10008; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10010; else if (Shape == Shape::InnerLeft) return 10012; else if (Shape == Shape::InnerRight) return 10014; else if (Shape == Shape::OuterLeft) return 10016; else return 10018; else if (Shape == Shape::Straight) return 10020; else if (Shape == Shape::InnerLeft) return 10022; else if (Shape == Shape::InnerRight) return 10024; else if (Shape == Shape::OuterLeft) return 10026; else return 10028; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10030; else if (Shape == Shape::InnerLeft) return 10032; else if (Shape == Shape::InnerRight) return 10034; else if (Shape == Shape::OuterLeft) return 10036; else return 10038; else if (Shape == Shape::Straight) return 10040; else if (Shape == Shape::InnerLeft) return 10042; else if (Shape == Shape::InnerRight) return 10044; else if (Shape == Shape::OuterLeft) return 10046; else return 10048; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10050; else if (Shape == Shape::InnerLeft) return 10052; else if (Shape == Shape::InnerRight) return 10054; else if (Shape == Shape::OuterLeft) return 10056; else return 10058; else if (Shape == Shape::Straight) return 10060; else if (Shape == Shape::InnerLeft) return 10062; else if (Shape == Shape::InnerRight) return 10064; else if (Shape == Shape::OuterLeft) return 10066; else return 10068; } BlockState MossyCobblestoneStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace MossyCobblestoneWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState MossyCobblestoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 5984; else if (West == West::Low) return 5985; else return 5986; else if (West == West::None) return 5990; else if (West == West::Low) return 5991; else return 5992; else if (South == South::Low) if (Up) if (West == West::None) return 5996; else if (West == West::Low) return 5997; else return 5998; else if (West == West::None) return 6002; else if (West == West::Low) return 6003; else return 6004; else if (Up) if (West == West::None) return 6008; else if (West == West::Low) return 6009; else return 6010; else if (West == West::None) return 6014; else if (West == West::Low) return 6015; else return 6016; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 6020; else if (West == West::Low) return 6021; else return 6022; else if (West == West::None) return 6026; else if (West == West::Low) return 6027; else return 6028; else if (South == South::Low) if (Up) if (West == West::None) return 6032; else if (West == West::Low) return 6033; else return 6034; else if (West == West::None) return 6038; else if (West == West::Low) return 6039; else return 6040; else if (Up) if (West == West::None) return 6044; else if (West == West::Low) return 6045; else return 6046; else if (West == West::None) return 6050; else if (West == West::Low) return 6051; else return 6052; else if (South == South::None) if (Up) if (West == West::None) return 6056; else if (West == West::Low) return 6057; else return 6058; else if (West == West::None) return 6062; else if (West == West::Low) return 6063; else return 6064; else if (South == South::Low) if (Up) if (West == West::None) return 6068; else if (West == West::Low) return 6069; else return 6070; else if (West == West::None) return 6074; else if (West == West::Low) return 6075; else return 6076; else if (Up) if (West == West::None) return 6080; else if (West == West::Low) return 6081; else return 6082; else if (West == West::None) return 6086; else if (West == West::Low) return 6087; else return 6088; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 6092; else if (West == West::Low) return 6093; else return 6094; else if (West == West::None) return 6098; else if (West == West::Low) return 6099; else return 6100; else if (South == South::Low) if (Up) if (West == West::None) return 6104; else if (West == West::Low) return 6105; else return 6106; else if (West == West::None) return 6110; else if (West == West::Low) return 6111; else return 6112; else if (Up) if (West == West::None) return 6116; else if (West == West::Low) return 6117; else return 6118; else if (West == West::None) return 6122; else if (West == West::Low) return 6123; else return 6124; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 6128; else if (West == West::Low) return 6129; else return 6130; else if (West == West::None) return 6134; else if (West == West::Low) return 6135; else return 6136; else if (South == South::Low) if (Up) if (West == West::None) return 6140; else if (West == West::Low) return 6141; else return 6142; else if (West == West::None) return 6146; else if (West == West::Low) return 6147; else return 6148; else if (Up) if (West == West::None) return 6152; else if (West == West::Low) return 6153; else return 6154; else if (West == West::None) return 6158; else if (West == West::Low) return 6159; else return 6160; else if (South == South::None) if (Up) if (West == West::None) return 6164; else if (West == West::Low) return 6165; else return 6166; else if (West == West::None) return 6170; else if (West == West::Low) return 6171; else return 6172; else if (South == South::Low) if (Up) if (West == West::None) return 6176; else if (West == West::Low) return 6177; else return 6178; else if (West == West::None) return 6182; else if (West == West::Low) return 6183; else return 6184; else if (Up) if (West == West::None) return 6188; else if (West == West::Low) return 6189; else return 6190; else if (West == West::None) return 6194; else if (West == West::Low) return 6195; else return 6196; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 6200; else if (West == West::Low) return 6201; else return 6202; else if (West == West::None) return 6206; else if (West == West::Low) return 6207; else return 6208; else if (South == South::Low) if (Up) if (West == West::None) return 6212; else if (West == West::Low) return 6213; else return 6214; else if (West == West::None) return 6218; else if (West == West::Low) return 6219; else return 6220; else if (Up) if (West == West::None) return 6224; else if (West == West::Low) return 6225; else return 6226; else if (West == West::None) return 6230; else if (West == West::Low) return 6231; else return 6232; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 6236; else if (West == West::Low) return 6237; else return 6238; else if (West == West::None) return 6242; else if (West == West::Low) return 6243; else return 6244; else if (South == South::Low) if (Up) if (West == West::None) return 6248; else if (West == West::Low) return 6249; else return 6250; else if (West == West::None) return 6254; else if (West == West::Low) return 6255; else return 6256; else if (Up) if (West == West::None) return 6260; else if (West == West::Low) return 6261; else return 6262; else if (West == West::None) return 6266; else if (West == West::Low) return 6267; else return 6268; else if (South == South::None) if (Up) if (West == West::None) return 6272; else if (West == West::Low) return 6273; else return 6274; else if (West == West::None) return 6278; else if (West == West::Low) return 6279; else return 6280; else if (South == South::Low) if (Up) if (West == West::None) return 6284; else if (West == West::Low) return 6285; else return 6286; else if (West == West::None) return 6290; else if (West == West::Low) return 6291; else return 6292; else if (Up) if (West == West::None) return 6296; else if (West == West::Low) return 6297; else return 6298; else if (West == West::None) return 6302; else if (West == West::Low) return 6303; else return 6304; } BlockState MossyCobblestoneWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace MossyStoneBrickSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState MossyStoneBrickSlab(const enum Type Type) { if (Type == Type::Top) return 10802; else if (Type == Type::Bottom) return 10804; else return 10806; } BlockState MossyStoneBrickSlab(); enum Type Type(BlockState Block); } namespace MossyStoneBrickStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState MossyStoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9830; else if (Shape == Shape::InnerLeft) return 9832; else if (Shape == Shape::InnerRight) return 9834; else if (Shape == Shape::OuterLeft) return 9836; else return 9838; else if (Shape == Shape::Straight) return 9840; else if (Shape == Shape::InnerLeft) return 9842; else if (Shape == Shape::InnerRight) return 9844; else if (Shape == Shape::OuterLeft) return 9846; else return 9848; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 9850; else if (Shape == Shape::InnerLeft) return 9852; else if (Shape == Shape::InnerRight) return 9854; else if (Shape == Shape::OuterLeft) return 9856; else return 9858; else if (Shape == Shape::Straight) return 9860; else if (Shape == Shape::InnerLeft) return 9862; else if (Shape == Shape::InnerRight) return 9864; else if (Shape == Shape::OuterLeft) return 9866; else return 9868; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9870; else if (Shape == Shape::InnerLeft) return 9872; else if (Shape == Shape::InnerRight) return 9874; else if (Shape == Shape::OuterLeft) return 9876; else return 9878; else if (Shape == Shape::Straight) return 9880; else if (Shape == Shape::InnerLeft) return 9882; else if (Shape == Shape::InnerRight) return 9884; else if (Shape == Shape::OuterLeft) return 9886; else return 9888; else if (Half == Half::Top) if (Shape == Shape::Straight) return 9890; else if (Shape == Shape::InnerLeft) return 9892; else if (Shape == Shape::InnerRight) return 9894; else if (Shape == Shape::OuterLeft) return 9896; else return 9898; else if (Shape == Shape::Straight) return 9900; else if (Shape == Shape::InnerLeft) return 9902; else if (Shape == Shape::InnerRight) return 9904; else if (Shape == Shape::OuterLeft) return 9906; else return 9908; } BlockState MossyStoneBrickStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace MossyStoneBrickWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState MossyStoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 11842; else if (West == West::Low) return 11843; else return 11844; else if (West == West::None) return 11848; else if (West == West::Low) return 11849; else return 11850; else if (South == South::Low) if (Up) if (West == West::None) return 11854; else if (West == West::Low) return 11855; else return 11856; else if (West == West::None) return 11860; else if (West == West::Low) return 11861; else return 11862; else if (Up) if (West == West::None) return 11866; else if (West == West::Low) return 11867; else return 11868; else if (West == West::None) return 11872; else if (West == West::Low) return 11873; else return 11874; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11878; else if (West == West::Low) return 11879; else return 11880; else if (West == West::None) return 11884; else if (West == West::Low) return 11885; else return 11886; else if (South == South::Low) if (Up) if (West == West::None) return 11890; else if (West == West::Low) return 11891; else return 11892; else if (West == West::None) return 11896; else if (West == West::Low) return 11897; else return 11898; else if (Up) if (West == West::None) return 11902; else if (West == West::Low) return 11903; else return 11904; else if (West == West::None) return 11908; else if (West == West::Low) return 11909; else return 11910; else if (South == South::None) if (Up) if (West == West::None) return 11914; else if (West == West::Low) return 11915; else return 11916; else if (West == West::None) return 11920; else if (West == West::Low) return 11921; else return 11922; else if (South == South::Low) if (Up) if (West == West::None) return 11926; else if (West == West::Low) return 11927; else return 11928; else if (West == West::None) return 11932; else if (West == West::Low) return 11933; else return 11934; else if (Up) if (West == West::None) return 11938; else if (West == West::Low) return 11939; else return 11940; else if (West == West::None) return 11944; else if (West == West::Low) return 11945; else return 11946; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 11950; else if (West == West::Low) return 11951; else return 11952; else if (West == West::None) return 11956; else if (West == West::Low) return 11957; else return 11958; else if (South == South::Low) if (Up) if (West == West::None) return 11962; else if (West == West::Low) return 11963; else return 11964; else if (West == West::None) return 11968; else if (West == West::Low) return 11969; else return 11970; else if (Up) if (West == West::None) return 11974; else if (West == West::Low) return 11975; else return 11976; else if (West == West::None) return 11980; else if (West == West::Low) return 11981; else return 11982; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11986; else if (West == West::Low) return 11987; else return 11988; else if (West == West::None) return 11992; else if (West == West::Low) return 11993; else return 11994; else if (South == South::Low) if (Up) if (West == West::None) return 11998; else if (West == West::Low) return 11999; else return 12000; else if (West == West::None) return 12004; else if (West == West::Low) return 12005; else return 12006; else if (Up) if (West == West::None) return 12010; else if (West == West::Low) return 12011; else return 12012; else if (West == West::None) return 12016; else if (West == West::Low) return 12017; else return 12018; else if (South == South::None) if (Up) if (West == West::None) return 12022; else if (West == West::Low) return 12023; else return 12024; else if (West == West::None) return 12028; else if (West == West::Low) return 12029; else return 12030; else if (South == South::Low) if (Up) if (West == West::None) return 12034; else if (West == West::Low) return 12035; else return 12036; else if (West == West::None) return 12040; else if (West == West::Low) return 12041; else return 12042; else if (Up) if (West == West::None) return 12046; else if (West == West::Low) return 12047; else return 12048; else if (West == West::None) return 12052; else if (West == West::Low) return 12053; else return 12054; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 12058; else if (West == West::Low) return 12059; else return 12060; else if (West == West::None) return 12064; else if (West == West::Low) return 12065; else return 12066; else if (South == South::Low) if (Up) if (West == West::None) return 12070; else if (West == West::Low) return 12071; else return 12072; else if (West == West::None) return 12076; else if (West == West::Low) return 12077; else return 12078; else if (Up) if (West == West::None) return 12082; else if (West == West::Low) return 12083; else return 12084; else if (West == West::None) return 12088; else if (West == West::Low) return 12089; else return 12090; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 12094; else if (West == West::Low) return 12095; else return 12096; else if (West == West::None) return 12100; else if (West == West::Low) return 12101; else return 12102; else if (South == South::Low) if (Up) if (West == West::None) return 12106; else if (West == West::Low) return 12107; else return 12108; else if (West == West::None) return 12112; else if (West == West::Low) return 12113; else return 12114; else if (Up) if (West == West::None) return 12118; else if (West == West::Low) return 12119; else return 12120; else if (West == West::None) return 12124; else if (West == West::Low) return 12125; else return 12126; else if (South == South::None) if (Up) if (West == West::None) return 12130; else if (West == West::Low) return 12131; else return 12132; else if (West == West::None) return 12136; else if (West == West::Low) return 12137; else return 12138; else if (South == South::Low) if (Up) if (West == West::None) return 12142; else if (West == West::Low) return 12143; else return 12144; else if (West == West::None) return 12148; else if (West == West::Low) return 12149; else return 12150; else if (Up) if (West == West::None) return 12154; else if (West == West::Low) return 12155; else return 12156; else if (West == West::None) return 12160; else if (West == West::Low) return 12161; else return 12162; } BlockState MossyStoneBrickWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace MossyStoneBricks { constexpr BlockState MossyStoneBricks() { return 4496; } } namespace MovingPiston { enum class Type { Normal, Sticky }; constexpr BlockState MovingPiston(const eBlockFace Facing, const enum Type Type) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Type == Type::Normal) return 1400; else return 1401; else if (Facing == eBlockFace::BLOCK_FACE_XP) if (Type == Type::Normal) return 1402; else return 1403; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Type == Type::Normal) return 1404; else return 1405; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Type == Type::Normal) return 1406; else return 1407; else if (Facing == eBlockFace::BLOCK_FACE_YP) if (Type == Type::Normal) return 1408; else return 1409; else if (Type == Type::Normal) return 1410; else return 1411; } BlockState MovingPiston(); eBlockFace Facing(BlockState Block); enum Type Type(BlockState Block); } namespace MushroomStem { constexpr BlockState MushroomStem(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West) { if (Down) if (East) if (North) if (South) if (Up) if (West) return 4633; else return 4634; else if (West) return 4635; else return 4636; else if (Up) if (West) return 4637; else return 4638; else if (West) return 4639; else return 4640; else if (South) if (Up) if (West) return 4641; else return 4642; else if (West) return 4643; else return 4644; else if (Up) if (West) return 4645; else return 4646; else if (West) return 4647; else return 4648; else if (North) if (South) if (Up) if (West) return 4649; else return 4650; else if (West) return 4651; else return 4652; else if (Up) if (West) return 4653; else return 4654; else if (West) return 4655; else return 4656; else if (South) if (Up) if (West) return 4657; else return 4658; else if (West) return 4659; else return 4660; else if (Up) if (West) return 4661; else return 4662; else if (West) return 4663; else return 4664; else if (East) if (North) if (South) if (Up) if (West) return 4665; else return 4666; else if (West) return 4667; else return 4668; else if (Up) if (West) return 4669; else return 4670; else if (West) return 4671; else return 4672; else if (South) if (Up) if (West) return 4673; else return 4674; else if (West) return 4675; else return 4676; else if (Up) if (West) return 4677; else return 4678; else if (West) return 4679; else return 4680; else if (North) if (South) if (Up) if (West) return 4681; else return 4682; else if (West) return 4683; else return 4684; else if (Up) if (West) return 4685; else return 4686; else if (West) return 4687; else return 4688; else if (South) if (Up) if (West) return 4689; else return 4690; else if (West) return 4691; else return 4692; else if (Up) if (West) return 4693; else return 4694; else if (West) return 4695; else return 4696; } BlockState MushroomStem(); bool Down(BlockState Block); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool Up(BlockState Block); bool West(BlockState Block); } namespace Mycelium { constexpr BlockState Mycelium(const bool Snowy) { if (Snowy) return 5012; else return 5013; } BlockState Mycelium(); bool Snowy(BlockState Block); } namespace NetherBrickFence { constexpr BlockState NetherBrickFence(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 5018; else return 5019; else if (West) return 5022; else return 5023; else if (South) if (West) return 5026; else return 5027; else if (West) return 5030; else return 5031; else if (North) if (South) if (West) return 5034; else return 5035; else if (West) return 5038; else return 5039; else if (South) if (West) return 5042; else return 5043; else if (West) return 5046; else return 5047; } BlockState NetherBrickFence(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace NetherBrickSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState NetherBrickSlab(const enum Type Type) { if (Type == Type::Top) return 8385; else if (Type == Type::Bottom) return 8387; else return 8389; } BlockState NetherBrickSlab(); enum Type Type(BlockState Block); } namespace NetherBrickStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState NetherBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5049; else if (Shape == Shape::InnerLeft) return 5051; else if (Shape == Shape::InnerRight) return 5053; else if (Shape == Shape::OuterLeft) return 5055; else return 5057; else if (Shape == Shape::Straight) return 5059; else if (Shape == Shape::InnerLeft) return 5061; else if (Shape == Shape::InnerRight) return 5063; else if (Shape == Shape::OuterLeft) return 5065; else return 5067; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 5069; else if (Shape == Shape::InnerLeft) return 5071; else if (Shape == Shape::InnerRight) return 5073; else if (Shape == Shape::OuterLeft) return 5075; else return 5077; else if (Shape == Shape::Straight) return 5079; else if (Shape == Shape::InnerLeft) return 5081; else if (Shape == Shape::InnerRight) return 5083; else if (Shape == Shape::OuterLeft) return 5085; else return 5087; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5089; else if (Shape == Shape::InnerLeft) return 5091; else if (Shape == Shape::InnerRight) return 5093; else if (Shape == Shape::OuterLeft) return 5095; else return 5097; else if (Shape == Shape::Straight) return 5099; else if (Shape == Shape::InnerLeft) return 5101; else if (Shape == Shape::InnerRight) return 5103; else if (Shape == Shape::OuterLeft) return 5105; else return 5107; else if (Half == Half::Top) if (Shape == Shape::Straight) return 5109; else if (Shape == Shape::InnerLeft) return 5111; else if (Shape == Shape::InnerRight) return 5113; else if (Shape == Shape::OuterLeft) return 5115; else return 5117; else if (Shape == Shape::Straight) return 5119; else if (Shape == Shape::InnerLeft) return 5121; else if (Shape == Shape::InnerRight) return 5123; else if (Shape == Shape::OuterLeft) return 5125; else return 5127; } BlockState NetherBrickStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace NetherBrickWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState NetherBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 12814; else if (West == West::Low) return 12815; else return 12816; else if (West == West::None) return 12820; else if (West == West::Low) return 12821; else return 12822; else if (South == South::Low) if (Up) if (West == West::None) return 12826; else if (West == West::Low) return 12827; else return 12828; else if (West == West::None) return 12832; else if (West == West::Low) return 12833; else return 12834; else if (Up) if (West == West::None) return 12838; else if (West == West::Low) return 12839; else return 12840; else if (West == West::None) return 12844; else if (West == West::Low) return 12845; else return 12846; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 12850; else if (West == West::Low) return 12851; else return 12852; else if (West == West::None) return 12856; else if (West == West::Low) return 12857; else return 12858; else if (South == South::Low) if (Up) if (West == West::None) return 12862; else if (West == West::Low) return 12863; else return 12864; else if (West == West::None) return 12868; else if (West == West::Low) return 12869; else return 12870; else if (Up) if (West == West::None) return 12874; else if (West == West::Low) return 12875; else return 12876; else if (West == West::None) return 12880; else if (West == West::Low) return 12881; else return 12882; else if (South == South::None) if (Up) if (West == West::None) return 12886; else if (West == West::Low) return 12887; else return 12888; else if (West == West::None) return 12892; else if (West == West::Low) return 12893; else return 12894; else if (South == South::Low) if (Up) if (West == West::None) return 12898; else if (West == West::Low) return 12899; else return 12900; else if (West == West::None) return 12904; else if (West == West::Low) return 12905; else return 12906; else if (Up) if (West == West::None) return 12910; else if (West == West::Low) return 12911; else return 12912; else if (West == West::None) return 12916; else if (West == West::Low) return 12917; else return 12918; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 12922; else if (West == West::Low) return 12923; else return 12924; else if (West == West::None) return 12928; else if (West == West::Low) return 12929; else return 12930; else if (South == South::Low) if (Up) if (West == West::None) return 12934; else if (West == West::Low) return 12935; else return 12936; else if (West == West::None) return 12940; else if (West == West::Low) return 12941; else return 12942; else if (Up) if (West == West::None) return 12946; else if (West == West::Low) return 12947; else return 12948; else if (West == West::None) return 12952; else if (West == West::Low) return 12953; else return 12954; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 12958; else if (West == West::Low) return 12959; else return 12960; else if (West == West::None) return 12964; else if (West == West::Low) return 12965; else return 12966; else if (South == South::Low) if (Up) if (West == West::None) return 12970; else if (West == West::Low) return 12971; else return 12972; else if (West == West::None) return 12976; else if (West == West::Low) return 12977; else return 12978; else if (Up) if (West == West::None) return 12982; else if (West == West::Low) return 12983; else return 12984; else if (West == West::None) return 12988; else if (West == West::Low) return 12989; else return 12990; else if (South == South::None) if (Up) if (West == West::None) return 12994; else if (West == West::Low) return 12995; else return 12996; else if (West == West::None) return 13000; else if (West == West::Low) return 13001; else return 13002; else if (South == South::Low) if (Up) if (West == West::None) return 13006; else if (West == West::Low) return 13007; else return 13008; else if (West == West::None) return 13012; else if (West == West::Low) return 13013; else return 13014; else if (Up) if (West == West::None) return 13018; else if (West == West::Low) return 13019; else return 13020; else if (West == West::None) return 13024; else if (West == West::Low) return 13025; else return 13026; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 13030; else if (West == West::Low) return 13031; else return 13032; else if (West == West::None) return 13036; else if (West == West::Low) return 13037; else return 13038; else if (South == South::Low) if (Up) if (West == West::None) return 13042; else if (West == West::Low) return 13043; else return 13044; else if (West == West::None) return 13048; else if (West == West::Low) return 13049; else return 13050; else if (Up) if (West == West::None) return 13054; else if (West == West::Low) return 13055; else return 13056; else if (West == West::None) return 13060; else if (West == West::Low) return 13061; else return 13062; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 13066; else if (West == West::Low) return 13067; else return 13068; else if (West == West::None) return 13072; else if (West == West::Low) return 13073; else return 13074; else if (South == South::Low) if (Up) if (West == West::None) return 13078; else if (West == West::Low) return 13079; else return 13080; else if (West == West::None) return 13084; else if (West == West::Low) return 13085; else return 13086; else if (Up) if (West == West::None) return 13090; else if (West == West::Low) return 13091; else return 13092; else if (West == West::None) return 13096; else if (West == West::Low) return 13097; else return 13098; else if (South == South::None) if (Up) if (West == West::None) return 13102; else if (West == West::Low) return 13103; else return 13104; else if (West == West::None) return 13108; else if (West == West::Low) return 13109; else return 13110; else if (South == South::Low) if (Up) if (West == West::None) return 13114; else if (West == West::Low) return 13115; else return 13116; else if (West == West::None) return 13120; else if (West == West::Low) return 13121; else return 13122; else if (Up) if (West == West::None) return 13126; else if (West == West::Low) return 13127; else return 13128; else if (West == West::None) return 13132; else if (West == West::Low) return 13133; else return 13134; } BlockState NetherBrickWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace NetherBricks { constexpr BlockState NetherBricks() { return 5015; } } namespace NetherGoldOre { constexpr BlockState NetherGoldOre() { return 72; } } namespace NetherPortal { enum class Axis { X, Z }; constexpr BlockState NetherPortal(const enum Axis Axis) { if (Axis == Axis::X) return 4014; else return 4015; } BlockState NetherPortal(); enum Axis Axis(BlockState Block); } namespace NetherQuartzOre { constexpr BlockState NetherQuartzOre() { return 6727; } } namespace NetherSprouts { constexpr BlockState NetherSprouts() { return 14974; } } namespace NetherWart { constexpr BlockState NetherWart(const unsigned char Age) { if (Age == 0) return 5128; else if (Age == 1) return 5129; else if (Age == 2) return 5130; else return 5131; } BlockState NetherWart(); unsigned char Age(BlockState Block); } namespace NetherWartBlock { constexpr BlockState NetherWartBlock() { return 9254; } } namespace NetheriteBlock { constexpr BlockState NetheriteBlock() { return 15826; } } namespace Netherrack { constexpr BlockState Netherrack() { return 3999; } } namespace NoteBlock { enum class Instrument { Harp, Basedrum, Snare, Hat, Bass, Flute, Bell, Guitar, Chime, Xylophone, IronXylophone, CowBell, Didgeridoo, Bit, Banjo, Pling }; constexpr BlockState NoteBlock(const enum Instrument Instrument, const unsigned char Note, const bool Powered) { if (Instrument == Instrument::Harp) if (Note == 0) if (Powered) return 249; else return 250; else if (Note == 1) if (Powered) return 251; else return 252; else if (Note == 2) if (Powered) return 253; else return 254; else if (Note == 3) if (Powered) return 255; else return 256; else if (Note == 4) if (Powered) return 257; else return 258; else if (Note == 5) if (Powered) return 259; else return 260; else if (Note == 6) if (Powered) return 261; else return 262; else if (Note == 7) if (Powered) return 263; else return 264; else if (Note == 8) if (Powered) return 265; else return 266; else if (Note == 9) if (Powered) return 267; else return 268; else if (Note == 10) if (Powered) return 269; else return 270; else if (Note == 11) if (Powered) return 271; else return 272; else if (Note == 12) if (Powered) return 273; else return 274; else if (Note == 13) if (Powered) return 275; else return 276; else if (Note == 14) if (Powered) return 277; else return 278; else if (Note == 15) if (Powered) return 279; else return 280; else if (Note == 16) if (Powered) return 281; else return 282; else if (Note == 17) if (Powered) return 283; else return 284; else if (Note == 18) if (Powered) return 285; else return 286; else if (Note == 19) if (Powered) return 287; else return 288; else if (Note == 20) if (Powered) return 289; else return 290; else if (Note == 21) if (Powered) return 291; else return 292; else if (Note == 22) if (Powered) return 293; else return 294; else if (Note == 23) if (Powered) return 295; else return 296; else if (Powered) return 297; else return 298; else if (Instrument == Instrument::Basedrum) if (Note == 0) if (Powered) return 299; else return 300; else if (Note == 1) if (Powered) return 301; else return 302; else if (Note == 2) if (Powered) return 303; else return 304; else if (Note == 3) if (Powered) return 305; else return 306; else if (Note == 4) if (Powered) return 307; else return 308; else if (Note == 5) if (Powered) return 309; else return 310; else if (Note == 6) if (Powered) return 311; else return 312; else if (Note == 7) if (Powered) return 313; else return 314; else if (Note == 8) if (Powered) return 315; else return 316; else if (Note == 9) if (Powered) return 317; else return 318; else if (Note == 10) if (Powered) return 319; else return 320; else if (Note == 11) if (Powered) return 321; else return 322; else if (Note == 12) if (Powered) return 323; else return 324; else if (Note == 13) if (Powered) return 325; else return 326; else if (Note == 14) if (Powered) return 327; else return 328; else if (Note == 15) if (Powered) return 329; else return 330; else if (Note == 16) if (Powered) return 331; else return 332; else if (Note == 17) if (Powered) return 333; else return 334; else if (Note == 18) if (Powered) return 335; else return 336; else if (Note == 19) if (Powered) return 337; else return 338; else if (Note == 20) if (Powered) return 339; else return 340; else if (Note == 21) if (Powered) return 341; else return 342; else if (Note == 22) if (Powered) return 343; else return 344; else if (Note == 23) if (Powered) return 345; else return 346; else if (Powered) return 347; else return 348; else if (Instrument == Instrument::Snare) if (Note == 0) if (Powered) return 349; else return 350; else if (Note == 1) if (Powered) return 351; else return 352; else if (Note == 2) if (Powered) return 353; else return 354; else if (Note == 3) if (Powered) return 355; else return 356; else if (Note == 4) if (Powered) return 357; else return 358; else if (Note == 5) if (Powered) return 359; else return 360; else if (Note == 6) if (Powered) return 361; else return 362; else if (Note == 7) if (Powered) return 363; else return 364; else if (Note == 8) if (Powered) return 365; else return 366; else if (Note == 9) if (Powered) return 367; else return 368; else if (Note == 10) if (Powered) return 369; else return 370; else if (Note == 11) if (Powered) return 371; else return 372; else if (Note == 12) if (Powered) return 373; else return 374; else if (Note == 13) if (Powered) return 375; else return 376; else if (Note == 14) if (Powered) return 377; else return 378; else if (Note == 15) if (Powered) return 379; else return 380; else if (Note == 16) if (Powered) return 381; else return 382; else if (Note == 17) if (Powered) return 383; else return 384; else if (Note == 18) if (Powered) return 385; else return 386; else if (Note == 19) if (Powered) return 387; else return 388; else if (Note == 20) if (Powered) return 389; else return 390; else if (Note == 21) if (Powered) return 391; else return 392; else if (Note == 22) if (Powered) return 393; else return 394; else if (Note == 23) if (Powered) return 395; else return 396; else if (Powered) return 397; else return 398; else if (Instrument == Instrument::Hat) if (Note == 0) if (Powered) return 399; else return 400; else if (Note == 1) if (Powered) return 401; else return 402; else if (Note == 2) if (Powered) return 403; else return 404; else if (Note == 3) if (Powered) return 405; else return 406; else if (Note == 4) if (Powered) return 407; else return 408; else if (Note == 5) if (Powered) return 409; else return 410; else if (Note == 6) if (Powered) return 411; else return 412; else if (Note == 7) if (Powered) return 413; else return 414; else if (Note == 8) if (Powered) return 415; else return 416; else if (Note == 9) if (Powered) return 417; else return 418; else if (Note == 10) if (Powered) return 419; else return 420; else if (Note == 11) if (Powered) return 421; else return 422; else if (Note == 12) if (Powered) return 423; else return 424; else if (Note == 13) if (Powered) return 425; else return 426; else if (Note == 14) if (Powered) return 427; else return 428; else if (Note == 15) if (Powered) return 429; else return 430; else if (Note == 16) if (Powered) return 431; else return 432; else if (Note == 17) if (Powered) return 433; else return 434; else if (Note == 18) if (Powered) return 435; else return 436; else if (Note == 19) if (Powered) return 437; else return 438; else if (Note == 20) if (Powered) return 439; else return 440; else if (Note == 21) if (Powered) return 441; else return 442; else if (Note == 22) if (Powered) return 443; else return 444; else if (Note == 23) if (Powered) return 445; else return 446; else if (Powered) return 447; else return 448; else if (Instrument == Instrument::Bass) if (Note == 0) if (Powered) return 449; else return 450; else if (Note == 1) if (Powered) return 451; else return 452; else if (Note == 2) if (Powered) return 453; else return 454; else if (Note == 3) if (Powered) return 455; else return 456; else if (Note == 4) if (Powered) return 457; else return 458; else if (Note == 5) if (Powered) return 459; else return 460; else if (Note == 6) if (Powered) return 461; else return 462; else if (Note == 7) if (Powered) return 463; else return 464; else if (Note == 8) if (Powered) return 465; else return 466; else if (Note == 9) if (Powered) return 467; else return 468; else if (Note == 10) if (Powered) return 469; else return 470; else if (Note == 11) if (Powered) return 471; else return 472; else if (Note == 12) if (Powered) return 473; else return 474; else if (Note == 13) if (Powered) return 475; else return 476; else if (Note == 14) if (Powered) return 477; else return 478; else if (Note == 15) if (Powered) return 479; else return 480; else if (Note == 16) if (Powered) return 481; else return 482; else if (Note == 17) if (Powered) return 483; else return 484; else if (Note == 18) if (Powered) return 485; else return 486; else if (Note == 19) if (Powered) return 487; else return 488; else if (Note == 20) if (Powered) return 489; else return 490; else if (Note == 21) if (Powered) return 491; else return 492; else if (Note == 22) if (Powered) return 493; else return 494; else if (Note == 23) if (Powered) return 495; else return 496; else if (Powered) return 497; else return 498; else if (Instrument == Instrument::Flute) if (Note == 0) if (Powered) return 499; else return 500; else if (Note == 1) if (Powered) return 501; else return 502; else if (Note == 2) if (Powered) return 503; else return 504; else if (Note == 3) if (Powered) return 505; else return 506; else if (Note == 4) if (Powered) return 507; else return 508; else if (Note == 5) if (Powered) return 509; else return 510; else if (Note == 6) if (Powered) return 511; else return 512; else if (Note == 7) if (Powered) return 513; else return 514; else if (Note == 8) if (Powered) return 515; else return 516; else if (Note == 9) if (Powered) return 517; else return 518; else if (Note == 10) if (Powered) return 519; else return 520; else if (Note == 11) if (Powered) return 521; else return 522; else if (Note == 12) if (Powered) return 523; else return 524; else if (Note == 13) if (Powered) return 525; else return 526; else if (Note == 14) if (Powered) return 527; else return 528; else if (Note == 15) if (Powered) return 529; else return 530; else if (Note == 16) if (Powered) return 531; else return 532; else if (Note == 17) if (Powered) return 533; else return 534; else if (Note == 18) if (Powered) return 535; else return 536; else if (Note == 19) if (Powered) return 537; else return 538; else if (Note == 20) if (Powered) return 539; else return 540; else if (Note == 21) if (Powered) return 541; else return 542; else if (Note == 22) if (Powered) return 543; else return 544; else if (Note == 23) if (Powered) return 545; else return 546; else if (Powered) return 547; else return 548; else if (Instrument == Instrument::Bell) if (Note == 0) if (Powered) return 549; else return 550; else if (Note == 1) if (Powered) return 551; else return 552; else if (Note == 2) if (Powered) return 553; else return 554; else if (Note == 3) if (Powered) return 555; else return 556; else if (Note == 4) if (Powered) return 557; else return 558; else if (Note == 5) if (Powered) return 559; else return 560; else if (Note == 6) if (Powered) return 561; else return 562; else if (Note == 7) if (Powered) return 563; else return 564; else if (Note == 8) if (Powered) return 565; else return 566; else if (Note == 9) if (Powered) return 567; else return 568; else if (Note == 10) if (Powered) return 569; else return 570; else if (Note == 11) if (Powered) return 571; else return 572; else if (Note == 12) if (Powered) return 573; else return 574; else if (Note == 13) if (Powered) return 575; else return 576; else if (Note == 14) if (Powered) return 577; else return 578; else if (Note == 15) if (Powered) return 579; else return 580; else if (Note == 16) if (Powered) return 581; else return 582; else if (Note == 17) if (Powered) return 583; else return 584; else if (Note == 18) if (Powered) return 585; else return 586; else if (Note == 19) if (Powered) return 587; else return 588; else if (Note == 20) if (Powered) return 589; else return 590; else if (Note == 21) if (Powered) return 591; else return 592; else if (Note == 22) if (Powered) return 593; else return 594; else if (Note == 23) if (Powered) return 595; else return 596; else if (Powered) return 597; else return 598; else if (Instrument == Instrument::Guitar) if (Note == 0) if (Powered) return 599; else return 600; else if (Note == 1) if (Powered) return 601; else return 602; else if (Note == 2) if (Powered) return 603; else return 604; else if (Note == 3) if (Powered) return 605; else return 606; else if (Note == 4) if (Powered) return 607; else return 608; else if (Note == 5) if (Powered) return 609; else return 610; else if (Note == 6) if (Powered) return 611; else return 612; else if (Note == 7) if (Powered) return 613; else return 614; else if (Note == 8) if (Powered) return 615; else return 616; else if (Note == 9) if (Powered) return 617; else return 618; else if (Note == 10) if (Powered) return 619; else return 620; else if (Note == 11) if (Powered) return 621; else return 622; else if (Note == 12) if (Powered) return 623; else return 624; else if (Note == 13) if (Powered) return 625; else return 626; else if (Note == 14) if (Powered) return 627; else return 628; else if (Note == 15) if (Powered) return 629; else return 630; else if (Note == 16) if (Powered) return 631; else return 632; else if (Note == 17) if (Powered) return 633; else return 634; else if (Note == 18) if (Powered) return 635; else return 636; else if (Note == 19) if (Powered) return 637; else return 638; else if (Note == 20) if (Powered) return 639; else return 640; else if (Note == 21) if (Powered) return 641; else return 642; else if (Note == 22) if (Powered) return 643; else return 644; else if (Note == 23) if (Powered) return 645; else return 646; else if (Powered) return 647; else return 648; else if (Instrument == Instrument::Chime) if (Note == 0) if (Powered) return 649; else return 650; else if (Note == 1) if (Powered) return 651; else return 652; else if (Note == 2) if (Powered) return 653; else return 654; else if (Note == 3) if (Powered) return 655; else return 656; else if (Note == 4) if (Powered) return 657; else return 658; else if (Note == 5) if (Powered) return 659; else return 660; else if (Note == 6) if (Powered) return 661; else return 662; else if (Note == 7) if (Powered) return 663; else return 664; else if (Note == 8) if (Powered) return 665; else return 666; else if (Note == 9) if (Powered) return 667; else return 668; else if (Note == 10) if (Powered) return 669; else return 670; else if (Note == 11) if (Powered) return 671; else return 672; else if (Note == 12) if (Powered) return 673; else return 674; else if (Note == 13) if (Powered) return 675; else return 676; else if (Note == 14) if (Powered) return 677; else return 678; else if (Note == 15) if (Powered) return 679; else return 680; else if (Note == 16) if (Powered) return 681; else return 682; else if (Note == 17) if (Powered) return 683; else return 684; else if (Note == 18) if (Powered) return 685; else return 686; else if (Note == 19) if (Powered) return 687; else return 688; else if (Note == 20) if (Powered) return 689; else return 690; else if (Note == 21) if (Powered) return 691; else return 692; else if (Note == 22) if (Powered) return 693; else return 694; else if (Note == 23) if (Powered) return 695; else return 696; else if (Powered) return 697; else return 698; else if (Instrument == Instrument::Xylophone) if (Note == 0) if (Powered) return 699; else return 700; else if (Note == 1) if (Powered) return 701; else return 702; else if (Note == 2) if (Powered) return 703; else return 704; else if (Note == 3) if (Powered) return 705; else return 706; else if (Note == 4) if (Powered) return 707; else return 708; else if (Note == 5) if (Powered) return 709; else return 710; else if (Note == 6) if (Powered) return 711; else return 712; else if (Note == 7) if (Powered) return 713; else return 714; else if (Note == 8) if (Powered) return 715; else return 716; else if (Note == 9) if (Powered) return 717; else return 718; else if (Note == 10) if (Powered) return 719; else return 720; else if (Note == 11) if (Powered) return 721; else return 722; else if (Note == 12) if (Powered) return 723; else return 724; else if (Note == 13) if (Powered) return 725; else return 726; else if (Note == 14) if (Powered) return 727; else return 728; else if (Note == 15) if (Powered) return 729; else return 730; else if (Note == 16) if (Powered) return 731; else return 732; else if (Note == 17) if (Powered) return 733; else return 734; else if (Note == 18) if (Powered) return 735; else return 736; else if (Note == 19) if (Powered) return 737; else return 738; else if (Note == 20) if (Powered) return 739; else return 740; else if (Note == 21) if (Powered) return 741; else return 742; else if (Note == 22) if (Powered) return 743; else return 744; else if (Note == 23) if (Powered) return 745; else return 746; else if (Powered) return 747; else return 748; else if (Instrument == Instrument::IronXylophone) if (Note == 0) if (Powered) return 749; else return 750; else if (Note == 1) if (Powered) return 751; else return 752; else if (Note == 2) if (Powered) return 753; else return 754; else if (Note == 3) if (Powered) return 755; else return 756; else if (Note == 4) if (Powered) return 757; else return 758; else if (Note == 5) if (Powered) return 759; else return 760; else if (Note == 6) if (Powered) return 761; else return 762; else if (Note == 7) if (Powered) return 763; else return 764; else if (Note == 8) if (Powered) return 765; else return 766; else if (Note == 9) if (Powered) return 767; else return 768; else if (Note == 10) if (Powered) return 769; else return 770; else if (Note == 11) if (Powered) return 771; else return 772; else if (Note == 12) if (Powered) return 773; else return 774; else if (Note == 13) if (Powered) return 775; else return 776; else if (Note == 14) if (Powered) return 777; else return 778; else if (Note == 15) if (Powered) return 779; else return 780; else if (Note == 16) if (Powered) return 781; else return 782; else if (Note == 17) if (Powered) return 783; else return 784; else if (Note == 18) if (Powered) return 785; else return 786; else if (Note == 19) if (Powered) return 787; else return 788; else if (Note == 20) if (Powered) return 789; else return 790; else if (Note == 21) if (Powered) return 791; else return 792; else if (Note == 22) if (Powered) return 793; else return 794; else if (Note == 23) if (Powered) return 795; else return 796; else if (Powered) return 797; else return 798; else if (Instrument == Instrument::CowBell) if (Note == 0) if (Powered) return 799; else return 800; else if (Note == 1) if (Powered) return 801; else return 802; else if (Note == 2) if (Powered) return 803; else return 804; else if (Note == 3) if (Powered) return 805; else return 806; else if (Note == 4) if (Powered) return 807; else return 808; else if (Note == 5) if (Powered) return 809; else return 810; else if (Note == 6) if (Powered) return 811; else return 812; else if (Note == 7) if (Powered) return 813; else return 814; else if (Note == 8) if (Powered) return 815; else return 816; else if (Note == 9) if (Powered) return 817; else return 818; else if (Note == 10) if (Powered) return 819; else return 820; else if (Note == 11) if (Powered) return 821; else return 822; else if (Note == 12) if (Powered) return 823; else return 824; else if (Note == 13) if (Powered) return 825; else return 826; else if (Note == 14) if (Powered) return 827; else return 828; else if (Note == 15) if (Powered) return 829; else return 830; else if (Note == 16) if (Powered) return 831; else return 832; else if (Note == 17) if (Powered) return 833; else return 834; else if (Note == 18) if (Powered) return 835; else return 836; else if (Note == 19) if (Powered) return 837; else return 838; else if (Note == 20) if (Powered) return 839; else return 840; else if (Note == 21) if (Powered) return 841; else return 842; else if (Note == 22) if (Powered) return 843; else return 844; else if (Note == 23) if (Powered) return 845; else return 846; else if (Powered) return 847; else return 848; else if (Instrument == Instrument::Didgeridoo) if (Note == 0) if (Powered) return 849; else return 850; else if (Note == 1) if (Powered) return 851; else return 852; else if (Note == 2) if (Powered) return 853; else return 854; else if (Note == 3) if (Powered) return 855; else return 856; else if (Note == 4) if (Powered) return 857; else return 858; else if (Note == 5) if (Powered) return 859; else return 860; else if (Note == 6) if (Powered) return 861; else return 862; else if (Note == 7) if (Powered) return 863; else return 864; else if (Note == 8) if (Powered) return 865; else return 866; else if (Note == 9) if (Powered) return 867; else return 868; else if (Note == 10) if (Powered) return 869; else return 870; else if (Note == 11) if (Powered) return 871; else return 872; else if (Note == 12) if (Powered) return 873; else return 874; else if (Note == 13) if (Powered) return 875; else return 876; else if (Note == 14) if (Powered) return 877; else return 878; else if (Note == 15) if (Powered) return 879; else return 880; else if (Note == 16) if (Powered) return 881; else return 882; else if (Note == 17) if (Powered) return 883; else return 884; else if (Note == 18) if (Powered) return 885; else return 886; else if (Note == 19) if (Powered) return 887; else return 888; else if (Note == 20) if (Powered) return 889; else return 890; else if (Note == 21) if (Powered) return 891; else return 892; else if (Note == 22) if (Powered) return 893; else return 894; else if (Note == 23) if (Powered) return 895; else return 896; else if (Powered) return 897; else return 898; else if (Instrument == Instrument::Bit) if (Note == 0) if (Powered) return 899; else return 900; else if (Note == 1) if (Powered) return 901; else return 902; else if (Note == 2) if (Powered) return 903; else return 904; else if (Note == 3) if (Powered) return 905; else return 906; else if (Note == 4) if (Powered) return 907; else return 908; else if (Note == 5) if (Powered) return 909; else return 910; else if (Note == 6) if (Powered) return 911; else return 912; else if (Note == 7) if (Powered) return 913; else return 914; else if (Note == 8) if (Powered) return 915; else return 916; else if (Note == 9) if (Powered) return 917; else return 918; else if (Note == 10) if (Powered) return 919; else return 920; else if (Note == 11) if (Powered) return 921; else return 922; else if (Note == 12) if (Powered) return 923; else return 924; else if (Note == 13) if (Powered) return 925; else return 926; else if (Note == 14) if (Powered) return 927; else return 928; else if (Note == 15) if (Powered) return 929; else return 930; else if (Note == 16) if (Powered) return 931; else return 932; else if (Note == 17) if (Powered) return 933; else return 934; else if (Note == 18) if (Powered) return 935; else return 936; else if (Note == 19) if (Powered) return 937; else return 938; else if (Note == 20) if (Powered) return 939; else return 940; else if (Note == 21) if (Powered) return 941; else return 942; else if (Note == 22) if (Powered) return 943; else return 944; else if (Note == 23) if (Powered) return 945; else return 946; else if (Powered) return 947; else return 948; else if (Instrument == Instrument::Banjo) if (Note == 0) if (Powered) return 949; else return 950; else if (Note == 1) if (Powered) return 951; else return 952; else if (Note == 2) if (Powered) return 953; else return 954; else if (Note == 3) if (Powered) return 955; else return 956; else if (Note == 4) if (Powered) return 957; else return 958; else if (Note == 5) if (Powered) return 959; else return 960; else if (Note == 6) if (Powered) return 961; else return 962; else if (Note == 7) if (Powered) return 963; else return 964; else if (Note == 8) if (Powered) return 965; else return 966; else if (Note == 9) if (Powered) return 967; else return 968; else if (Note == 10) if (Powered) return 969; else return 970; else if (Note == 11) if (Powered) return 971; else return 972; else if (Note == 12) if (Powered) return 973; else return 974; else if (Note == 13) if (Powered) return 975; else return 976; else if (Note == 14) if (Powered) return 977; else return 978; else if (Note == 15) if (Powered) return 979; else return 980; else if (Note == 16) if (Powered) return 981; else return 982; else if (Note == 17) if (Powered) return 983; else return 984; else if (Note == 18) if (Powered) return 985; else return 986; else if (Note == 19) if (Powered) return 987; else return 988; else if (Note == 20) if (Powered) return 989; else return 990; else if (Note == 21) if (Powered) return 991; else return 992; else if (Note == 22) if (Powered) return 993; else return 994; else if (Note == 23) if (Powered) return 995; else return 996; else if (Powered) return 997; else return 998; else if (Note == 0) if (Powered) return 999; else return 1000; else if (Note == 1) if (Powered) return 1001; else return 1002; else if (Note == 2) if (Powered) return 1003; else return 1004; else if (Note == 3) if (Powered) return 1005; else return 1006; else if (Note == 4) if (Powered) return 1007; else return 1008; else if (Note == 5) if (Powered) return 1009; else return 1010; else if (Note == 6) if (Powered) return 1011; else return 1012; else if (Note == 7) if (Powered) return 1013; else return 1014; else if (Note == 8) if (Powered) return 1015; else return 1016; else if (Note == 9) if (Powered) return 1017; else return 1018; else if (Note == 10) if (Powered) return 1019; else return 1020; else if (Note == 11) if (Powered) return 1021; else return 1022; else if (Note == 12) if (Powered) return 1023; else return 1024; else if (Note == 13) if (Powered) return 1025; else return 1026; else if (Note == 14) if (Powered) return 1027; else return 1028; else if (Note == 15) if (Powered) return 1029; else return 1030; else if (Note == 16) if (Powered) return 1031; else return 1032; else if (Note == 17) if (Powered) return 1033; else return 1034; else if (Note == 18) if (Powered) return 1035; else return 1036; else if (Note == 19) if (Powered) return 1037; else return 1038; else if (Note == 20) if (Powered) return 1039; else return 1040; else if (Note == 21) if (Powered) return 1041; else return 1042; else if (Note == 22) if (Powered) return 1043; else return 1044; else if (Note == 23) if (Powered) return 1045; else return 1046; else if (Powered) return 1047; else return 1048; } BlockState NoteBlock(); enum Instrument Instrument(BlockState Block); unsigned char Note(BlockState Block); bool Powered(BlockState Block); } namespace OakButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState OakButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6346; else return 6347; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6348; else return 6349; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6350; else return 6351; else if (Powered) return 6352; else return 6353; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6354; else return 6355; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6356; else return 6357; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6358; else return 6359; else if (Powered) return 6360; else return 6361; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6362; else return 6363; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6364; else return 6365; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6366; else return 6367; else if (Powered) return 6368; else return 6369; } BlockState OakButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace OakDoor { enum class Half { Upper, Lower }; enum class Hinge { Left, Right }; constexpr BlockState OakDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 3573; else return 3574; else if (Powered) return 3575; else return 3576; else if (Open) if (Powered) return 3577; else return 3578; else if (Powered) return 3579; else return 3580; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 3581; else return 3582; else if (Powered) return 3583; else return 3584; else if (Open) if (Powered) return 3585; else return 3586; else if (Powered) return 3587; else return 3588; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 3589; else return 3590; else if (Powered) return 3591; else return 3592; else if (Open) if (Powered) return 3593; else return 3594; else if (Powered) return 3595; else return 3596; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 3597; else return 3598; else if (Powered) return 3599; else return 3600; else if (Open) if (Powered) return 3601; else return 3602; else if (Powered) return 3603; else return 3604; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 3605; else return 3606; else if (Powered) return 3607; else return 3608; else if (Open) if (Powered) return 3609; else return 3610; else if (Powered) return 3611; else return 3612; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 3613; else return 3614; else if (Powered) return 3615; else return 3616; else if (Open) if (Powered) return 3617; else return 3618; else if (Powered) return 3619; else return 3620; else if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 3621; else return 3622; else if (Powered) return 3623; else return 3624; else if (Open) if (Powered) return 3625; else return 3626; else if (Powered) return 3627; else return 3628; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 3629; else return 3630; else if (Powered) return 3631; else return 3632; else if (Open) if (Powered) return 3633; else return 3634; else if (Powered) return 3635; else return 3636; } BlockState OakDoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Hinge Hinge(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace OakFence { constexpr BlockState OakFence(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 3968; else return 3969; else if (West) return 3972; else return 3973; else if (South) if (West) return 3976; else return 3977; else if (West) return 3980; else return 3981; else if (North) if (South) if (West) return 3984; else return 3985; else if (West) return 3988; else return 3989; else if (South) if (West) return 3992; else return 3993; else if (West) return 3996; else return 3997; } BlockState OakFence(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace OakFenceGate { constexpr BlockState OakFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (InWall) if (Open) if (Powered) return 4820; else return 4821; else if (Powered) return 4822; else return 4823; else if (Open) if (Powered) return 4824; else return 4825; else if (Powered) return 4826; else return 4827; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (InWall) if (Open) if (Powered) return 4828; else return 4829; else if (Powered) return 4830; else return 4831; else if (Open) if (Powered) return 4832; else return 4833; else if (Powered) return 4834; else return 4835; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (InWall) if (Open) if (Powered) return 4836; else return 4837; else if (Powered) return 4838; else return 4839; else if (Open) if (Powered) return 4840; else return 4841; else if (Powered) return 4842; else return 4843; else if (InWall) if (Open) if (Powered) return 4844; else return 4845; else if (Powered) return 4846; else return 4847; else if (Open) if (Powered) return 4848; else return 4849; else if (Powered) return 4850; else return 4851; } BlockState OakFenceGate(); eBlockFace Facing(BlockState Block); bool InWall(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace OakLeaves { constexpr BlockState OakLeaves(const unsigned char Distance, const bool Persistent) { if (Distance == 1) if (Persistent) return 145; else return 146; else if (Distance == 2) if (Persistent) return 147; else return 148; else if (Distance == 3) if (Persistent) return 149; else return 150; else if (Distance == 4) if (Persistent) return 151; else return 152; else if (Distance == 5) if (Persistent) return 153; else return 154; else if (Distance == 6) if (Persistent) return 155; else return 156; else if (Persistent) return 157; else return 158; } BlockState OakLeaves(); unsigned char Distance(BlockState Block); bool Persistent(BlockState Block); } namespace OakLog { enum class Axis { X, Y, Z }; constexpr BlockState OakLog(const enum Axis Axis) { if (Axis == Axis::X) return 73; else if (Axis == Axis::Y) return 74; else return 75; } BlockState OakLog(); enum Axis Axis(BlockState Block); } namespace OakPlanks { constexpr BlockState OakPlanks() { return 15; } } namespace OakPressurePlate { constexpr BlockState OakPressurePlate(const bool Powered) { if (Powered) return 3873; else return 3874; } BlockState OakPressurePlate(); bool Powered(BlockState Block); } namespace OakSapling { constexpr BlockState OakSapling(const unsigned char Stage) { if (Stage == 0) return 21; else return 22; } BlockState OakSapling(); unsigned char Stage(BlockState Block); } namespace OakSign { constexpr BlockState OakSign(const unsigned char Rotation) { if (Rotation == 0) return 3382; else if (Rotation == 1) return 3384; else if (Rotation == 2) return 3386; else if (Rotation == 3) return 3388; else if (Rotation == 4) return 3390; else if (Rotation == 5) return 3392; else if (Rotation == 6) return 3394; else if (Rotation == 7) return 3396; else if (Rotation == 8) return 3398; else if (Rotation == 9) return 3400; else if (Rotation == 10) return 3402; else if (Rotation == 11) return 3404; else if (Rotation == 12) return 3406; else if (Rotation == 13) return 3408; else if (Rotation == 14) return 3410; else return 3412; } BlockState OakSign(); unsigned char Rotation(BlockState Block); } namespace OakSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState OakSlab(const enum Type Type) { if (Type == Type::Top) return 8301; else if (Type == Type::Bottom) return 8303; else return 8305; } BlockState OakSlab(); enum Type Type(BlockState Block); } namespace OakStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState OakStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 1955; else if (Shape == Shape::InnerLeft) return 1957; else if (Shape == Shape::InnerRight) return 1959; else if (Shape == Shape::OuterLeft) return 1961; else return 1963; else if (Shape == Shape::Straight) return 1965; else if (Shape == Shape::InnerLeft) return 1967; else if (Shape == Shape::InnerRight) return 1969; else if (Shape == Shape::OuterLeft) return 1971; else return 1973; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 1975; else if (Shape == Shape::InnerLeft) return 1977; else if (Shape == Shape::InnerRight) return 1979; else if (Shape == Shape::OuterLeft) return 1981; else return 1983; else if (Shape == Shape::Straight) return 1985; else if (Shape == Shape::InnerLeft) return 1987; else if (Shape == Shape::InnerRight) return 1989; else if (Shape == Shape::OuterLeft) return 1991; else return 1993; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 1995; else if (Shape == Shape::InnerLeft) return 1997; else if (Shape == Shape::InnerRight) return 1999; else if (Shape == Shape::OuterLeft) return 2001; else return 2003; else if (Shape == Shape::Straight) return 2005; else if (Shape == Shape::InnerLeft) return 2007; else if (Shape == Shape::InnerRight) return 2009; else if (Shape == Shape::OuterLeft) return 2011; else return 2013; else if (Half == Half::Top) if (Shape == Shape::Straight) return 2015; else if (Shape == Shape::InnerLeft) return 2017; else if (Shape == Shape::InnerRight) return 2019; else if (Shape == Shape::OuterLeft) return 2021; else return 2023; else if (Shape == Shape::Straight) return 2025; else if (Shape == Shape::InnerLeft) return 2027; else if (Shape == Shape::InnerRight) return 2029; else if (Shape == Shape::OuterLeft) return 2031; else return 2033; } BlockState OakStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace OakTrapdoor { enum class Half { Top, Bottom }; constexpr BlockState OakTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Open) if (Powered) return 4112; else return 4114; else if (Powered) return 4116; else return 4118; else if (Open) if (Powered) return 4120; else return 4122; else if (Powered) return 4124; else return 4126; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Open) if (Powered) return 4128; else return 4130; else if (Powered) return 4132; else return 4134; else if (Open) if (Powered) return 4136; else return 4138; else if (Powered) return 4140; else return 4142; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Open) if (Powered) return 4144; else return 4146; else if (Powered) return 4148; else return 4150; else if (Open) if (Powered) return 4152; else return 4154; else if (Powered) return 4156; else return 4158; else if (Half == Half::Top) if (Open) if (Powered) return 4160; else return 4162; else if (Powered) return 4164; else return 4166; else if (Open) if (Powered) return 4168; else return 4170; else if (Powered) return 4172; else return 4174; } BlockState OakTrapdoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace OakWallSign { constexpr BlockState OakWallSign(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3736; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3738; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3740; else return 3742; } BlockState OakWallSign(); eBlockFace Facing(BlockState Block); } namespace OakWood { enum class Axis { X, Y, Z }; constexpr BlockState OakWood(const enum Axis Axis) { if (Axis == Axis::X) return 109; else if (Axis == Axis::Y) return 110; else return 111; } BlockState OakWood(); enum Axis Axis(BlockState Block); } namespace Observer { constexpr BlockState Observer(const eBlockFace Facing, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 9260; else return 9261; else if (Facing == eBlockFace::BLOCK_FACE_XP) if (Powered) return 9262; else return 9263; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 9264; else return 9265; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 9266; else return 9267; else if (Facing == eBlockFace::BLOCK_FACE_YP) if (Powered) return 9268; else return 9269; else if (Powered) return 9270; else return 9271; } BlockState Observer(); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace Obsidian { constexpr BlockState Obsidian() { return 1434; } } namespace OrangeBanner { constexpr BlockState OrangeBanner(const unsigned char Rotation) { if (Rotation == 0) return 7913; else if (Rotation == 1) return 7914; else if (Rotation == 2) return 7915; else if (Rotation == 3) return 7916; else if (Rotation == 4) return 7917; else if (Rotation == 5) return 7918; else if (Rotation == 6) return 7919; else if (Rotation == 7) return 7920; else if (Rotation == 8) return 7921; else if (Rotation == 9) return 7922; else if (Rotation == 10) return 7923; else if (Rotation == 11) return 7924; else if (Rotation == 12) return 7925; else if (Rotation == 13) return 7926; else if (Rotation == 14) return 7927; else return 7928; } BlockState OrangeBanner(); unsigned char Rotation(BlockState Block); } namespace OrangeBed { enum class Part { Head, Foot }; constexpr BlockState OrangeBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1065; else return 1066; else if (Part == Part::Head) return 1067; else return 1068; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1069; else return 1070; else if (Part == Part::Head) return 1071; else return 1072; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1073; else return 1074; else if (Part == Part::Head) return 1075; else return 1076; else if (Occupied) if (Part == Part::Head) return 1077; else return 1078; else if (Part == Part::Head) return 1079; else return 1080; } BlockState OrangeBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace OrangeCarpet { constexpr BlockState OrangeCarpet() { return 7867; } } namespace OrangeConcrete { constexpr BlockState OrangeConcrete() { return 9439; } } namespace OrangeConcretePowder { constexpr BlockState OrangeConcretePowder() { return 9455; } } namespace OrangeGlazedTerracotta { constexpr BlockState OrangeGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9378; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9379; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9380; else return 9381; } BlockState OrangeGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace OrangeShulkerBox { constexpr BlockState OrangeShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9284; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9285; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9286; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9287; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9288; else return 9289; } BlockState OrangeShulkerBox(); eBlockFace Facing(BlockState Block); } namespace OrangeStainedGlass { constexpr BlockState OrangeStainedGlass() { return 4096; } } namespace OrangeStainedGlassPane { constexpr BlockState OrangeStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 6897; else return 6898; else if (West) return 6901; else return 6902; else if (South) if (West) return 6905; else return 6906; else if (West) return 6909; else return 6910; else if (North) if (South) if (West) return 6913; else return 6914; else if (West) return 6917; else return 6918; else if (South) if (West) return 6921; else return 6922; else if (West) return 6925; else return 6926; } BlockState OrangeStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace OrangeTerracotta { constexpr BlockState OrangeTerracotta() { return 6848; } } namespace OrangeTulip { constexpr BlockState OrangeTulip() { return 1418; } } namespace OrangeWallBanner { constexpr BlockState OrangeWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8157; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8158; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8159; else return 8160; } BlockState OrangeWallBanner(); eBlockFace Facing(BlockState Block); } namespace OrangeWool { constexpr BlockState OrangeWool() { return 1385; } } namespace OxeyeDaisy { constexpr BlockState OxeyeDaisy() { return 1421; } } namespace PackedIce { constexpr BlockState PackedIce() { return 7884; } } namespace Peony { enum class Half { Upper, Lower }; constexpr BlockState Peony(const enum Half Half) { if (Half == Half::Upper) return 7891; else return 7892; } BlockState Peony(); enum Half Half(BlockState Block); } namespace PetrifiedOakSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState PetrifiedOakSlab(const enum Type Type) { if (Type == Type::Top) return 8361; else if (Type == Type::Bottom) return 8363; else return 8365; } BlockState PetrifiedOakSlab(); enum Type Type(BlockState Block); } namespace PinkBanner { constexpr BlockState PinkBanner(const unsigned char Rotation) { if (Rotation == 0) return 7993; else if (Rotation == 1) return 7994; else if (Rotation == 2) return 7995; else if (Rotation == 3) return 7996; else if (Rotation == 4) return 7997; else if (Rotation == 5) return 7998; else if (Rotation == 6) return 7999; else if (Rotation == 7) return 8000; else if (Rotation == 8) return 8001; else if (Rotation == 9) return 8002; else if (Rotation == 10) return 8003; else if (Rotation == 11) return 8004; else if (Rotation == 12) return 8005; else if (Rotation == 13) return 8006; else if (Rotation == 14) return 8007; else return 8008; } BlockState PinkBanner(); unsigned char Rotation(BlockState Block); } namespace PinkBed { enum class Part { Head, Foot }; constexpr BlockState PinkBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1145; else return 1146; else if (Part == Part::Head) return 1147; else return 1148; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1149; else return 1150; else if (Part == Part::Head) return 1151; else return 1152; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1153; else return 1154; else if (Part == Part::Head) return 1155; else return 1156; else if (Occupied) if (Part == Part::Head) return 1157; else return 1158; else if (Part == Part::Head) return 1159; else return 1160; } BlockState PinkBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace PinkCarpet { constexpr BlockState PinkCarpet() { return 7872; } } namespace PinkConcrete { constexpr BlockState PinkConcrete() { return 9444; } } namespace PinkConcretePowder { constexpr BlockState PinkConcretePowder() { return 9460; } } namespace PinkGlazedTerracotta { constexpr BlockState PinkGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9398; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9399; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9400; else return 9401; } BlockState PinkGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace PinkShulkerBox { constexpr BlockState PinkShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9314; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9315; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9316; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9317; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9318; else return 9319; } BlockState PinkShulkerBox(); eBlockFace Facing(BlockState Block); } namespace PinkStainedGlass { constexpr BlockState PinkStainedGlass() { return 4101; } } namespace PinkStainedGlassPane { constexpr BlockState PinkStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7057; else return 7058; else if (West) return 7061; else return 7062; else if (South) if (West) return 7065; else return 7066; else if (West) return 7069; else return 7070; else if (North) if (South) if (West) return 7073; else return 7074; else if (West) return 7077; else return 7078; else if (South) if (West) return 7081; else return 7082; else if (West) return 7085; else return 7086; } BlockState PinkStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace PinkTerracotta { constexpr BlockState PinkTerracotta() { return 6853; } } namespace PinkTulip { constexpr BlockState PinkTulip() { return 1420; } } namespace PinkWallBanner { constexpr BlockState PinkWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8177; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8178; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8179; else return 8180; } BlockState PinkWallBanner(); eBlockFace Facing(BlockState Block); } namespace PinkWool { constexpr BlockState PinkWool() { return 1390; } } namespace Piston { constexpr BlockState Piston(const bool Extended, const eBlockFace Facing) { if (Extended) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1348; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1349; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1350; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1351; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1352; else return 1353; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1354; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1355; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1356; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1357; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1358; else return 1359; } BlockState Piston(); bool Extended(BlockState Block); eBlockFace Facing(BlockState Block); } namespace PistonHead { enum class Type { Normal, Sticky }; constexpr BlockState PistonHead(const eBlockFace Facing, const bool Short, const enum Type Type) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Short) if (Type == Type::Normal) return 1360; else return 1361; else if (Type == Type::Normal) return 1362; else return 1363; else if (Facing == eBlockFace::BLOCK_FACE_XP) if (Short) if (Type == Type::Normal) return 1364; else return 1365; else if (Type == Type::Normal) return 1366; else return 1367; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Short) if (Type == Type::Normal) return 1368; else return 1369; else if (Type == Type::Normal) return 1370; else return 1371; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Short) if (Type == Type::Normal) return 1372; else return 1373; else if (Type == Type::Normal) return 1374; else return 1375; else if (Facing == eBlockFace::BLOCK_FACE_YP) if (Short) if (Type == Type::Normal) return 1376; else return 1377; else if (Type == Type::Normal) return 1378; else return 1379; else if (Short) if (Type == Type::Normal) return 1380; else return 1381; else if (Type == Type::Normal) return 1382; else return 1383; } BlockState PistonHead(); eBlockFace Facing(BlockState Block); bool Short(BlockState Block); enum Type Type(BlockState Block); } namespace PlayerHead { constexpr BlockState PlayerHead(const unsigned char Rotation) { if (Rotation == 0) return 6550; else if (Rotation == 1) return 6551; else if (Rotation == 2) return 6552; else if (Rotation == 3) return 6553; else if (Rotation == 4) return 6554; else if (Rotation == 5) return 6555; else if (Rotation == 6) return 6556; else if (Rotation == 7) return 6557; else if (Rotation == 8) return 6558; else if (Rotation == 9) return 6559; else if (Rotation == 10) return 6560; else if (Rotation == 11) return 6561; else if (Rotation == 12) return 6562; else if (Rotation == 13) return 6563; else if (Rotation == 14) return 6564; else return 6565; } BlockState PlayerHead(); unsigned char Rotation(BlockState Block); } namespace PlayerWallHead { constexpr BlockState PlayerWallHead(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6566; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6567; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6568; else return 6569; } BlockState PlayerWallHead(); eBlockFace Facing(BlockState Block); } namespace Podzol { constexpr BlockState Podzol(const bool Snowy) { if (Snowy) return 12; else return 13; } BlockState Podzol(); bool Snowy(BlockState Block); } namespace PolishedAndesite { constexpr BlockState PolishedAndesite() { return 7; } } namespace PolishedAndesiteSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState PolishedAndesiteSlab(const enum Type Type) { if (Type == Type::Top) return 10856; else if (Type == Type::Bottom) return 10858; else return 10860; } BlockState PolishedAndesiteSlab(); enum Type Type(BlockState Block); } namespace PolishedAndesiteStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState PolishedAndesiteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10630; else if (Shape == Shape::InnerLeft) return 10632; else if (Shape == Shape::InnerRight) return 10634; else if (Shape == Shape::OuterLeft) return 10636; else return 10638; else if (Shape == Shape::Straight) return 10640; else if (Shape == Shape::InnerLeft) return 10642; else if (Shape == Shape::InnerRight) return 10644; else if (Shape == Shape::OuterLeft) return 10646; else return 10648; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10650; else if (Shape == Shape::InnerLeft) return 10652; else if (Shape == Shape::InnerRight) return 10654; else if (Shape == Shape::OuterLeft) return 10656; else return 10658; else if (Shape == Shape::Straight) return 10660; else if (Shape == Shape::InnerLeft) return 10662; else if (Shape == Shape::InnerRight) return 10664; else if (Shape == Shape::OuterLeft) return 10666; else return 10668; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10670; else if (Shape == Shape::InnerLeft) return 10672; else if (Shape == Shape::InnerRight) return 10674; else if (Shape == Shape::OuterLeft) return 10676; else return 10678; else if (Shape == Shape::Straight) return 10680; else if (Shape == Shape::InnerLeft) return 10682; else if (Shape == Shape::InnerRight) return 10684; else if (Shape == Shape::OuterLeft) return 10686; else return 10688; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10690; else if (Shape == Shape::InnerLeft) return 10692; else if (Shape == Shape::InnerRight) return 10694; else if (Shape == Shape::OuterLeft) return 10696; else return 10698; else if (Shape == Shape::Straight) return 10700; else if (Shape == Shape::InnerLeft) return 10702; else if (Shape == Shape::InnerRight) return 10704; else if (Shape == Shape::OuterLeft) return 10706; else return 10708; } BlockState PolishedAndesiteStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace PolishedBasalt { enum class Axis { X, Y, Z }; constexpr BlockState PolishedBasalt(const enum Axis Axis) { if (Axis == Axis::X) return 4005; else if (Axis == Axis::Y) return 4006; else return 4007; } BlockState PolishedBasalt(); enum Axis Axis(BlockState Block); } namespace PolishedBlackstone { constexpr BlockState PolishedBlackstone() { return 16250; } } namespace PolishedBlackstoneBrickSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState PolishedBlackstoneBrickSlab(const enum Type Type) { if (Type == Type::Top) return 16255; else if (Type == Type::Bottom) return 16257; else return 16259; } BlockState PolishedBlackstoneBrickSlab(); enum Type Type(BlockState Block); } namespace PolishedBlackstoneBrickStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState PolishedBlackstoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 16261; else if (Shape == Shape::InnerLeft) return 16263; else if (Shape == Shape::InnerRight) return 16265; else if (Shape == Shape::OuterLeft) return 16267; else return 16269; else if (Shape == Shape::Straight) return 16271; else if (Shape == Shape::InnerLeft) return 16273; else if (Shape == Shape::InnerRight) return 16275; else if (Shape == Shape::OuterLeft) return 16277; else return 16279; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 16281; else if (Shape == Shape::InnerLeft) return 16283; else if (Shape == Shape::InnerRight) return 16285; else if (Shape == Shape::OuterLeft) return 16287; else return 16289; else if (Shape == Shape::Straight) return 16291; else if (Shape == Shape::InnerLeft) return 16293; else if (Shape == Shape::InnerRight) return 16295; else if (Shape == Shape::OuterLeft) return 16297; else return 16299; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 16301; else if (Shape == Shape::InnerLeft) return 16303; else if (Shape == Shape::InnerRight) return 16305; else if (Shape == Shape::OuterLeft) return 16307; else return 16309; else if (Shape == Shape::Straight) return 16311; else if (Shape == Shape::InnerLeft) return 16313; else if (Shape == Shape::InnerRight) return 16315; else if (Shape == Shape::OuterLeft) return 16317; else return 16319; else if (Half == Half::Top) if (Shape == Shape::Straight) return 16321; else if (Shape == Shape::InnerLeft) return 16323; else if (Shape == Shape::InnerRight) return 16325; else if (Shape == Shape::OuterLeft) return 16327; else return 16329; else if (Shape == Shape::Straight) return 16331; else if (Shape == Shape::InnerLeft) return 16333; else if (Shape == Shape::InnerRight) return 16335; else if (Shape == Shape::OuterLeft) return 16337; else return 16339; } BlockState PolishedBlackstoneBrickStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace PolishedBlackstoneBrickWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState PolishedBlackstoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 16343; else if (West == West::Low) return 16344; else return 16345; else if (West == West::None) return 16349; else if (West == West::Low) return 16350; else return 16351; else if (South == South::Low) if (Up) if (West == West::None) return 16355; else if (West == West::Low) return 16356; else return 16357; else if (West == West::None) return 16361; else if (West == West::Low) return 16362; else return 16363; else if (Up) if (West == West::None) return 16367; else if (West == West::Low) return 16368; else return 16369; else if (West == West::None) return 16373; else if (West == West::Low) return 16374; else return 16375; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 16379; else if (West == West::Low) return 16380; else return 16381; else if (West == West::None) return 16385; else if (West == West::Low) return 16386; else return 16387; else if (South == South::Low) if (Up) if (West == West::None) return 16391; else if (West == West::Low) return 16392; else return 16393; else if (West == West::None) return 16397; else if (West == West::Low) return 16398; else return 16399; else if (Up) if (West == West::None) return 16403; else if (West == West::Low) return 16404; else return 16405; else if (West == West::None) return 16409; else if (West == West::Low) return 16410; else return 16411; else if (South == South::None) if (Up) if (West == West::None) return 16415; else if (West == West::Low) return 16416; else return 16417; else if (West == West::None) return 16421; else if (West == West::Low) return 16422; else return 16423; else if (South == South::Low) if (Up) if (West == West::None) return 16427; else if (West == West::Low) return 16428; else return 16429; else if (West == West::None) return 16433; else if (West == West::Low) return 16434; else return 16435; else if (Up) if (West == West::None) return 16439; else if (West == West::Low) return 16440; else return 16441; else if (West == West::None) return 16445; else if (West == West::Low) return 16446; else return 16447; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 16451; else if (West == West::Low) return 16452; else return 16453; else if (West == West::None) return 16457; else if (West == West::Low) return 16458; else return 16459; else if (South == South::Low) if (Up) if (West == West::None) return 16463; else if (West == West::Low) return 16464; else return 16465; else if (West == West::None) return 16469; else if (West == West::Low) return 16470; else return 16471; else if (Up) if (West == West::None) return 16475; else if (West == West::Low) return 16476; else return 16477; else if (West == West::None) return 16481; else if (West == West::Low) return 16482; else return 16483; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 16487; else if (West == West::Low) return 16488; else return 16489; else if (West == West::None) return 16493; else if (West == West::Low) return 16494; else return 16495; else if (South == South::Low) if (Up) if (West == West::None) return 16499; else if (West == West::Low) return 16500; else return 16501; else if (West == West::None) return 16505; else if (West == West::Low) return 16506; else return 16507; else if (Up) if (West == West::None) return 16511; else if (West == West::Low) return 16512; else return 16513; else if (West == West::None) return 16517; else if (West == West::Low) return 16518; else return 16519; else if (South == South::None) if (Up) if (West == West::None) return 16523; else if (West == West::Low) return 16524; else return 16525; else if (West == West::None) return 16529; else if (West == West::Low) return 16530; else return 16531; else if (South == South::Low) if (Up) if (West == West::None) return 16535; else if (West == West::Low) return 16536; else return 16537; else if (West == West::None) return 16541; else if (West == West::Low) return 16542; else return 16543; else if (Up) if (West == West::None) return 16547; else if (West == West::Low) return 16548; else return 16549; else if (West == West::None) return 16553; else if (West == West::Low) return 16554; else return 16555; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 16559; else if (West == West::Low) return 16560; else return 16561; else if (West == West::None) return 16565; else if (West == West::Low) return 16566; else return 16567; else if (South == South::Low) if (Up) if (West == West::None) return 16571; else if (West == West::Low) return 16572; else return 16573; else if (West == West::None) return 16577; else if (West == West::Low) return 16578; else return 16579; else if (Up) if (West == West::None) return 16583; else if (West == West::Low) return 16584; else return 16585; else if (West == West::None) return 16589; else if (West == West::Low) return 16590; else return 16591; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 16595; else if (West == West::Low) return 16596; else return 16597; else if (West == West::None) return 16601; else if (West == West::Low) return 16602; else return 16603; else if (South == South::Low) if (Up) if (West == West::None) return 16607; else if (West == West::Low) return 16608; else return 16609; else if (West == West::None) return 16613; else if (West == West::Low) return 16614; else return 16615; else if (Up) if (West == West::None) return 16619; else if (West == West::Low) return 16620; else return 16621; else if (West == West::None) return 16625; else if (West == West::Low) return 16626; else return 16627; else if (South == South::None) if (Up) if (West == West::None) return 16631; else if (West == West::Low) return 16632; else return 16633; else if (West == West::None) return 16637; else if (West == West::Low) return 16638; else return 16639; else if (South == South::Low) if (Up) if (West == West::None) return 16643; else if (West == West::Low) return 16644; else return 16645; else if (West == West::None) return 16649; else if (West == West::Low) return 16650; else return 16651; else if (Up) if (West == West::None) return 16655; else if (West == West::Low) return 16656; else return 16657; else if (West == West::None) return 16661; else if (West == West::Low) return 16662; else return 16663; } BlockState PolishedBlackstoneBrickWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace PolishedBlackstoneBricks { constexpr BlockState PolishedBlackstoneBricks() { return 16251; } } namespace PolishedBlackstoneButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState PolishedBlackstoneButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 16753; else return 16754; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 16755; else return 16756; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 16757; else return 16758; else if (Powered) return 16759; else return 16760; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 16761; else return 16762; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 16763; else return 16764; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 16765; else return 16766; else if (Powered) return 16767; else return 16768; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 16769; else return 16770; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 16771; else return 16772; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 16773; else return 16774; else if (Powered) return 16775; else return 16776; } BlockState PolishedBlackstoneButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace PolishedBlackstonePressurePlate { constexpr BlockState PolishedBlackstonePressurePlate(const bool Powered) { if (Powered) return 16751; else return 16752; } BlockState PolishedBlackstonePressurePlate(); bool Powered(BlockState Block); } namespace PolishedBlackstoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState PolishedBlackstoneSlab(const enum Type Type) { if (Type == Type::Top) return 16746; else if (Type == Type::Bottom) return 16748; else return 16750; } BlockState PolishedBlackstoneSlab(); enum Type Type(BlockState Block); } namespace PolishedBlackstoneStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState PolishedBlackstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 16666; else if (Shape == Shape::InnerLeft) return 16668; else if (Shape == Shape::InnerRight) return 16670; else if (Shape == Shape::OuterLeft) return 16672; else return 16674; else if (Shape == Shape::Straight) return 16676; else if (Shape == Shape::InnerLeft) return 16678; else if (Shape == Shape::InnerRight) return 16680; else if (Shape == Shape::OuterLeft) return 16682; else return 16684; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 16686; else if (Shape == Shape::InnerLeft) return 16688; else if (Shape == Shape::InnerRight) return 16690; else if (Shape == Shape::OuterLeft) return 16692; else return 16694; else if (Shape == Shape::Straight) return 16696; else if (Shape == Shape::InnerLeft) return 16698; else if (Shape == Shape::InnerRight) return 16700; else if (Shape == Shape::OuterLeft) return 16702; else return 16704; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 16706; else if (Shape == Shape::InnerLeft) return 16708; else if (Shape == Shape::InnerRight) return 16710; else if (Shape == Shape::OuterLeft) return 16712; else return 16714; else if (Shape == Shape::Straight) return 16716; else if (Shape == Shape::InnerLeft) return 16718; else if (Shape == Shape::InnerRight) return 16720; else if (Shape == Shape::OuterLeft) return 16722; else return 16724; else if (Half == Half::Top) if (Shape == Shape::Straight) return 16726; else if (Shape == Shape::InnerLeft) return 16728; else if (Shape == Shape::InnerRight) return 16730; else if (Shape == Shape::OuterLeft) return 16732; else return 16734; else if (Shape == Shape::Straight) return 16736; else if (Shape == Shape::InnerLeft) return 16738; else if (Shape == Shape::InnerRight) return 16740; else if (Shape == Shape::OuterLeft) return 16742; else return 16744; } BlockState PolishedBlackstoneStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace PolishedBlackstoneWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState PolishedBlackstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 16780; else if (West == West::Low) return 16781; else return 16782; else if (West == West::None) return 16786; else if (West == West::Low) return 16787; else return 16788; else if (South == South::Low) if (Up) if (West == West::None) return 16792; else if (West == West::Low) return 16793; else return 16794; else if (West == West::None) return 16798; else if (West == West::Low) return 16799; else return 16800; else if (Up) if (West == West::None) return 16804; else if (West == West::Low) return 16805; else return 16806; else if (West == West::None) return 16810; else if (West == West::Low) return 16811; else return 16812; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 16816; else if (West == West::Low) return 16817; else return 16818; else if (West == West::None) return 16822; else if (West == West::Low) return 16823; else return 16824; else if (South == South::Low) if (Up) if (West == West::None) return 16828; else if (West == West::Low) return 16829; else return 16830; else if (West == West::None) return 16834; else if (West == West::Low) return 16835; else return 16836; else if (Up) if (West == West::None) return 16840; else if (West == West::Low) return 16841; else return 16842; else if (West == West::None) return 16846; else if (West == West::Low) return 16847; else return 16848; else if (South == South::None) if (Up) if (West == West::None) return 16852; else if (West == West::Low) return 16853; else return 16854; else if (West == West::None) return 16858; else if (West == West::Low) return 16859; else return 16860; else if (South == South::Low) if (Up) if (West == West::None) return 16864; else if (West == West::Low) return 16865; else return 16866; else if (West == West::None) return 16870; else if (West == West::Low) return 16871; else return 16872; else if (Up) if (West == West::None) return 16876; else if (West == West::Low) return 16877; else return 16878; else if (West == West::None) return 16882; else if (West == West::Low) return 16883; else return 16884; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 16888; else if (West == West::Low) return 16889; else return 16890; else if (West == West::None) return 16894; else if (West == West::Low) return 16895; else return 16896; else if (South == South::Low) if (Up) if (West == West::None) return 16900; else if (West == West::Low) return 16901; else return 16902; else if (West == West::None) return 16906; else if (West == West::Low) return 16907; else return 16908; else if (Up) if (West == West::None) return 16912; else if (West == West::Low) return 16913; else return 16914; else if (West == West::None) return 16918; else if (West == West::Low) return 16919; else return 16920; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 16924; else if (West == West::Low) return 16925; else return 16926; else if (West == West::None) return 16930; else if (West == West::Low) return 16931; else return 16932; else if (South == South::Low) if (Up) if (West == West::None) return 16936; else if (West == West::Low) return 16937; else return 16938; else if (West == West::None) return 16942; else if (West == West::Low) return 16943; else return 16944; else if (Up) if (West == West::None) return 16948; else if (West == West::Low) return 16949; else return 16950; else if (West == West::None) return 16954; else if (West == West::Low) return 16955; else return 16956; else if (South == South::None) if (Up) if (West == West::None) return 16960; else if (West == West::Low) return 16961; else return 16962; else if (West == West::None) return 16966; else if (West == West::Low) return 16967; else return 16968; else if (South == South::Low) if (Up) if (West == West::None) return 16972; else if (West == West::Low) return 16973; else return 16974; else if (West == West::None) return 16978; else if (West == West::Low) return 16979; else return 16980; else if (Up) if (West == West::None) return 16984; else if (West == West::Low) return 16985; else return 16986; else if (West == West::None) return 16990; else if (West == West::Low) return 16991; else return 16992; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 16996; else if (West == West::Low) return 16997; else return 16998; else if (West == West::None) return 17002; else if (West == West::Low) return 17003; else return 17004; else if (South == South::Low) if (Up) if (West == West::None) return 17008; else if (West == West::Low) return 17009; else return 17010; else if (West == West::None) return 17014; else if (West == West::Low) return 17015; else return 17016; else if (Up) if (West == West::None) return 17020; else if (West == West::Low) return 17021; else return 17022; else if (West == West::None) return 17026; else if (West == West::Low) return 17027; else return 17028; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 17032; else if (West == West::Low) return 17033; else return 17034; else if (West == West::None) return 17038; else if (West == West::Low) return 17039; else return 17040; else if (South == South::Low) if (Up) if (West == West::None) return 17044; else if (West == West::Low) return 17045; else return 17046; else if (West == West::None) return 17050; else if (West == West::Low) return 17051; else return 17052; else if (Up) if (West == West::None) return 17056; else if (West == West::Low) return 17057; else return 17058; else if (West == West::None) return 17062; else if (West == West::Low) return 17063; else return 17064; else if (South == South::None) if (Up) if (West == West::None) return 17068; else if (West == West::Low) return 17069; else return 17070; else if (West == West::None) return 17074; else if (West == West::Low) return 17075; else return 17076; else if (South == South::Low) if (Up) if (West == West::None) return 17080; else if (West == West::Low) return 17081; else return 17082; else if (West == West::None) return 17086; else if (West == West::Low) return 17087; else return 17088; else if (Up) if (West == West::None) return 17092; else if (West == West::Low) return 17093; else return 17094; else if (West == West::None) return 17098; else if (West == West::Low) return 17099; else return 17100; } BlockState PolishedBlackstoneWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace PolishedDiorite { constexpr BlockState PolishedDiorite() { return 5; } } namespace PolishedDioriteSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState PolishedDioriteSlab(const enum Type Type) { if (Type == Type::Top) return 10808; else if (Type == Type::Bottom) return 10810; else return 10812; } BlockState PolishedDioriteSlab(); enum Type Type(BlockState Block); } namespace PolishedDioriteStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState PolishedDioriteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9910; else if (Shape == Shape::InnerLeft) return 9912; else if (Shape == Shape::InnerRight) return 9914; else if (Shape == Shape::OuterLeft) return 9916; else return 9918; else if (Shape == Shape::Straight) return 9920; else if (Shape == Shape::InnerLeft) return 9922; else if (Shape == Shape::InnerRight) return 9924; else if (Shape == Shape::OuterLeft) return 9926; else return 9928; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 9930; else if (Shape == Shape::InnerLeft) return 9932; else if (Shape == Shape::InnerRight) return 9934; else if (Shape == Shape::OuterLeft) return 9936; else return 9938; else if (Shape == Shape::Straight) return 9940; else if (Shape == Shape::InnerLeft) return 9942; else if (Shape == Shape::InnerRight) return 9944; else if (Shape == Shape::OuterLeft) return 9946; else return 9948; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9950; else if (Shape == Shape::InnerLeft) return 9952; else if (Shape == Shape::InnerRight) return 9954; else if (Shape == Shape::OuterLeft) return 9956; else return 9958; else if (Shape == Shape::Straight) return 9960; else if (Shape == Shape::InnerLeft) return 9962; else if (Shape == Shape::InnerRight) return 9964; else if (Shape == Shape::OuterLeft) return 9966; else return 9968; else if (Half == Half::Top) if (Shape == Shape::Straight) return 9970; else if (Shape == Shape::InnerLeft) return 9972; else if (Shape == Shape::InnerRight) return 9974; else if (Shape == Shape::OuterLeft) return 9976; else return 9978; else if (Shape == Shape::Straight) return 9980; else if (Shape == Shape::InnerLeft) return 9982; else if (Shape == Shape::InnerRight) return 9984; else if (Shape == Shape::OuterLeft) return 9986; else return 9988; } BlockState PolishedDioriteStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace PolishedGranite { constexpr BlockState PolishedGranite() { return 3; } } namespace PolishedGraniteSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState PolishedGraniteSlab(const enum Type Type) { if (Type == Type::Top) return 10790; else if (Type == Type::Bottom) return 10792; else return 10794; } BlockState PolishedGraniteSlab(); enum Type Type(BlockState Block); } namespace PolishedGraniteStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState PolishedGraniteStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9670; else if (Shape == Shape::InnerLeft) return 9672; else if (Shape == Shape::InnerRight) return 9674; else if (Shape == Shape::OuterLeft) return 9676; else return 9678; else if (Shape == Shape::Straight) return 9680; else if (Shape == Shape::InnerLeft) return 9682; else if (Shape == Shape::InnerRight) return 9684; else if (Shape == Shape::OuterLeft) return 9686; else return 9688; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 9690; else if (Shape == Shape::InnerLeft) return 9692; else if (Shape == Shape::InnerRight) return 9694; else if (Shape == Shape::OuterLeft) return 9696; else return 9698; else if (Shape == Shape::Straight) return 9700; else if (Shape == Shape::InnerLeft) return 9702; else if (Shape == Shape::InnerRight) return 9704; else if (Shape == Shape::OuterLeft) return 9706; else return 9708; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9710; else if (Shape == Shape::InnerLeft) return 9712; else if (Shape == Shape::InnerRight) return 9714; else if (Shape == Shape::OuterLeft) return 9716; else return 9718; else if (Shape == Shape::Straight) return 9720; else if (Shape == Shape::InnerLeft) return 9722; else if (Shape == Shape::InnerRight) return 9724; else if (Shape == Shape::OuterLeft) return 9726; else return 9728; else if (Half == Half::Top) if (Shape == Shape::Straight) return 9730; else if (Shape == Shape::InnerLeft) return 9732; else if (Shape == Shape::InnerRight) return 9734; else if (Shape == Shape::OuterLeft) return 9736; else return 9738; else if (Shape == Shape::Straight) return 9740; else if (Shape == Shape::InnerLeft) return 9742; else if (Shape == Shape::InnerRight) return 9744; else if (Shape == Shape::OuterLeft) return 9746; else return 9748; } BlockState PolishedGraniteStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace Poppy { constexpr BlockState Poppy() { return 1413; } } namespace Potatoes { constexpr BlockState Potatoes(const unsigned char Age) { if (Age == 0) return 6338; else if (Age == 1) return 6339; else if (Age == 2) return 6340; else if (Age == 3) return 6341; else if (Age == 4) return 6342; else if (Age == 5) return 6343; else if (Age == 6) return 6344; else return 6345; } BlockState Potatoes(); unsigned char Age(BlockState Block); } namespace PottedAcaciaSapling { constexpr BlockState PottedAcaciaSapling() { return 6310; } } namespace PottedAllium { constexpr BlockState PottedAllium() { return 6316; } } namespace PottedAzureBluet { constexpr BlockState PottedAzureBluet() { return 6317; } } namespace PottedBamboo { constexpr BlockState PottedBamboo() { return 9664; } } namespace PottedBirchSapling { constexpr BlockState PottedBirchSapling() { return 6308; } } namespace PottedBlueOrchid { constexpr BlockState PottedBlueOrchid() { return 6315; } } namespace PottedBrownMushroom { constexpr BlockState PottedBrownMushroom() { return 6327; } } namespace PottedCactus { constexpr BlockState PottedCactus() { return 6329; } } namespace PottedCornflower { constexpr BlockState PottedCornflower() { return 6323; } } namespace PottedCrimsonFungus { constexpr BlockState PottedCrimsonFungus() { return 15834; } } namespace PottedCrimsonRoots { constexpr BlockState PottedCrimsonRoots() { return 15836; } } namespace PottedDandelion { constexpr BlockState PottedDandelion() { return 6313; } } namespace PottedDarkOakSapling { constexpr BlockState PottedDarkOakSapling() { return 6311; } } namespace PottedDeadBush { constexpr BlockState PottedDeadBush() { return 6328; } } namespace PottedFern { constexpr BlockState PottedFern() { return 6312; } } namespace PottedJungleSapling { constexpr BlockState PottedJungleSapling() { return 6309; } } namespace PottedLilyOfTheValley { constexpr BlockState PottedLilyOfTheValley() { return 6324; } } namespace PottedOakSapling { constexpr BlockState PottedOakSapling() { return 6306; } } namespace PottedOrangeTulip { constexpr BlockState PottedOrangeTulip() { return 6319; } } namespace PottedOxeyeDaisy { constexpr BlockState PottedOxeyeDaisy() { return 6322; } } namespace PottedPinkTulip { constexpr BlockState PottedPinkTulip() { return 6321; } } namespace PottedPoppy { constexpr BlockState PottedPoppy() { return 6314; } } namespace PottedRedMushroom { constexpr BlockState PottedRedMushroom() { return 6326; } } namespace PottedRedTulip { constexpr BlockState PottedRedTulip() { return 6318; } } namespace PottedSpruceSapling { constexpr BlockState PottedSpruceSapling() { return 6307; } } namespace PottedWarpedFungus { constexpr BlockState PottedWarpedFungus() { return 15835; } } namespace PottedWarpedRoots { constexpr BlockState PottedWarpedRoots() { return 15837; } } namespace PottedWhiteTulip { constexpr BlockState PottedWhiteTulip() { return 6320; } } namespace PottedWitherRose { constexpr BlockState PottedWitherRose() { return 6325; } } namespace PoweredRail { enum class Shape { NorthSouth, EastWest, AscendingEast, AscendingWest, AscendingNorth, AscendingSouth }; constexpr BlockState PoweredRail(const bool Powered, const enum Shape Shape) { if (Powered) if (Shape == Shape::NorthSouth) return 1305; else if (Shape == Shape::EastWest) return 1306; else if (Shape == Shape::AscendingEast) return 1307; else if (Shape == Shape::AscendingWest) return 1308; else if (Shape == Shape::AscendingNorth) return 1309; else return 1310; else if (Shape == Shape::NorthSouth) return 1311; else if (Shape == Shape::EastWest) return 1312; else if (Shape == Shape::AscendingEast) return 1313; else if (Shape == Shape::AscendingWest) return 1314; else if (Shape == Shape::AscendingNorth) return 1315; else return 1316; } BlockState PoweredRail(); bool Powered(BlockState Block); enum Shape Shape(BlockState Block); } namespace Prismarine { constexpr BlockState Prismarine() { return 7601; } } namespace PrismarineBrickSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState PrismarineBrickSlab(const enum Type Type) { if (Type == Type::Top) return 7851; else if (Type == Type::Bottom) return 7853; else return 7855; } BlockState PrismarineBrickSlab(); enum Type Type(BlockState Block); } namespace PrismarineBrickStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState PrismarineBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7685; else if (Shape == Shape::InnerLeft) return 7687; else if (Shape == Shape::InnerRight) return 7689; else if (Shape == Shape::OuterLeft) return 7691; else return 7693; else if (Shape == Shape::Straight) return 7695; else if (Shape == Shape::InnerLeft) return 7697; else if (Shape == Shape::InnerRight) return 7699; else if (Shape == Shape::OuterLeft) return 7701; else return 7703; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 7705; else if (Shape == Shape::InnerLeft) return 7707; else if (Shape == Shape::InnerRight) return 7709; else if (Shape == Shape::OuterLeft) return 7711; else return 7713; else if (Shape == Shape::Straight) return 7715; else if (Shape == Shape::InnerLeft) return 7717; else if (Shape == Shape::InnerRight) return 7719; else if (Shape == Shape::OuterLeft) return 7721; else return 7723; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7725; else if (Shape == Shape::InnerLeft) return 7727; else if (Shape == Shape::InnerRight) return 7729; else if (Shape == Shape::OuterLeft) return 7731; else return 7733; else if (Shape == Shape::Straight) return 7735; else if (Shape == Shape::InnerLeft) return 7737; else if (Shape == Shape::InnerRight) return 7739; else if (Shape == Shape::OuterLeft) return 7741; else return 7743; else if (Half == Half::Top) if (Shape == Shape::Straight) return 7745; else if (Shape == Shape::InnerLeft) return 7747; else if (Shape == Shape::InnerRight) return 7749; else if (Shape == Shape::OuterLeft) return 7751; else return 7753; else if (Shape == Shape::Straight) return 7755; else if (Shape == Shape::InnerLeft) return 7757; else if (Shape == Shape::InnerRight) return 7759; else if (Shape == Shape::OuterLeft) return 7761; else return 7763; } BlockState PrismarineBrickStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace PrismarineBricks { constexpr BlockState PrismarineBricks() { return 7602; } } namespace PrismarineSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState PrismarineSlab(const enum Type Type) { if (Type == Type::Top) return 7845; else if (Type == Type::Bottom) return 7847; else return 7849; } BlockState PrismarineSlab(); enum Type Type(BlockState Block); } namespace PrismarineStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState PrismarineStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7605; else if (Shape == Shape::InnerLeft) return 7607; else if (Shape == Shape::InnerRight) return 7609; else if (Shape == Shape::OuterLeft) return 7611; else return 7613; else if (Shape == Shape::Straight) return 7615; else if (Shape == Shape::InnerLeft) return 7617; else if (Shape == Shape::InnerRight) return 7619; else if (Shape == Shape::OuterLeft) return 7621; else return 7623; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 7625; else if (Shape == Shape::InnerLeft) return 7627; else if (Shape == Shape::InnerRight) return 7629; else if (Shape == Shape::OuterLeft) return 7631; else return 7633; else if (Shape == Shape::Straight) return 7635; else if (Shape == Shape::InnerLeft) return 7637; else if (Shape == Shape::InnerRight) return 7639; else if (Shape == Shape::OuterLeft) return 7641; else return 7643; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 7645; else if (Shape == Shape::InnerLeft) return 7647; else if (Shape == Shape::InnerRight) return 7649; else if (Shape == Shape::OuterLeft) return 7651; else return 7653; else if (Shape == Shape::Straight) return 7655; else if (Shape == Shape::InnerLeft) return 7657; else if (Shape == Shape::InnerRight) return 7659; else if (Shape == Shape::OuterLeft) return 7661; else return 7663; else if (Half == Half::Top) if (Shape == Shape::Straight) return 7665; else if (Shape == Shape::InnerLeft) return 7667; else if (Shape == Shape::InnerRight) return 7669; else if (Shape == Shape::OuterLeft) return 7671; else return 7673; else if (Shape == Shape::Straight) return 7675; else if (Shape == Shape::InnerLeft) return 7677; else if (Shape == Shape::InnerRight) return 7679; else if (Shape == Shape::OuterLeft) return 7681; else return 7683; } BlockState PrismarineStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace PrismarineWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState PrismarineWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 11194; else if (West == West::Low) return 11195; else return 11196; else if (West == West::None) return 11200; else if (West == West::Low) return 11201; else return 11202; else if (South == South::Low) if (Up) if (West == West::None) return 11206; else if (West == West::Low) return 11207; else return 11208; else if (West == West::None) return 11212; else if (West == West::Low) return 11213; else return 11214; else if (Up) if (West == West::None) return 11218; else if (West == West::Low) return 11219; else return 11220; else if (West == West::None) return 11224; else if (West == West::Low) return 11225; else return 11226; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11230; else if (West == West::Low) return 11231; else return 11232; else if (West == West::None) return 11236; else if (West == West::Low) return 11237; else return 11238; else if (South == South::Low) if (Up) if (West == West::None) return 11242; else if (West == West::Low) return 11243; else return 11244; else if (West == West::None) return 11248; else if (West == West::Low) return 11249; else return 11250; else if (Up) if (West == West::None) return 11254; else if (West == West::Low) return 11255; else return 11256; else if (West == West::None) return 11260; else if (West == West::Low) return 11261; else return 11262; else if (South == South::None) if (Up) if (West == West::None) return 11266; else if (West == West::Low) return 11267; else return 11268; else if (West == West::None) return 11272; else if (West == West::Low) return 11273; else return 11274; else if (South == South::Low) if (Up) if (West == West::None) return 11278; else if (West == West::Low) return 11279; else return 11280; else if (West == West::None) return 11284; else if (West == West::Low) return 11285; else return 11286; else if (Up) if (West == West::None) return 11290; else if (West == West::Low) return 11291; else return 11292; else if (West == West::None) return 11296; else if (West == West::Low) return 11297; else return 11298; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 11302; else if (West == West::Low) return 11303; else return 11304; else if (West == West::None) return 11308; else if (West == West::Low) return 11309; else return 11310; else if (South == South::Low) if (Up) if (West == West::None) return 11314; else if (West == West::Low) return 11315; else return 11316; else if (West == West::None) return 11320; else if (West == West::Low) return 11321; else return 11322; else if (Up) if (West == West::None) return 11326; else if (West == West::Low) return 11327; else return 11328; else if (West == West::None) return 11332; else if (West == West::Low) return 11333; else return 11334; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11338; else if (West == West::Low) return 11339; else return 11340; else if (West == West::None) return 11344; else if (West == West::Low) return 11345; else return 11346; else if (South == South::Low) if (Up) if (West == West::None) return 11350; else if (West == West::Low) return 11351; else return 11352; else if (West == West::None) return 11356; else if (West == West::Low) return 11357; else return 11358; else if (Up) if (West == West::None) return 11362; else if (West == West::Low) return 11363; else return 11364; else if (West == West::None) return 11368; else if (West == West::Low) return 11369; else return 11370; else if (South == South::None) if (Up) if (West == West::None) return 11374; else if (West == West::Low) return 11375; else return 11376; else if (West == West::None) return 11380; else if (West == West::Low) return 11381; else return 11382; else if (South == South::Low) if (Up) if (West == West::None) return 11386; else if (West == West::Low) return 11387; else return 11388; else if (West == West::None) return 11392; else if (West == West::Low) return 11393; else return 11394; else if (Up) if (West == West::None) return 11398; else if (West == West::Low) return 11399; else return 11400; else if (West == West::None) return 11404; else if (West == West::Low) return 11405; else return 11406; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 11410; else if (West == West::Low) return 11411; else return 11412; else if (West == West::None) return 11416; else if (West == West::Low) return 11417; else return 11418; else if (South == South::Low) if (Up) if (West == West::None) return 11422; else if (West == West::Low) return 11423; else return 11424; else if (West == West::None) return 11428; else if (West == West::Low) return 11429; else return 11430; else if (Up) if (West == West::None) return 11434; else if (West == West::Low) return 11435; else return 11436; else if (West == West::None) return 11440; else if (West == West::Low) return 11441; else return 11442; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11446; else if (West == West::Low) return 11447; else return 11448; else if (West == West::None) return 11452; else if (West == West::Low) return 11453; else return 11454; else if (South == South::Low) if (Up) if (West == West::None) return 11458; else if (West == West::Low) return 11459; else return 11460; else if (West == West::None) return 11464; else if (West == West::Low) return 11465; else return 11466; else if (Up) if (West == West::None) return 11470; else if (West == West::Low) return 11471; else return 11472; else if (West == West::None) return 11476; else if (West == West::Low) return 11477; else return 11478; else if (South == South::None) if (Up) if (West == West::None) return 11482; else if (West == West::Low) return 11483; else return 11484; else if (West == West::None) return 11488; else if (West == West::Low) return 11489; else return 11490; else if (South == South::Low) if (Up) if (West == West::None) return 11494; else if (West == West::Low) return 11495; else return 11496; else if (West == West::None) return 11500; else if (West == West::Low) return 11501; else return 11502; else if (Up) if (West == West::None) return 11506; else if (West == West::Low) return 11507; else return 11508; else if (West == West::None) return 11512; else if (West == West::Low) return 11513; else return 11514; } BlockState PrismarineWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace Pumpkin { constexpr BlockState Pumpkin() { return 3998; } } namespace PumpkinStem { constexpr BlockState PumpkinStem(const unsigned char Age) { if (Age == 0) return 4772; else if (Age == 1) return 4773; else if (Age == 2) return 4774; else if (Age == 3) return 4775; else if (Age == 4) return 4776; else if (Age == 5) return 4777; else if (Age == 6) return 4778; else return 4779; } BlockState PumpkinStem(); unsigned char Age(BlockState Block); } namespace PurpleBanner { constexpr BlockState PurpleBanner(const unsigned char Rotation) { if (Rotation == 0) return 8057; else if (Rotation == 1) return 8058; else if (Rotation == 2) return 8059; else if (Rotation == 3) return 8060; else if (Rotation == 4) return 8061; else if (Rotation == 5) return 8062; else if (Rotation == 6) return 8063; else if (Rotation == 7) return 8064; else if (Rotation == 8) return 8065; else if (Rotation == 9) return 8066; else if (Rotation == 10) return 8067; else if (Rotation == 11) return 8068; else if (Rotation == 12) return 8069; else if (Rotation == 13) return 8070; else if (Rotation == 14) return 8071; else return 8072; } BlockState PurpleBanner(); unsigned char Rotation(BlockState Block); } namespace PurpleBed { enum class Part { Head, Foot }; constexpr BlockState PurpleBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1209; else return 1210; else if (Part == Part::Head) return 1211; else return 1212; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1213; else return 1214; else if (Part == Part::Head) return 1215; else return 1216; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1217; else return 1218; else if (Part == Part::Head) return 1219; else return 1220; else if (Occupied) if (Part == Part::Head) return 1221; else return 1222; else if (Part == Part::Head) return 1223; else return 1224; } BlockState PurpleBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace PurpleCarpet { constexpr BlockState PurpleCarpet() { return 7876; } } namespace PurpleConcrete { constexpr BlockState PurpleConcrete() { return 9448; } } namespace PurpleConcretePowder { constexpr BlockState PurpleConcretePowder() { return 9464; } } namespace PurpleGlazedTerracotta { constexpr BlockState PurpleGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9414; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9415; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9416; else return 9417; } BlockState PurpleGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace PurpleShulkerBox { constexpr BlockState PurpleShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9338; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9339; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9340; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9341; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9342; else return 9343; } BlockState PurpleShulkerBox(); eBlockFace Facing(BlockState Block); } namespace PurpleStainedGlass { constexpr BlockState PurpleStainedGlass() { return 4105; } } namespace PurpleStainedGlassPane { constexpr BlockState PurpleStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7185; else return 7186; else if (West) return 7189; else return 7190; else if (South) if (West) return 7193; else return 7194; else if (West) return 7197; else return 7198; else if (North) if (South) if (West) return 7201; else return 7202; else if (West) return 7205; else return 7206; else if (South) if (West) return 7209; else return 7210; else if (West) return 7213; else return 7214; } BlockState PurpleStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace PurpleTerracotta { constexpr BlockState PurpleTerracotta() { return 6857; } } namespace PurpleWallBanner { constexpr BlockState PurpleWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8193; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8194; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8195; else return 8196; } BlockState PurpleWallBanner(); eBlockFace Facing(BlockState Block); } namespace PurpleWool { constexpr BlockState PurpleWool() { return 1394; } } namespace PurpurBlock { constexpr BlockState PurpurBlock() { return 9134; } } namespace PurpurPillar { enum class Axis { X, Y, Z }; constexpr BlockState PurpurPillar(const enum Axis Axis) { if (Axis == Axis::X) return 9135; else if (Axis == Axis::Y) return 9136; else return 9137; } BlockState PurpurPillar(); enum Axis Axis(BlockState Block); } namespace PurpurSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState PurpurSlab(const enum Type Type) { if (Type == Type::Top) return 8409; else if (Type == Type::Bottom) return 8411; else return 8413; } BlockState PurpurSlab(); enum Type Type(BlockState Block); } namespace PurpurStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState PurpurStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9139; else if (Shape == Shape::InnerLeft) return 9141; else if (Shape == Shape::InnerRight) return 9143; else if (Shape == Shape::OuterLeft) return 9145; else return 9147; else if (Shape == Shape::Straight) return 9149; else if (Shape == Shape::InnerLeft) return 9151; else if (Shape == Shape::InnerRight) return 9153; else if (Shape == Shape::OuterLeft) return 9155; else return 9157; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 9159; else if (Shape == Shape::InnerLeft) return 9161; else if (Shape == Shape::InnerRight) return 9163; else if (Shape == Shape::OuterLeft) return 9165; else return 9167; else if (Shape == Shape::Straight) return 9169; else if (Shape == Shape::InnerLeft) return 9171; else if (Shape == Shape::InnerRight) return 9173; else if (Shape == Shape::OuterLeft) return 9175; else return 9177; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9179; else if (Shape == Shape::InnerLeft) return 9181; else if (Shape == Shape::InnerRight) return 9183; else if (Shape == Shape::OuterLeft) return 9185; else return 9187; else if (Shape == Shape::Straight) return 9189; else if (Shape == Shape::InnerLeft) return 9191; else if (Shape == Shape::InnerRight) return 9193; else if (Shape == Shape::OuterLeft) return 9195; else return 9197; else if (Half == Half::Top) if (Shape == Shape::Straight) return 9199; else if (Shape == Shape::InnerLeft) return 9201; else if (Shape == Shape::InnerRight) return 9203; else if (Shape == Shape::OuterLeft) return 9205; else return 9207; else if (Shape == Shape::Straight) return 9209; else if (Shape == Shape::InnerLeft) return 9211; else if (Shape == Shape::InnerRight) return 9213; else if (Shape == Shape::OuterLeft) return 9215; else return 9217; } BlockState PurpurStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace QuartzBlock { constexpr BlockState QuartzBlock() { return 6738; } } namespace QuartzBricks { constexpr BlockState QuartzBricks() { return 17103; } } namespace QuartzPillar { enum class Axis { X, Y, Z }; constexpr BlockState QuartzPillar(const enum Axis Axis) { if (Axis == Axis::X) return 6740; else if (Axis == Axis::Y) return 6741; else return 6742; } BlockState QuartzPillar(); enum Axis Axis(BlockState Block); } namespace QuartzSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState QuartzSlab(const enum Type Type) { if (Type == Type::Top) return 8391; else if (Type == Type::Bottom) return 8393; else return 8395; } BlockState QuartzSlab(); enum Type Type(BlockState Block); } namespace QuartzStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState QuartzStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 6744; else if (Shape == Shape::InnerLeft) return 6746; else if (Shape == Shape::InnerRight) return 6748; else if (Shape == Shape::OuterLeft) return 6750; else return 6752; else if (Shape == Shape::Straight) return 6754; else if (Shape == Shape::InnerLeft) return 6756; else if (Shape == Shape::InnerRight) return 6758; else if (Shape == Shape::OuterLeft) return 6760; else return 6762; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 6764; else if (Shape == Shape::InnerLeft) return 6766; else if (Shape == Shape::InnerRight) return 6768; else if (Shape == Shape::OuterLeft) return 6770; else return 6772; else if (Shape == Shape::Straight) return 6774; else if (Shape == Shape::InnerLeft) return 6776; else if (Shape == Shape::InnerRight) return 6778; else if (Shape == Shape::OuterLeft) return 6780; else return 6782; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 6784; else if (Shape == Shape::InnerLeft) return 6786; else if (Shape == Shape::InnerRight) return 6788; else if (Shape == Shape::OuterLeft) return 6790; else return 6792; else if (Shape == Shape::Straight) return 6794; else if (Shape == Shape::InnerLeft) return 6796; else if (Shape == Shape::InnerRight) return 6798; else if (Shape == Shape::OuterLeft) return 6800; else return 6802; else if (Half == Half::Top) if (Shape == Shape::Straight) return 6804; else if (Shape == Shape::InnerLeft) return 6806; else if (Shape == Shape::InnerRight) return 6808; else if (Shape == Shape::OuterLeft) return 6810; else return 6812; else if (Shape == Shape::Straight) return 6814; else if (Shape == Shape::InnerLeft) return 6816; else if (Shape == Shape::InnerRight) return 6818; else if (Shape == Shape::OuterLeft) return 6820; else return 6822; } BlockState QuartzStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace Rail { enum class Shape { NorthSouth, EastWest, AscendingEast, AscendingWest, AscendingNorth, AscendingSouth, SouthEast, SouthWest, NorthWest, NorthEast }; constexpr BlockState Rail(const enum Shape Shape) { if (Shape == Shape::NorthSouth) return 3645; else if (Shape == Shape::EastWest) return 3646; else if (Shape == Shape::AscendingEast) return 3647; else if (Shape == Shape::AscendingWest) return 3648; else if (Shape == Shape::AscendingNorth) return 3649; else if (Shape == Shape::AscendingSouth) return 3650; else if (Shape == Shape::SouthEast) return 3651; else if (Shape == Shape::SouthWest) return 3652; else if (Shape == Shape::NorthWest) return 3653; else return 3654; } BlockState Rail(); enum Shape Shape(BlockState Block); } namespace RedBanner { constexpr BlockState RedBanner(const unsigned char Rotation) { if (Rotation == 0) return 8121; else if (Rotation == 1) return 8122; else if (Rotation == 2) return 8123; else if (Rotation == 3) return 8124; else if (Rotation == 4) return 8125; else if (Rotation == 5) return 8126; else if (Rotation == 6) return 8127; else if (Rotation == 7) return 8128; else if (Rotation == 8) return 8129; else if (Rotation == 9) return 8130; else if (Rotation == 10) return 8131; else if (Rotation == 11) return 8132; else if (Rotation == 12) return 8133; else if (Rotation == 13) return 8134; else if (Rotation == 14) return 8135; else return 8136; } BlockState RedBanner(); unsigned char Rotation(BlockState Block); } namespace RedBed { enum class Part { Head, Foot }; constexpr BlockState RedBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1273; else return 1274; else if (Part == Part::Head) return 1275; else return 1276; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1277; else return 1278; else if (Part == Part::Head) return 1279; else return 1280; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1281; else return 1282; else if (Part == Part::Head) return 1283; else return 1284; else if (Occupied) if (Part == Part::Head) return 1285; else return 1286; else if (Part == Part::Head) return 1287; else return 1288; } BlockState RedBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace RedCarpet { constexpr BlockState RedCarpet() { return 7880; } } namespace RedConcrete { constexpr BlockState RedConcrete() { return 9452; } } namespace RedConcretePowder { constexpr BlockState RedConcretePowder() { return 9468; } } namespace RedGlazedTerracotta { constexpr BlockState RedGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9430; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9431; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9432; else return 9433; } BlockState RedGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace RedMushroom { constexpr BlockState RedMushroom() { return 1426; } } namespace RedMushroomBlock { constexpr BlockState RedMushroomBlock(const bool Down, const bool East, const bool North, const bool South, const bool Up, const bool West) { if (Down) if (East) if (North) if (South) if (Up) if (West) return 4569; else return 4570; else if (West) return 4571; else return 4572; else if (Up) if (West) return 4573; else return 4574; else if (West) return 4575; else return 4576; else if (South) if (Up) if (West) return 4577; else return 4578; else if (West) return 4579; else return 4580; else if (Up) if (West) return 4581; else return 4582; else if (West) return 4583; else return 4584; else if (North) if (South) if (Up) if (West) return 4585; else return 4586; else if (West) return 4587; else return 4588; else if (Up) if (West) return 4589; else return 4590; else if (West) return 4591; else return 4592; else if (South) if (Up) if (West) return 4593; else return 4594; else if (West) return 4595; else return 4596; else if (Up) if (West) return 4597; else return 4598; else if (West) return 4599; else return 4600; else if (East) if (North) if (South) if (Up) if (West) return 4601; else return 4602; else if (West) return 4603; else return 4604; else if (Up) if (West) return 4605; else return 4606; else if (West) return 4607; else return 4608; else if (South) if (Up) if (West) return 4609; else return 4610; else if (West) return 4611; else return 4612; else if (Up) if (West) return 4613; else return 4614; else if (West) return 4615; else return 4616; else if (North) if (South) if (Up) if (West) return 4617; else return 4618; else if (West) return 4619; else return 4620; else if (Up) if (West) return 4621; else return 4622; else if (West) return 4623; else return 4624; else if (South) if (Up) if (West) return 4625; else return 4626; else if (West) return 4627; else return 4628; else if (Up) if (West) return 4629; else return 4630; else if (West) return 4631; else return 4632; } BlockState RedMushroomBlock(); bool Down(BlockState Block); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool Up(BlockState Block); bool West(BlockState Block); } namespace RedNetherBrickSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState RedNetherBrickSlab(const enum Type Type) { if (Type == Type::Top) return 10850; else if (Type == Type::Bottom) return 10852; else return 10854; } BlockState RedNetherBrickSlab(); enum Type Type(BlockState Block); } namespace RedNetherBrickStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState RedNetherBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10550; else if (Shape == Shape::InnerLeft) return 10552; else if (Shape == Shape::InnerRight) return 10554; else if (Shape == Shape::OuterLeft) return 10556; else return 10558; else if (Shape == Shape::Straight) return 10560; else if (Shape == Shape::InnerLeft) return 10562; else if (Shape == Shape::InnerRight) return 10564; else if (Shape == Shape::OuterLeft) return 10566; else return 10568; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10570; else if (Shape == Shape::InnerLeft) return 10572; else if (Shape == Shape::InnerRight) return 10574; else if (Shape == Shape::OuterLeft) return 10576; else return 10578; else if (Shape == Shape::Straight) return 10580; else if (Shape == Shape::InnerLeft) return 10582; else if (Shape == Shape::InnerRight) return 10584; else if (Shape == Shape::OuterLeft) return 10586; else return 10588; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10590; else if (Shape == Shape::InnerLeft) return 10592; else if (Shape == Shape::InnerRight) return 10594; else if (Shape == Shape::OuterLeft) return 10596; else return 10598; else if (Shape == Shape::Straight) return 10600; else if (Shape == Shape::InnerLeft) return 10602; else if (Shape == Shape::InnerRight) return 10604; else if (Shape == Shape::OuterLeft) return 10606; else return 10608; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10610; else if (Shape == Shape::InnerLeft) return 10612; else if (Shape == Shape::InnerRight) return 10614; else if (Shape == Shape::OuterLeft) return 10616; else return 10618; else if (Shape == Shape::Straight) return 10620; else if (Shape == Shape::InnerLeft) return 10622; else if (Shape == Shape::InnerRight) return 10624; else if (Shape == Shape::OuterLeft) return 10626; else return 10628; } BlockState RedNetherBrickStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace RedNetherBrickWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState RedNetherBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 13462; else if (West == West::Low) return 13463; else return 13464; else if (West == West::None) return 13468; else if (West == West::Low) return 13469; else return 13470; else if (South == South::Low) if (Up) if (West == West::None) return 13474; else if (West == West::Low) return 13475; else return 13476; else if (West == West::None) return 13480; else if (West == West::Low) return 13481; else return 13482; else if (Up) if (West == West::None) return 13486; else if (West == West::Low) return 13487; else return 13488; else if (West == West::None) return 13492; else if (West == West::Low) return 13493; else return 13494; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 13498; else if (West == West::Low) return 13499; else return 13500; else if (West == West::None) return 13504; else if (West == West::Low) return 13505; else return 13506; else if (South == South::Low) if (Up) if (West == West::None) return 13510; else if (West == West::Low) return 13511; else return 13512; else if (West == West::None) return 13516; else if (West == West::Low) return 13517; else return 13518; else if (Up) if (West == West::None) return 13522; else if (West == West::Low) return 13523; else return 13524; else if (West == West::None) return 13528; else if (West == West::Low) return 13529; else return 13530; else if (South == South::None) if (Up) if (West == West::None) return 13534; else if (West == West::Low) return 13535; else return 13536; else if (West == West::None) return 13540; else if (West == West::Low) return 13541; else return 13542; else if (South == South::Low) if (Up) if (West == West::None) return 13546; else if (West == West::Low) return 13547; else return 13548; else if (West == West::None) return 13552; else if (West == West::Low) return 13553; else return 13554; else if (Up) if (West == West::None) return 13558; else if (West == West::Low) return 13559; else return 13560; else if (West == West::None) return 13564; else if (West == West::Low) return 13565; else return 13566; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 13570; else if (West == West::Low) return 13571; else return 13572; else if (West == West::None) return 13576; else if (West == West::Low) return 13577; else return 13578; else if (South == South::Low) if (Up) if (West == West::None) return 13582; else if (West == West::Low) return 13583; else return 13584; else if (West == West::None) return 13588; else if (West == West::Low) return 13589; else return 13590; else if (Up) if (West == West::None) return 13594; else if (West == West::Low) return 13595; else return 13596; else if (West == West::None) return 13600; else if (West == West::Low) return 13601; else return 13602; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 13606; else if (West == West::Low) return 13607; else return 13608; else if (West == West::None) return 13612; else if (West == West::Low) return 13613; else return 13614; else if (South == South::Low) if (Up) if (West == West::None) return 13618; else if (West == West::Low) return 13619; else return 13620; else if (West == West::None) return 13624; else if (West == West::Low) return 13625; else return 13626; else if (Up) if (West == West::None) return 13630; else if (West == West::Low) return 13631; else return 13632; else if (West == West::None) return 13636; else if (West == West::Low) return 13637; else return 13638; else if (South == South::None) if (Up) if (West == West::None) return 13642; else if (West == West::Low) return 13643; else return 13644; else if (West == West::None) return 13648; else if (West == West::Low) return 13649; else return 13650; else if (South == South::Low) if (Up) if (West == West::None) return 13654; else if (West == West::Low) return 13655; else return 13656; else if (West == West::None) return 13660; else if (West == West::Low) return 13661; else return 13662; else if (Up) if (West == West::None) return 13666; else if (West == West::Low) return 13667; else return 13668; else if (West == West::None) return 13672; else if (West == West::Low) return 13673; else return 13674; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 13678; else if (West == West::Low) return 13679; else return 13680; else if (West == West::None) return 13684; else if (West == West::Low) return 13685; else return 13686; else if (South == South::Low) if (Up) if (West == West::None) return 13690; else if (West == West::Low) return 13691; else return 13692; else if (West == West::None) return 13696; else if (West == West::Low) return 13697; else return 13698; else if (Up) if (West == West::None) return 13702; else if (West == West::Low) return 13703; else return 13704; else if (West == West::None) return 13708; else if (West == West::Low) return 13709; else return 13710; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 13714; else if (West == West::Low) return 13715; else return 13716; else if (West == West::None) return 13720; else if (West == West::Low) return 13721; else return 13722; else if (South == South::Low) if (Up) if (West == West::None) return 13726; else if (West == West::Low) return 13727; else return 13728; else if (West == West::None) return 13732; else if (West == West::Low) return 13733; else return 13734; else if (Up) if (West == West::None) return 13738; else if (West == West::Low) return 13739; else return 13740; else if (West == West::None) return 13744; else if (West == West::Low) return 13745; else return 13746; else if (South == South::None) if (Up) if (West == West::None) return 13750; else if (West == West::Low) return 13751; else return 13752; else if (West == West::None) return 13756; else if (West == West::Low) return 13757; else return 13758; else if (South == South::Low) if (Up) if (West == West::None) return 13762; else if (West == West::Low) return 13763; else return 13764; else if (West == West::None) return 13768; else if (West == West::Low) return 13769; else return 13770; else if (Up) if (West == West::None) return 13774; else if (West == West::Low) return 13775; else return 13776; else if (West == West::None) return 13780; else if (West == West::Low) return 13781; else return 13782; } BlockState RedNetherBrickWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace RedNetherBricks { constexpr BlockState RedNetherBricks() { return 9255; } } namespace RedSand { constexpr BlockState RedSand() { return 67; } } namespace RedSandstone { constexpr BlockState RedSandstone() { return 8217; } } namespace RedSandstoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState RedSandstoneSlab(const enum Type Type) { if (Type == Type::Top) return 8397; else if (Type == Type::Bottom) return 8399; else return 8401; } BlockState RedSandstoneSlab(); enum Type Type(BlockState Block); } namespace RedSandstoneStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState RedSandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 8221; else if (Shape == Shape::InnerLeft) return 8223; else if (Shape == Shape::InnerRight) return 8225; else if (Shape == Shape::OuterLeft) return 8227; else return 8229; else if (Shape == Shape::Straight) return 8231; else if (Shape == Shape::InnerLeft) return 8233; else if (Shape == Shape::InnerRight) return 8235; else if (Shape == Shape::OuterLeft) return 8237; else return 8239; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 8241; else if (Shape == Shape::InnerLeft) return 8243; else if (Shape == Shape::InnerRight) return 8245; else if (Shape == Shape::OuterLeft) return 8247; else return 8249; else if (Shape == Shape::Straight) return 8251; else if (Shape == Shape::InnerLeft) return 8253; else if (Shape == Shape::InnerRight) return 8255; else if (Shape == Shape::OuterLeft) return 8257; else return 8259; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 8261; else if (Shape == Shape::InnerLeft) return 8263; else if (Shape == Shape::InnerRight) return 8265; else if (Shape == Shape::OuterLeft) return 8267; else return 8269; else if (Shape == Shape::Straight) return 8271; else if (Shape == Shape::InnerLeft) return 8273; else if (Shape == Shape::InnerRight) return 8275; else if (Shape == Shape::OuterLeft) return 8277; else return 8279; else if (Half == Half::Top) if (Shape == Shape::Straight) return 8281; else if (Shape == Shape::InnerLeft) return 8283; else if (Shape == Shape::InnerRight) return 8285; else if (Shape == Shape::OuterLeft) return 8287; else return 8289; else if (Shape == Shape::Straight) return 8291; else if (Shape == Shape::InnerLeft) return 8293; else if (Shape == Shape::InnerRight) return 8295; else if (Shape == Shape::OuterLeft) return 8297; else return 8299; } BlockState RedSandstoneStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace RedSandstoneWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState RedSandstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 11518; else if (West == West::Low) return 11519; else return 11520; else if (West == West::None) return 11524; else if (West == West::Low) return 11525; else return 11526; else if (South == South::Low) if (Up) if (West == West::None) return 11530; else if (West == West::Low) return 11531; else return 11532; else if (West == West::None) return 11536; else if (West == West::Low) return 11537; else return 11538; else if (Up) if (West == West::None) return 11542; else if (West == West::Low) return 11543; else return 11544; else if (West == West::None) return 11548; else if (West == West::Low) return 11549; else return 11550; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11554; else if (West == West::Low) return 11555; else return 11556; else if (West == West::None) return 11560; else if (West == West::Low) return 11561; else return 11562; else if (South == South::Low) if (Up) if (West == West::None) return 11566; else if (West == West::Low) return 11567; else return 11568; else if (West == West::None) return 11572; else if (West == West::Low) return 11573; else return 11574; else if (Up) if (West == West::None) return 11578; else if (West == West::Low) return 11579; else return 11580; else if (West == West::None) return 11584; else if (West == West::Low) return 11585; else return 11586; else if (South == South::None) if (Up) if (West == West::None) return 11590; else if (West == West::Low) return 11591; else return 11592; else if (West == West::None) return 11596; else if (West == West::Low) return 11597; else return 11598; else if (South == South::Low) if (Up) if (West == West::None) return 11602; else if (West == West::Low) return 11603; else return 11604; else if (West == West::None) return 11608; else if (West == West::Low) return 11609; else return 11610; else if (Up) if (West == West::None) return 11614; else if (West == West::Low) return 11615; else return 11616; else if (West == West::None) return 11620; else if (West == West::Low) return 11621; else return 11622; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 11626; else if (West == West::Low) return 11627; else return 11628; else if (West == West::None) return 11632; else if (West == West::Low) return 11633; else return 11634; else if (South == South::Low) if (Up) if (West == West::None) return 11638; else if (West == West::Low) return 11639; else return 11640; else if (West == West::None) return 11644; else if (West == West::Low) return 11645; else return 11646; else if (Up) if (West == West::None) return 11650; else if (West == West::Low) return 11651; else return 11652; else if (West == West::None) return 11656; else if (West == West::Low) return 11657; else return 11658; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11662; else if (West == West::Low) return 11663; else return 11664; else if (West == West::None) return 11668; else if (West == West::Low) return 11669; else return 11670; else if (South == South::Low) if (Up) if (West == West::None) return 11674; else if (West == West::Low) return 11675; else return 11676; else if (West == West::None) return 11680; else if (West == West::Low) return 11681; else return 11682; else if (Up) if (West == West::None) return 11686; else if (West == West::Low) return 11687; else return 11688; else if (West == West::None) return 11692; else if (West == West::Low) return 11693; else return 11694; else if (South == South::None) if (Up) if (West == West::None) return 11698; else if (West == West::Low) return 11699; else return 11700; else if (West == West::None) return 11704; else if (West == West::Low) return 11705; else return 11706; else if (South == South::Low) if (Up) if (West == West::None) return 11710; else if (West == West::Low) return 11711; else return 11712; else if (West == West::None) return 11716; else if (West == West::Low) return 11717; else return 11718; else if (Up) if (West == West::None) return 11722; else if (West == West::Low) return 11723; else return 11724; else if (West == West::None) return 11728; else if (West == West::Low) return 11729; else return 11730; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 11734; else if (West == West::Low) return 11735; else return 11736; else if (West == West::None) return 11740; else if (West == West::Low) return 11741; else return 11742; else if (South == South::Low) if (Up) if (West == West::None) return 11746; else if (West == West::Low) return 11747; else return 11748; else if (West == West::None) return 11752; else if (West == West::Low) return 11753; else return 11754; else if (Up) if (West == West::None) return 11758; else if (West == West::Low) return 11759; else return 11760; else if (West == West::None) return 11764; else if (West == West::Low) return 11765; else return 11766; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 11770; else if (West == West::Low) return 11771; else return 11772; else if (West == West::None) return 11776; else if (West == West::Low) return 11777; else return 11778; else if (South == South::Low) if (Up) if (West == West::None) return 11782; else if (West == West::Low) return 11783; else return 11784; else if (West == West::None) return 11788; else if (West == West::Low) return 11789; else return 11790; else if (Up) if (West == West::None) return 11794; else if (West == West::Low) return 11795; else return 11796; else if (West == West::None) return 11800; else if (West == West::Low) return 11801; else return 11802; else if (South == South::None) if (Up) if (West == West::None) return 11806; else if (West == West::Low) return 11807; else return 11808; else if (West == West::None) return 11812; else if (West == West::Low) return 11813; else return 11814; else if (South == South::Low) if (Up) if (West == West::None) return 11818; else if (West == West::Low) return 11819; else return 11820; else if (West == West::None) return 11824; else if (West == West::Low) return 11825; else return 11826; else if (Up) if (West == West::None) return 11830; else if (West == West::Low) return 11831; else return 11832; else if (West == West::None) return 11836; else if (West == West::Low) return 11837; else return 11838; } BlockState RedSandstoneWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace RedShulkerBox { constexpr BlockState RedShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9362; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9363; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9364; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9365; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9366; else return 9367; } BlockState RedShulkerBox(); eBlockFace Facing(BlockState Block); } namespace RedStainedGlass { constexpr BlockState RedStainedGlass() { return 4109; } } namespace RedStainedGlassPane { constexpr BlockState RedStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 7313; else return 7314; else if (West) return 7317; else return 7318; else if (South) if (West) return 7321; else return 7322; else if (West) return 7325; else return 7326; else if (North) if (South) if (West) return 7329; else return 7330; else if (West) return 7333; else return 7334; else if (South) if (West) return 7337; else return 7338; else if (West) return 7341; else return 7342; } BlockState RedStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace RedTerracotta { constexpr BlockState RedTerracotta() { return 6861; } } namespace RedTulip { constexpr BlockState RedTulip() { return 1417; } } namespace RedWallBanner { constexpr BlockState RedWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8209; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8210; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8211; else return 8212; } BlockState RedWallBanner(); eBlockFace Facing(BlockState Block); } namespace RedWool { constexpr BlockState RedWool() { return 1398; } } namespace RedstoneBlock { constexpr BlockState RedstoneBlock() { return 6726; } } namespace RedstoneLamp { constexpr BlockState RedstoneLamp(const bool Lit) { if (Lit) return 5156; else return 5157; } BlockState RedstoneLamp(); bool Lit(BlockState Block); } namespace RedstoneOre { constexpr BlockState RedstoneOre(const bool Lit) { if (Lit) return 3885; else return 3886; } BlockState RedstoneOre(); bool Lit(BlockState Block); } namespace RedstoneTorch { constexpr BlockState RedstoneTorch(const bool Lit) { if (Lit) return 3887; else return 3888; } BlockState RedstoneTorch(); bool Lit(BlockState Block); } namespace RedstoneWallTorch { constexpr BlockState RedstoneWallTorch(const eBlockFace Facing, const bool Lit) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Lit) return 3889; else return 3890; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Lit) return 3891; else return 3892; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Lit) return 3893; else return 3894; else if (Lit) return 3895; else return 3896; } BlockState RedstoneWallTorch(); eBlockFace Facing(BlockState Block); bool Lit(BlockState Block); } namespace RedstoneWire { enum class East { Up, Side, None }; enum class North { Up, Side, None }; enum class South { Up, Side, None }; enum class West { Up, Side, None }; constexpr BlockState RedstoneWire(const enum East East, const enum North North, const unsigned char Power, const enum South South, const enum West West) { if (East == East::Up) if (North == North::Up) if (Power == 0) if (South == South::Up) if (West == West::Up) return 2058; else if (West == West::Side) return 2059; else return 2060; else if (South == South::Side) if (West == West::Up) return 2061; else if (West == West::Side) return 2062; else return 2063; else if (West == West::Up) return 2064; else if (West == West::Side) return 2065; else return 2066; else if (Power == 1) if (South == South::Up) if (West == West::Up) return 2067; else if (West == West::Side) return 2068; else return 2069; else if (South == South::Side) if (West == West::Up) return 2070; else if (West == West::Side) return 2071; else return 2072; else if (West == West::Up) return 2073; else if (West == West::Side) return 2074; else return 2075; else if (Power == 2) if (South == South::Up) if (West == West::Up) return 2076; else if (West == West::Side) return 2077; else return 2078; else if (South == South::Side) if (West == West::Up) return 2079; else if (West == West::Side) return 2080; else return 2081; else if (West == West::Up) return 2082; else if (West == West::Side) return 2083; else return 2084; else if (Power == 3) if (South == South::Up) if (West == West::Up) return 2085; else if (West == West::Side) return 2086; else return 2087; else if (South == South::Side) if (West == West::Up) return 2088; else if (West == West::Side) return 2089; else return 2090; else if (West == West::Up) return 2091; else if (West == West::Side) return 2092; else return 2093; else if (Power == 4) if (South == South::Up) if (West == West::Up) return 2094; else if (West == West::Side) return 2095; else return 2096; else if (South == South::Side) if (West == West::Up) return 2097; else if (West == West::Side) return 2098; else return 2099; else if (West == West::Up) return 2100; else if (West == West::Side) return 2101; else return 2102; else if (Power == 5) if (South == South::Up) if (West == West::Up) return 2103; else if (West == West::Side) return 2104; else return 2105; else if (South == South::Side) if (West == West::Up) return 2106; else if (West == West::Side) return 2107; else return 2108; else if (West == West::Up) return 2109; else if (West == West::Side) return 2110; else return 2111; else if (Power == 6) if (South == South::Up) if (West == West::Up) return 2112; else if (West == West::Side) return 2113; else return 2114; else if (South == South::Side) if (West == West::Up) return 2115; else if (West == West::Side) return 2116; else return 2117; else if (West == West::Up) return 2118; else if (West == West::Side) return 2119; else return 2120; else if (Power == 7) if (South == South::Up) if (West == West::Up) return 2121; else if (West == West::Side) return 2122; else return 2123; else if (South == South::Side) if (West == West::Up) return 2124; else if (West == West::Side) return 2125; else return 2126; else if (West == West::Up) return 2127; else if (West == West::Side) return 2128; else return 2129; else if (Power == 8) if (South == South::Up) if (West == West::Up) return 2130; else if (West == West::Side) return 2131; else return 2132; else if (South == South::Side) if (West == West::Up) return 2133; else if (West == West::Side) return 2134; else return 2135; else if (West == West::Up) return 2136; else if (West == West::Side) return 2137; else return 2138; else if (Power == 9) if (South == South::Up) if (West == West::Up) return 2139; else if (West == West::Side) return 2140; else return 2141; else if (South == South::Side) if (West == West::Up) return 2142; else if (West == West::Side) return 2143; else return 2144; else if (West == West::Up) return 2145; else if (West == West::Side) return 2146; else return 2147; else if (Power == 10) if (South == South::Up) if (West == West::Up) return 2148; else if (West == West::Side) return 2149; else return 2150; else if (South == South::Side) if (West == West::Up) return 2151; else if (West == West::Side) return 2152; else return 2153; else if (West == West::Up) return 2154; else if (West == West::Side) return 2155; else return 2156; else if (Power == 11) if (South == South::Up) if (West == West::Up) return 2157; else if (West == West::Side) return 2158; else return 2159; else if (South == South::Side) if (West == West::Up) return 2160; else if (West == West::Side) return 2161; else return 2162; else if (West == West::Up) return 2163; else if (West == West::Side) return 2164; else return 2165; else if (Power == 12) if (South == South::Up) if (West == West::Up) return 2166; else if (West == West::Side) return 2167; else return 2168; else if (South == South::Side) if (West == West::Up) return 2169; else if (West == West::Side) return 2170; else return 2171; else if (West == West::Up) return 2172; else if (West == West::Side) return 2173; else return 2174; else if (Power == 13) if (South == South::Up) if (West == West::Up) return 2175; else if (West == West::Side) return 2176; else return 2177; else if (South == South::Side) if (West == West::Up) return 2178; else if (West == West::Side) return 2179; else return 2180; else if (West == West::Up) return 2181; else if (West == West::Side) return 2182; else return 2183; else if (Power == 14) if (South == South::Up) if (West == West::Up) return 2184; else if (West == West::Side) return 2185; else return 2186; else if (South == South::Side) if (West == West::Up) return 2187; else if (West == West::Side) return 2188; else return 2189; else if (West == West::Up) return 2190; else if (West == West::Side) return 2191; else return 2192; else if (South == South::Up) if (West == West::Up) return 2193; else if (West == West::Side) return 2194; else return 2195; else if (South == South::Side) if (West == West::Up) return 2196; else if (West == West::Side) return 2197; else return 2198; else if (West == West::Up) return 2199; else if (West == West::Side) return 2200; else return 2201; else if (North == North::Side) if (Power == 0) if (South == South::Up) if (West == West::Up) return 2202; else if (West == West::Side) return 2203; else return 2204; else if (South == South::Side) if (West == West::Up) return 2205; else if (West == West::Side) return 2206; else return 2207; else if (West == West::Up) return 2208; else if (West == West::Side) return 2209; else return 2210; else if (Power == 1) if (South == South::Up) if (West == West::Up) return 2211; else if (West == West::Side) return 2212; else return 2213; else if (South == South::Side) if (West == West::Up) return 2214; else if (West == West::Side) return 2215; else return 2216; else if (West == West::Up) return 2217; else if (West == West::Side) return 2218; else return 2219; else if (Power == 2) if (South == South::Up) if (West == West::Up) return 2220; else if (West == West::Side) return 2221; else return 2222; else if (South == South::Side) if (West == West::Up) return 2223; else if (West == West::Side) return 2224; else return 2225; else if (West == West::Up) return 2226; else if (West == West::Side) return 2227; else return 2228; else if (Power == 3) if (South == South::Up) if (West == West::Up) return 2229; else if (West == West::Side) return 2230; else return 2231; else if (South == South::Side) if (West == West::Up) return 2232; else if (West == West::Side) return 2233; else return 2234; else if (West == West::Up) return 2235; else if (West == West::Side) return 2236; else return 2237; else if (Power == 4) if (South == South::Up) if (West == West::Up) return 2238; else if (West == West::Side) return 2239; else return 2240; else if (South == South::Side) if (West == West::Up) return 2241; else if (West == West::Side) return 2242; else return 2243; else if (West == West::Up) return 2244; else if (West == West::Side) return 2245; else return 2246; else if (Power == 5) if (South == South::Up) if (West == West::Up) return 2247; else if (West == West::Side) return 2248; else return 2249; else if (South == South::Side) if (West == West::Up) return 2250; else if (West == West::Side) return 2251; else return 2252; else if (West == West::Up) return 2253; else if (West == West::Side) return 2254; else return 2255; else if (Power == 6) if (South == South::Up) if (West == West::Up) return 2256; else if (West == West::Side) return 2257; else return 2258; else if (South == South::Side) if (West == West::Up) return 2259; else if (West == West::Side) return 2260; else return 2261; else if (West == West::Up) return 2262; else if (West == West::Side) return 2263; else return 2264; else if (Power == 7) if (South == South::Up) if (West == West::Up) return 2265; else if (West == West::Side) return 2266; else return 2267; else if (South == South::Side) if (West == West::Up) return 2268; else if (West == West::Side) return 2269; else return 2270; else if (West == West::Up) return 2271; else if (West == West::Side) return 2272; else return 2273; else if (Power == 8) if (South == South::Up) if (West == West::Up) return 2274; else if (West == West::Side) return 2275; else return 2276; else if (South == South::Side) if (West == West::Up) return 2277; else if (West == West::Side) return 2278; else return 2279; else if (West == West::Up) return 2280; else if (West == West::Side) return 2281; else return 2282; else if (Power == 9) if (South == South::Up) if (West == West::Up) return 2283; else if (West == West::Side) return 2284; else return 2285; else if (South == South::Side) if (West == West::Up) return 2286; else if (West == West::Side) return 2287; else return 2288; else if (West == West::Up) return 2289; else if (West == West::Side) return 2290; else return 2291; else if (Power == 10) if (South == South::Up) if (West == West::Up) return 2292; else if (West == West::Side) return 2293; else return 2294; else if (South == South::Side) if (West == West::Up) return 2295; else if (West == West::Side) return 2296; else return 2297; else if (West == West::Up) return 2298; else if (West == West::Side) return 2299; else return 2300; else if (Power == 11) if (South == South::Up) if (West == West::Up) return 2301; else if (West == West::Side) return 2302; else return 2303; else if (South == South::Side) if (West == West::Up) return 2304; else if (West == West::Side) return 2305; else return 2306; else if (West == West::Up) return 2307; else if (West == West::Side) return 2308; else return 2309; else if (Power == 12) if (South == South::Up) if (West == West::Up) return 2310; else if (West == West::Side) return 2311; else return 2312; else if (South == South::Side) if (West == West::Up) return 2313; else if (West == West::Side) return 2314; else return 2315; else if (West == West::Up) return 2316; else if (West == West::Side) return 2317; else return 2318; else if (Power == 13) if (South == South::Up) if (West == West::Up) return 2319; else if (West == West::Side) return 2320; else return 2321; else if (South == South::Side) if (West == West::Up) return 2322; else if (West == West::Side) return 2323; else return 2324; else if (West == West::Up) return 2325; else if (West == West::Side) return 2326; else return 2327; else if (Power == 14) if (South == South::Up) if (West == West::Up) return 2328; else if (West == West::Side) return 2329; else return 2330; else if (South == South::Side) if (West == West::Up) return 2331; else if (West == West::Side) return 2332; else return 2333; else if (West == West::Up) return 2334; else if (West == West::Side) return 2335; else return 2336; else if (South == South::Up) if (West == West::Up) return 2337; else if (West == West::Side) return 2338; else return 2339; else if (South == South::Side) if (West == West::Up) return 2340; else if (West == West::Side) return 2341; else return 2342; else if (West == West::Up) return 2343; else if (West == West::Side) return 2344; else return 2345; else if (Power == 0) if (South == South::Up) if (West == West::Up) return 2346; else if (West == West::Side) return 2347; else return 2348; else if (South == South::Side) if (West == West::Up) return 2349; else if (West == West::Side) return 2350; else return 2351; else if (West == West::Up) return 2352; else if (West == West::Side) return 2353; else return 2354; else if (Power == 1) if (South == South::Up) if (West == West::Up) return 2355; else if (West == West::Side) return 2356; else return 2357; else if (South == South::Side) if (West == West::Up) return 2358; else if (West == West::Side) return 2359; else return 2360; else if (West == West::Up) return 2361; else if (West == West::Side) return 2362; else return 2363; else if (Power == 2) if (South == South::Up) if (West == West::Up) return 2364; else if (West == West::Side) return 2365; else return 2366; else if (South == South::Side) if (West == West::Up) return 2367; else if (West == West::Side) return 2368; else return 2369; else if (West == West::Up) return 2370; else if (West == West::Side) return 2371; else return 2372; else if (Power == 3) if (South == South::Up) if (West == West::Up) return 2373; else if (West == West::Side) return 2374; else return 2375; else if (South == South::Side) if (West == West::Up) return 2376; else if (West == West::Side) return 2377; else return 2378; else if (West == West::Up) return 2379; else if (West == West::Side) return 2380; else return 2381; else if (Power == 4) if (South == South::Up) if (West == West::Up) return 2382; else if (West == West::Side) return 2383; else return 2384; else if (South == South::Side) if (West == West::Up) return 2385; else if (West == West::Side) return 2386; else return 2387; else if (West == West::Up) return 2388; else if (West == West::Side) return 2389; else return 2390; else if (Power == 5) if (South == South::Up) if (West == West::Up) return 2391; else if (West == West::Side) return 2392; else return 2393; else if (South == South::Side) if (West == West::Up) return 2394; else if (West == West::Side) return 2395; else return 2396; else if (West == West::Up) return 2397; else if (West == West::Side) return 2398; else return 2399; else if (Power == 6) if (South == South::Up) if (West == West::Up) return 2400; else if (West == West::Side) return 2401; else return 2402; else if (South == South::Side) if (West == West::Up) return 2403; else if (West == West::Side) return 2404; else return 2405; else if (West == West::Up) return 2406; else if (West == West::Side) return 2407; else return 2408; else if (Power == 7) if (South == South::Up) if (West == West::Up) return 2409; else if (West == West::Side) return 2410; else return 2411; else if (South == South::Side) if (West == West::Up) return 2412; else if (West == West::Side) return 2413; else return 2414; else if (West == West::Up) return 2415; else if (West == West::Side) return 2416; else return 2417; else if (Power == 8) if (South == South::Up) if (West == West::Up) return 2418; else if (West == West::Side) return 2419; else return 2420; else if (South == South::Side) if (West == West::Up) return 2421; else if (West == West::Side) return 2422; else return 2423; else if (West == West::Up) return 2424; else if (West == West::Side) return 2425; else return 2426; else if (Power == 9) if (South == South::Up) if (West == West::Up) return 2427; else if (West == West::Side) return 2428; else return 2429; else if (South == South::Side) if (West == West::Up) return 2430; else if (West == West::Side) return 2431; else return 2432; else if (West == West::Up) return 2433; else if (West == West::Side) return 2434; else return 2435; else if (Power == 10) if (South == South::Up) if (West == West::Up) return 2436; else if (West == West::Side) return 2437; else return 2438; else if (South == South::Side) if (West == West::Up) return 2439; else if (West == West::Side) return 2440; else return 2441; else if (West == West::Up) return 2442; else if (West == West::Side) return 2443; else return 2444; else if (Power == 11) if (South == South::Up) if (West == West::Up) return 2445; else if (West == West::Side) return 2446; else return 2447; else if (South == South::Side) if (West == West::Up) return 2448; else if (West == West::Side) return 2449; else return 2450; else if (West == West::Up) return 2451; else if (West == West::Side) return 2452; else return 2453; else if (Power == 12) if (South == South::Up) if (West == West::Up) return 2454; else if (West == West::Side) return 2455; else return 2456; else if (South == South::Side) if (West == West::Up) return 2457; else if (West == West::Side) return 2458; else return 2459; else if (West == West::Up) return 2460; else if (West == West::Side) return 2461; else return 2462; else if (Power == 13) if (South == South::Up) if (West == West::Up) return 2463; else if (West == West::Side) return 2464; else return 2465; else if (South == South::Side) if (West == West::Up) return 2466; else if (West == West::Side) return 2467; else return 2468; else if (West == West::Up) return 2469; else if (West == West::Side) return 2470; else return 2471; else if (Power == 14) if (South == South::Up) if (West == West::Up) return 2472; else if (West == West::Side) return 2473; else return 2474; else if (South == South::Side) if (West == West::Up) return 2475; else if (West == West::Side) return 2476; else return 2477; else if (West == West::Up) return 2478; else if (West == West::Side) return 2479; else return 2480; else if (South == South::Up) if (West == West::Up) return 2481; else if (West == West::Side) return 2482; else return 2483; else if (South == South::Side) if (West == West::Up) return 2484; else if (West == West::Side) return 2485; else return 2486; else if (West == West::Up) return 2487; else if (West == West::Side) return 2488; else return 2489; else if (East == East::Side) if (North == North::Up) if (Power == 0) if (South == South::Up) if (West == West::Up) return 2490; else if (West == West::Side) return 2491; else return 2492; else if (South == South::Side) if (West == West::Up) return 2493; else if (West == West::Side) return 2494; else return 2495; else if (West == West::Up) return 2496; else if (West == West::Side) return 2497; else return 2498; else if (Power == 1) if (South == South::Up) if (West == West::Up) return 2499; else if (West == West::Side) return 2500; else return 2501; else if (South == South::Side) if (West == West::Up) return 2502; else if (West == West::Side) return 2503; else return 2504; else if (West == West::Up) return 2505; else if (West == West::Side) return 2506; else return 2507; else if (Power == 2) if (South == South::Up) if (West == West::Up) return 2508; else if (West == West::Side) return 2509; else return 2510; else if (South == South::Side) if (West == West::Up) return 2511; else if (West == West::Side) return 2512; else return 2513; else if (West == West::Up) return 2514; else if (West == West::Side) return 2515; else return 2516; else if (Power == 3) if (South == South::Up) if (West == West::Up) return 2517; else if (West == West::Side) return 2518; else return 2519; else if (South == South::Side) if (West == West::Up) return 2520; else if (West == West::Side) return 2521; else return 2522; else if (West == West::Up) return 2523; else if (West == West::Side) return 2524; else return 2525; else if (Power == 4) if (South == South::Up) if (West == West::Up) return 2526; else if (West == West::Side) return 2527; else return 2528; else if (South == South::Side) if (West == West::Up) return 2529; else if (West == West::Side) return 2530; else return 2531; else if (West == West::Up) return 2532; else if (West == West::Side) return 2533; else return 2534; else if (Power == 5) if (South == South::Up) if (West == West::Up) return 2535; else if (West == West::Side) return 2536; else return 2537; else if (South == South::Side) if (West == West::Up) return 2538; else if (West == West::Side) return 2539; else return 2540; else if (West == West::Up) return 2541; else if (West == West::Side) return 2542; else return 2543; else if (Power == 6) if (South == South::Up) if (West == West::Up) return 2544; else if (West == West::Side) return 2545; else return 2546; else if (South == South::Side) if (West == West::Up) return 2547; else if (West == West::Side) return 2548; else return 2549; else if (West == West::Up) return 2550; else if (West == West::Side) return 2551; else return 2552; else if (Power == 7) if (South == South::Up) if (West == West::Up) return 2553; else if (West == West::Side) return 2554; else return 2555; else if (South == South::Side) if (West == West::Up) return 2556; else if (West == West::Side) return 2557; else return 2558; else if (West == West::Up) return 2559; else if (West == West::Side) return 2560; else return 2561; else if (Power == 8) if (South == South::Up) if (West == West::Up) return 2562; else if (West == West::Side) return 2563; else return 2564; else if (South == South::Side) if (West == West::Up) return 2565; else if (West == West::Side) return 2566; else return 2567; else if (West == West::Up) return 2568; else if (West == West::Side) return 2569; else return 2570; else if (Power == 9) if (South == South::Up) if (West == West::Up) return 2571; else if (West == West::Side) return 2572; else return 2573; else if (South == South::Side) if (West == West::Up) return 2574; else if (West == West::Side) return 2575; else return 2576; else if (West == West::Up) return 2577; else if (West == West::Side) return 2578; else return 2579; else if (Power == 10) if (South == South::Up) if (West == West::Up) return 2580; else if (West == West::Side) return 2581; else return 2582; else if (South == South::Side) if (West == West::Up) return 2583; else if (West == West::Side) return 2584; else return 2585; else if (West == West::Up) return 2586; else if (West == West::Side) return 2587; else return 2588; else if (Power == 11) if (South == South::Up) if (West == West::Up) return 2589; else if (West == West::Side) return 2590; else return 2591; else if (South == South::Side) if (West == West::Up) return 2592; else if (West == West::Side) return 2593; else return 2594; else if (West == West::Up) return 2595; else if (West == West::Side) return 2596; else return 2597; else if (Power == 12) if (South == South::Up) if (West == West::Up) return 2598; else if (West == West::Side) return 2599; else return 2600; else if (South == South::Side) if (West == West::Up) return 2601; else if (West == West::Side) return 2602; else return 2603; else if (West == West::Up) return 2604; else if (West == West::Side) return 2605; else return 2606; else if (Power == 13) if (South == South::Up) if (West == West::Up) return 2607; else if (West == West::Side) return 2608; else return 2609; else if (South == South::Side) if (West == West::Up) return 2610; else if (West == West::Side) return 2611; else return 2612; else if (West == West::Up) return 2613; else if (West == West::Side) return 2614; else return 2615; else if (Power == 14) if (South == South::Up) if (West == West::Up) return 2616; else if (West == West::Side) return 2617; else return 2618; else if (South == South::Side) if (West == West::Up) return 2619; else if (West == West::Side) return 2620; else return 2621; else if (West == West::Up) return 2622; else if (West == West::Side) return 2623; else return 2624; else if (South == South::Up) if (West == West::Up) return 2625; else if (West == West::Side) return 2626; else return 2627; else if (South == South::Side) if (West == West::Up) return 2628; else if (West == West::Side) return 2629; else return 2630; else if (West == West::Up) return 2631; else if (West == West::Side) return 2632; else return 2633; else if (North == North::Side) if (Power == 0) if (South == South::Up) if (West == West::Up) return 2634; else if (West == West::Side) return 2635; else return 2636; else if (South == South::Side) if (West == West::Up) return 2637; else if (West == West::Side) return 2638; else return 2639; else if (West == West::Up) return 2640; else if (West == West::Side) return 2641; else return 2642; else if (Power == 1) if (South == South::Up) if (West == West::Up) return 2643; else if (West == West::Side) return 2644; else return 2645; else if (South == South::Side) if (West == West::Up) return 2646; else if (West == West::Side) return 2647; else return 2648; else if (West == West::Up) return 2649; else if (West == West::Side) return 2650; else return 2651; else if (Power == 2) if (South == South::Up) if (West == West::Up) return 2652; else if (West == West::Side) return 2653; else return 2654; else if (South == South::Side) if (West == West::Up) return 2655; else if (West == West::Side) return 2656; else return 2657; else if (West == West::Up) return 2658; else if (West == West::Side) return 2659; else return 2660; else if (Power == 3) if (South == South::Up) if (West == West::Up) return 2661; else if (West == West::Side) return 2662; else return 2663; else if (South == South::Side) if (West == West::Up) return 2664; else if (West == West::Side) return 2665; else return 2666; else if (West == West::Up) return 2667; else if (West == West::Side) return 2668; else return 2669; else if (Power == 4) if (South == South::Up) if (West == West::Up) return 2670; else if (West == West::Side) return 2671; else return 2672; else if (South == South::Side) if (West == West::Up) return 2673; else if (West == West::Side) return 2674; else return 2675; else if (West == West::Up) return 2676; else if (West == West::Side) return 2677; else return 2678; else if (Power == 5) if (South == South::Up) if (West == West::Up) return 2679; else if (West == West::Side) return 2680; else return 2681; else if (South == South::Side) if (West == West::Up) return 2682; else if (West == West::Side) return 2683; else return 2684; else if (West == West::Up) return 2685; else if (West == West::Side) return 2686; else return 2687; else if (Power == 6) if (South == South::Up) if (West == West::Up) return 2688; else if (West == West::Side) return 2689; else return 2690; else if (South == South::Side) if (West == West::Up) return 2691; else if (West == West::Side) return 2692; else return 2693; else if (West == West::Up) return 2694; else if (West == West::Side) return 2695; else return 2696; else if (Power == 7) if (South == South::Up) if (West == West::Up) return 2697; else if (West == West::Side) return 2698; else return 2699; else if (South == South::Side) if (West == West::Up) return 2700; else if (West == West::Side) return 2701; else return 2702; else if (West == West::Up) return 2703; else if (West == West::Side) return 2704; else return 2705; else if (Power == 8) if (South == South::Up) if (West == West::Up) return 2706; else if (West == West::Side) return 2707; else return 2708; else if (South == South::Side) if (West == West::Up) return 2709; else if (West == West::Side) return 2710; else return 2711; else if (West == West::Up) return 2712; else if (West == West::Side) return 2713; else return 2714; else if (Power == 9) if (South == South::Up) if (West == West::Up) return 2715; else if (West == West::Side) return 2716; else return 2717; else if (South == South::Side) if (West == West::Up) return 2718; else if (West == West::Side) return 2719; else return 2720; else if (West == West::Up) return 2721; else if (West == West::Side) return 2722; else return 2723; else if (Power == 10) if (South == South::Up) if (West == West::Up) return 2724; else if (West == West::Side) return 2725; else return 2726; else if (South == South::Side) if (West == West::Up) return 2727; else if (West == West::Side) return 2728; else return 2729; else if (West == West::Up) return 2730; else if (West == West::Side) return 2731; else return 2732; else if (Power == 11) if (South == South::Up) if (West == West::Up) return 2733; else if (West == West::Side) return 2734; else return 2735; else if (South == South::Side) if (West == West::Up) return 2736; else if (West == West::Side) return 2737; else return 2738; else if (West == West::Up) return 2739; else if (West == West::Side) return 2740; else return 2741; else if (Power == 12) if (South == South::Up) if (West == West::Up) return 2742; else if (West == West::Side) return 2743; else return 2744; else if (South == South::Side) if (West == West::Up) return 2745; else if (West == West::Side) return 2746; else return 2747; else if (West == West::Up) return 2748; else if (West == West::Side) return 2749; else return 2750; else if (Power == 13) if (South == South::Up) if (West == West::Up) return 2751; else if (West == West::Side) return 2752; else return 2753; else if (South == South::Side) if (West == West::Up) return 2754; else if (West == West::Side) return 2755; else return 2756; else if (West == West::Up) return 2757; else if (West == West::Side) return 2758; else return 2759; else if (Power == 14) if (South == South::Up) if (West == West::Up) return 2760; else if (West == West::Side) return 2761; else return 2762; else if (South == South::Side) if (West == West::Up) return 2763; else if (West == West::Side) return 2764; else return 2765; else if (West == West::Up) return 2766; else if (West == West::Side) return 2767; else return 2768; else if (South == South::Up) if (West == West::Up) return 2769; else if (West == West::Side) return 2770; else return 2771; else if (South == South::Side) if (West == West::Up) return 2772; else if (West == West::Side) return 2773; else return 2774; else if (West == West::Up) return 2775; else if (West == West::Side) return 2776; else return 2777; else if (Power == 0) if (South == South::Up) if (West == West::Up) return 2778; else if (West == West::Side) return 2779; else return 2780; else if (South == South::Side) if (West == West::Up) return 2781; else if (West == West::Side) return 2782; else return 2783; else if (West == West::Up) return 2784; else if (West == West::Side) return 2785; else return 2786; else if (Power == 1) if (South == South::Up) if (West == West::Up) return 2787; else if (West == West::Side) return 2788; else return 2789; else if (South == South::Side) if (West == West::Up) return 2790; else if (West == West::Side) return 2791; else return 2792; else if (West == West::Up) return 2793; else if (West == West::Side) return 2794; else return 2795; else if (Power == 2) if (South == South::Up) if (West == West::Up) return 2796; else if (West == West::Side) return 2797; else return 2798; else if (South == South::Side) if (West == West::Up) return 2799; else if (West == West::Side) return 2800; else return 2801; else if (West == West::Up) return 2802; else if (West == West::Side) return 2803; else return 2804; else if (Power == 3) if (South == South::Up) if (West == West::Up) return 2805; else if (West == West::Side) return 2806; else return 2807; else if (South == South::Side) if (West == West::Up) return 2808; else if (West == West::Side) return 2809; else return 2810; else if (West == West::Up) return 2811; else if (West == West::Side) return 2812; else return 2813; else if (Power == 4) if (South == South::Up) if (West == West::Up) return 2814; else if (West == West::Side) return 2815; else return 2816; else if (South == South::Side) if (West == West::Up) return 2817; else if (West == West::Side) return 2818; else return 2819; else if (West == West::Up) return 2820; else if (West == West::Side) return 2821; else return 2822; else if (Power == 5) if (South == South::Up) if (West == West::Up) return 2823; else if (West == West::Side) return 2824; else return 2825; else if (South == South::Side) if (West == West::Up) return 2826; else if (West == West::Side) return 2827; else return 2828; else if (West == West::Up) return 2829; else if (West == West::Side) return 2830; else return 2831; else if (Power == 6) if (South == South::Up) if (West == West::Up) return 2832; else if (West == West::Side) return 2833; else return 2834; else if (South == South::Side) if (West == West::Up) return 2835; else if (West == West::Side) return 2836; else return 2837; else if (West == West::Up) return 2838; else if (West == West::Side) return 2839; else return 2840; else if (Power == 7) if (South == South::Up) if (West == West::Up) return 2841; else if (West == West::Side) return 2842; else return 2843; else if (South == South::Side) if (West == West::Up) return 2844; else if (West == West::Side) return 2845; else return 2846; else if (West == West::Up) return 2847; else if (West == West::Side) return 2848; else return 2849; else if (Power == 8) if (South == South::Up) if (West == West::Up) return 2850; else if (West == West::Side) return 2851; else return 2852; else if (South == South::Side) if (West == West::Up) return 2853; else if (West == West::Side) return 2854; else return 2855; else if (West == West::Up) return 2856; else if (West == West::Side) return 2857; else return 2858; else if (Power == 9) if (South == South::Up) if (West == West::Up) return 2859; else if (West == West::Side) return 2860; else return 2861; else if (South == South::Side) if (West == West::Up) return 2862; else if (West == West::Side) return 2863; else return 2864; else if (West == West::Up) return 2865; else if (West == West::Side) return 2866; else return 2867; else if (Power == 10) if (South == South::Up) if (West == West::Up) return 2868; else if (West == West::Side) return 2869; else return 2870; else if (South == South::Side) if (West == West::Up) return 2871; else if (West == West::Side) return 2872; else return 2873; else if (West == West::Up) return 2874; else if (West == West::Side) return 2875; else return 2876; else if (Power == 11) if (South == South::Up) if (West == West::Up) return 2877; else if (West == West::Side) return 2878; else return 2879; else if (South == South::Side) if (West == West::Up) return 2880; else if (West == West::Side) return 2881; else return 2882; else if (West == West::Up) return 2883; else if (West == West::Side) return 2884; else return 2885; else if (Power == 12) if (South == South::Up) if (West == West::Up) return 2886; else if (West == West::Side) return 2887; else return 2888; else if (South == South::Side) if (West == West::Up) return 2889; else if (West == West::Side) return 2890; else return 2891; else if (West == West::Up) return 2892; else if (West == West::Side) return 2893; else return 2894; else if (Power == 13) if (South == South::Up) if (West == West::Up) return 2895; else if (West == West::Side) return 2896; else return 2897; else if (South == South::Side) if (West == West::Up) return 2898; else if (West == West::Side) return 2899; else return 2900; else if (West == West::Up) return 2901; else if (West == West::Side) return 2902; else return 2903; else if (Power == 14) if (South == South::Up) if (West == West::Up) return 2904; else if (West == West::Side) return 2905; else return 2906; else if (South == South::Side) if (West == West::Up) return 2907; else if (West == West::Side) return 2908; else return 2909; else if (West == West::Up) return 2910; else if (West == West::Side) return 2911; else return 2912; else if (South == South::Up) if (West == West::Up) return 2913; else if (West == West::Side) return 2914; else return 2915; else if (South == South::Side) if (West == West::Up) return 2916; else if (West == West::Side) return 2917; else return 2918; else if (West == West::Up) return 2919; else if (West == West::Side) return 2920; else return 2921; else if (North == North::Up) if (Power == 0) if (South == South::Up) if (West == West::Up) return 2922; else if (West == West::Side) return 2923; else return 2924; else if (South == South::Side) if (West == West::Up) return 2925; else if (West == West::Side) return 2926; else return 2927; else if (West == West::Up) return 2928; else if (West == West::Side) return 2929; else return 2930; else if (Power == 1) if (South == South::Up) if (West == West::Up) return 2931; else if (West == West::Side) return 2932; else return 2933; else if (South == South::Side) if (West == West::Up) return 2934; else if (West == West::Side) return 2935; else return 2936; else if (West == West::Up) return 2937; else if (West == West::Side) return 2938; else return 2939; else if (Power == 2) if (South == South::Up) if (West == West::Up) return 2940; else if (West == West::Side) return 2941; else return 2942; else if (South == South::Side) if (West == West::Up) return 2943; else if (West == West::Side) return 2944; else return 2945; else if (West == West::Up) return 2946; else if (West == West::Side) return 2947; else return 2948; else if (Power == 3) if (South == South::Up) if (West == West::Up) return 2949; else if (West == West::Side) return 2950; else return 2951; else if (South == South::Side) if (West == West::Up) return 2952; else if (West == West::Side) return 2953; else return 2954; else if (West == West::Up) return 2955; else if (West == West::Side) return 2956; else return 2957; else if (Power == 4) if (South == South::Up) if (West == West::Up) return 2958; else if (West == West::Side) return 2959; else return 2960; else if (South == South::Side) if (West == West::Up) return 2961; else if (West == West::Side) return 2962; else return 2963; else if (West == West::Up) return 2964; else if (West == West::Side) return 2965; else return 2966; else if (Power == 5) if (South == South::Up) if (West == West::Up) return 2967; else if (West == West::Side) return 2968; else return 2969; else if (South == South::Side) if (West == West::Up) return 2970; else if (West == West::Side) return 2971; else return 2972; else if (West == West::Up) return 2973; else if (West == West::Side) return 2974; else return 2975; else if (Power == 6) if (South == South::Up) if (West == West::Up) return 2976; else if (West == West::Side) return 2977; else return 2978; else if (South == South::Side) if (West == West::Up) return 2979; else if (West == West::Side) return 2980; else return 2981; else if (West == West::Up) return 2982; else if (West == West::Side) return 2983; else return 2984; else if (Power == 7) if (South == South::Up) if (West == West::Up) return 2985; else if (West == West::Side) return 2986; else return 2987; else if (South == South::Side) if (West == West::Up) return 2988; else if (West == West::Side) return 2989; else return 2990; else if (West == West::Up) return 2991; else if (West == West::Side) return 2992; else return 2993; else if (Power == 8) if (South == South::Up) if (West == West::Up) return 2994; else if (West == West::Side) return 2995; else return 2996; else if (South == South::Side) if (West == West::Up) return 2997; else if (West == West::Side) return 2998; else return 2999; else if (West == West::Up) return 3000; else if (West == West::Side) return 3001; else return 3002; else if (Power == 9) if (South == South::Up) if (West == West::Up) return 3003; else if (West == West::Side) return 3004; else return 3005; else if (South == South::Side) if (West == West::Up) return 3006; else if (West == West::Side) return 3007; else return 3008; else if (West == West::Up) return 3009; else if (West == West::Side) return 3010; else return 3011; else if (Power == 10) if (South == South::Up) if (West == West::Up) return 3012; else if (West == West::Side) return 3013; else return 3014; else if (South == South::Side) if (West == West::Up) return 3015; else if (West == West::Side) return 3016; else return 3017; else if (West == West::Up) return 3018; else if (West == West::Side) return 3019; else return 3020; else if (Power == 11) if (South == South::Up) if (West == West::Up) return 3021; else if (West == West::Side) return 3022; else return 3023; else if (South == South::Side) if (West == West::Up) return 3024; else if (West == West::Side) return 3025; else return 3026; else if (West == West::Up) return 3027; else if (West == West::Side) return 3028; else return 3029; else if (Power == 12) if (South == South::Up) if (West == West::Up) return 3030; else if (West == West::Side) return 3031; else return 3032; else if (South == South::Side) if (West == West::Up) return 3033; else if (West == West::Side) return 3034; else return 3035; else if (West == West::Up) return 3036; else if (West == West::Side) return 3037; else return 3038; else if (Power == 13) if (South == South::Up) if (West == West::Up) return 3039; else if (West == West::Side) return 3040; else return 3041; else if (South == South::Side) if (West == West::Up) return 3042; else if (West == West::Side) return 3043; else return 3044; else if (West == West::Up) return 3045; else if (West == West::Side) return 3046; else return 3047; else if (Power == 14) if (South == South::Up) if (West == West::Up) return 3048; else if (West == West::Side) return 3049; else return 3050; else if (South == South::Side) if (West == West::Up) return 3051; else if (West == West::Side) return 3052; else return 3053; else if (West == West::Up) return 3054; else if (West == West::Side) return 3055; else return 3056; else if (South == South::Up) if (West == West::Up) return 3057; else if (West == West::Side) return 3058; else return 3059; else if (South == South::Side) if (West == West::Up) return 3060; else if (West == West::Side) return 3061; else return 3062; else if (West == West::Up) return 3063; else if (West == West::Side) return 3064; else return 3065; else if (North == North::Side) if (Power == 0) if (South == South::Up) if (West == West::Up) return 3066; else if (West == West::Side) return 3067; else return 3068; else if (South == South::Side) if (West == West::Up) return 3069; else if (West == West::Side) return 3070; else return 3071; else if (West == West::Up) return 3072; else if (West == West::Side) return 3073; else return 3074; else if (Power == 1) if (South == South::Up) if (West == West::Up) return 3075; else if (West == West::Side) return 3076; else return 3077; else if (South == South::Side) if (West == West::Up) return 3078; else if (West == West::Side) return 3079; else return 3080; else if (West == West::Up) return 3081; else if (West == West::Side) return 3082; else return 3083; else if (Power == 2) if (South == South::Up) if (West == West::Up) return 3084; else if (West == West::Side) return 3085; else return 3086; else if (South == South::Side) if (West == West::Up) return 3087; else if (West == West::Side) return 3088; else return 3089; else if (West == West::Up) return 3090; else if (West == West::Side) return 3091; else return 3092; else if (Power == 3) if (South == South::Up) if (West == West::Up) return 3093; else if (West == West::Side) return 3094; else return 3095; else if (South == South::Side) if (West == West::Up) return 3096; else if (West == West::Side) return 3097; else return 3098; else if (West == West::Up) return 3099; else if (West == West::Side) return 3100; else return 3101; else if (Power == 4) if (South == South::Up) if (West == West::Up) return 3102; else if (West == West::Side) return 3103; else return 3104; else if (South == South::Side) if (West == West::Up) return 3105; else if (West == West::Side) return 3106; else return 3107; else if (West == West::Up) return 3108; else if (West == West::Side) return 3109; else return 3110; else if (Power == 5) if (South == South::Up) if (West == West::Up) return 3111; else if (West == West::Side) return 3112; else return 3113; else if (South == South::Side) if (West == West::Up) return 3114; else if (West == West::Side) return 3115; else return 3116; else if (West == West::Up) return 3117; else if (West == West::Side) return 3118; else return 3119; else if (Power == 6) if (South == South::Up) if (West == West::Up) return 3120; else if (West == West::Side) return 3121; else return 3122; else if (South == South::Side) if (West == West::Up) return 3123; else if (West == West::Side) return 3124; else return 3125; else if (West == West::Up) return 3126; else if (West == West::Side) return 3127; else return 3128; else if (Power == 7) if (South == South::Up) if (West == West::Up) return 3129; else if (West == West::Side) return 3130; else return 3131; else if (South == South::Side) if (West == West::Up) return 3132; else if (West == West::Side) return 3133; else return 3134; else if (West == West::Up) return 3135; else if (West == West::Side) return 3136; else return 3137; else if (Power == 8) if (South == South::Up) if (West == West::Up) return 3138; else if (West == West::Side) return 3139; else return 3140; else if (South == South::Side) if (West == West::Up) return 3141; else if (West == West::Side) return 3142; else return 3143; else if (West == West::Up) return 3144; else if (West == West::Side) return 3145; else return 3146; else if (Power == 9) if (South == South::Up) if (West == West::Up) return 3147; else if (West == West::Side) return 3148; else return 3149; else if (South == South::Side) if (West == West::Up) return 3150; else if (West == West::Side) return 3151; else return 3152; else if (West == West::Up) return 3153; else if (West == West::Side) return 3154; else return 3155; else if (Power == 10) if (South == South::Up) if (West == West::Up) return 3156; else if (West == West::Side) return 3157; else return 3158; else if (South == South::Side) if (West == West::Up) return 3159; else if (West == West::Side) return 3160; else return 3161; else if (West == West::Up) return 3162; else if (West == West::Side) return 3163; else return 3164; else if (Power == 11) if (South == South::Up) if (West == West::Up) return 3165; else if (West == West::Side) return 3166; else return 3167; else if (South == South::Side) if (West == West::Up) return 3168; else if (West == West::Side) return 3169; else return 3170; else if (West == West::Up) return 3171; else if (West == West::Side) return 3172; else return 3173; else if (Power == 12) if (South == South::Up) if (West == West::Up) return 3174; else if (West == West::Side) return 3175; else return 3176; else if (South == South::Side) if (West == West::Up) return 3177; else if (West == West::Side) return 3178; else return 3179; else if (West == West::Up) return 3180; else if (West == West::Side) return 3181; else return 3182; else if (Power == 13) if (South == South::Up) if (West == West::Up) return 3183; else if (West == West::Side) return 3184; else return 3185; else if (South == South::Side) if (West == West::Up) return 3186; else if (West == West::Side) return 3187; else return 3188; else if (West == West::Up) return 3189; else if (West == West::Side) return 3190; else return 3191; else if (Power == 14) if (South == South::Up) if (West == West::Up) return 3192; else if (West == West::Side) return 3193; else return 3194; else if (South == South::Side) if (West == West::Up) return 3195; else if (West == West::Side) return 3196; else return 3197; else if (West == West::Up) return 3198; else if (West == West::Side) return 3199; else return 3200; else if (South == South::Up) if (West == West::Up) return 3201; else if (West == West::Side) return 3202; else return 3203; else if (South == South::Side) if (West == West::Up) return 3204; else if (West == West::Side) return 3205; else return 3206; else if (West == West::Up) return 3207; else if (West == West::Side) return 3208; else return 3209; else if (Power == 0) if (South == South::Up) if (West == West::Up) return 3210; else if (West == West::Side) return 3211; else return 3212; else if (South == South::Side) if (West == West::Up) return 3213; else if (West == West::Side) return 3214; else return 3215; else if (West == West::Up) return 3216; else if (West == West::Side) return 3217; else return 3218; else if (Power == 1) if (South == South::Up) if (West == West::Up) return 3219; else if (West == West::Side) return 3220; else return 3221; else if (South == South::Side) if (West == West::Up) return 3222; else if (West == West::Side) return 3223; else return 3224; else if (West == West::Up) return 3225; else if (West == West::Side) return 3226; else return 3227; else if (Power == 2) if (South == South::Up) if (West == West::Up) return 3228; else if (West == West::Side) return 3229; else return 3230; else if (South == South::Side) if (West == West::Up) return 3231; else if (West == West::Side) return 3232; else return 3233; else if (West == West::Up) return 3234; else if (West == West::Side) return 3235; else return 3236; else if (Power == 3) if (South == South::Up) if (West == West::Up) return 3237; else if (West == West::Side) return 3238; else return 3239; else if (South == South::Side) if (West == West::Up) return 3240; else if (West == West::Side) return 3241; else return 3242; else if (West == West::Up) return 3243; else if (West == West::Side) return 3244; else return 3245; else if (Power == 4) if (South == South::Up) if (West == West::Up) return 3246; else if (West == West::Side) return 3247; else return 3248; else if (South == South::Side) if (West == West::Up) return 3249; else if (West == West::Side) return 3250; else return 3251; else if (West == West::Up) return 3252; else if (West == West::Side) return 3253; else return 3254; else if (Power == 5) if (South == South::Up) if (West == West::Up) return 3255; else if (West == West::Side) return 3256; else return 3257; else if (South == South::Side) if (West == West::Up) return 3258; else if (West == West::Side) return 3259; else return 3260; else if (West == West::Up) return 3261; else if (West == West::Side) return 3262; else return 3263; else if (Power == 6) if (South == South::Up) if (West == West::Up) return 3264; else if (West == West::Side) return 3265; else return 3266; else if (South == South::Side) if (West == West::Up) return 3267; else if (West == West::Side) return 3268; else return 3269; else if (West == West::Up) return 3270; else if (West == West::Side) return 3271; else return 3272; else if (Power == 7) if (South == South::Up) if (West == West::Up) return 3273; else if (West == West::Side) return 3274; else return 3275; else if (South == South::Side) if (West == West::Up) return 3276; else if (West == West::Side) return 3277; else return 3278; else if (West == West::Up) return 3279; else if (West == West::Side) return 3280; else return 3281; else if (Power == 8) if (South == South::Up) if (West == West::Up) return 3282; else if (West == West::Side) return 3283; else return 3284; else if (South == South::Side) if (West == West::Up) return 3285; else if (West == West::Side) return 3286; else return 3287; else if (West == West::Up) return 3288; else if (West == West::Side) return 3289; else return 3290; else if (Power == 9) if (South == South::Up) if (West == West::Up) return 3291; else if (West == West::Side) return 3292; else return 3293; else if (South == South::Side) if (West == West::Up) return 3294; else if (West == West::Side) return 3295; else return 3296; else if (West == West::Up) return 3297; else if (West == West::Side) return 3298; else return 3299; else if (Power == 10) if (South == South::Up) if (West == West::Up) return 3300; else if (West == West::Side) return 3301; else return 3302; else if (South == South::Side) if (West == West::Up) return 3303; else if (West == West::Side) return 3304; else return 3305; else if (West == West::Up) return 3306; else if (West == West::Side) return 3307; else return 3308; else if (Power == 11) if (South == South::Up) if (West == West::Up) return 3309; else if (West == West::Side) return 3310; else return 3311; else if (South == South::Side) if (West == West::Up) return 3312; else if (West == West::Side) return 3313; else return 3314; else if (West == West::Up) return 3315; else if (West == West::Side) return 3316; else return 3317; else if (Power == 12) if (South == South::Up) if (West == West::Up) return 3318; else if (West == West::Side) return 3319; else return 3320; else if (South == South::Side) if (West == West::Up) return 3321; else if (West == West::Side) return 3322; else return 3323; else if (West == West::Up) return 3324; else if (West == West::Side) return 3325; else return 3326; else if (Power == 13) if (South == South::Up) if (West == West::Up) return 3327; else if (West == West::Side) return 3328; else return 3329; else if (South == South::Side) if (West == West::Up) return 3330; else if (West == West::Side) return 3331; else return 3332; else if (West == West::Up) return 3333; else if (West == West::Side) return 3334; else return 3335; else if (Power == 14) if (South == South::Up) if (West == West::Up) return 3336; else if (West == West::Side) return 3337; else return 3338; else if (South == South::Side) if (West == West::Up) return 3339; else if (West == West::Side) return 3340; else return 3341; else if (West == West::Up) return 3342; else if (West == West::Side) return 3343; else return 3344; else if (South == South::Up) if (West == West::Up) return 3345; else if (West == West::Side) return 3346; else return 3347; else if (South == South::Side) if (West == West::Up) return 3348; else if (West == West::Side) return 3349; else return 3350; else if (West == West::Up) return 3351; else if (West == West::Side) return 3352; else return 3353; } BlockState RedstoneWire(); enum East East(BlockState Block); enum North North(BlockState Block); unsigned char Power(BlockState Block); enum South South(BlockState Block); enum West West(BlockState Block); } namespace Repeater { constexpr BlockState Repeater(const unsigned char Delay, const eBlockFace Facing, const bool Locked, const bool Powered) { if (Delay == 1) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Locked) if (Powered) return 4031; else return 4032; else if (Powered) return 4033; else return 4034; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Locked) if (Powered) return 4035; else return 4036; else if (Powered) return 4037; else return 4038; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Locked) if (Powered) return 4039; else return 4040; else if (Powered) return 4041; else return 4042; else if (Locked) if (Powered) return 4043; else return 4044; else if (Powered) return 4045; else return 4046; else if (Delay == 2) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Locked) if (Powered) return 4047; else return 4048; else if (Powered) return 4049; else return 4050; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Locked) if (Powered) return 4051; else return 4052; else if (Powered) return 4053; else return 4054; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Locked) if (Powered) return 4055; else return 4056; else if (Powered) return 4057; else return 4058; else if (Locked) if (Powered) return 4059; else return 4060; else if (Powered) return 4061; else return 4062; else if (Delay == 3) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Locked) if (Powered) return 4063; else return 4064; else if (Powered) return 4065; else return 4066; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Locked) if (Powered) return 4067; else return 4068; else if (Powered) return 4069; else return 4070; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Locked) if (Powered) return 4071; else return 4072; else if (Powered) return 4073; else return 4074; else if (Locked) if (Powered) return 4075; else return 4076; else if (Powered) return 4077; else return 4078; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Locked) if (Powered) return 4079; else return 4080; else if (Powered) return 4081; else return 4082; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Locked) if (Powered) return 4083; else return 4084; else if (Powered) return 4085; else return 4086; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Locked) if (Powered) return 4087; else return 4088; else if (Powered) return 4089; else return 4090; else if (Locked) if (Powered) return 4091; else return 4092; else if (Powered) return 4093; else return 4094; } BlockState Repeater(); unsigned char Delay(BlockState Block); eBlockFace Facing(BlockState Block); bool Locked(BlockState Block); bool Powered(BlockState Block); } namespace RepeatingCommandBlock { constexpr BlockState RepeatingCommandBlock(const bool Conditional, const eBlockFace Facing) { if (Conditional) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9225; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9226; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9227; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9228; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9229; else return 9230; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9231; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9232; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9233; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9234; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9235; else return 9236; } BlockState RepeatingCommandBlock(); bool Conditional(BlockState Block); eBlockFace Facing(BlockState Block); } namespace RespawnAnchor { constexpr BlockState RespawnAnchor(const unsigned char Charges) { if (Charges == 0) return 15829; else if (Charges == 1) return 15830; else if (Charges == 2) return 15831; else if (Charges == 3) return 15832; else return 15833; } BlockState RespawnAnchor(); unsigned char Charges(BlockState Block); } namespace RoseBush { enum class Half { Upper, Lower }; constexpr BlockState RoseBush(const enum Half Half) { if (Half == Half::Upper) return 7889; else return 7890; } BlockState RoseBush(); enum Half Half(BlockState Block); } namespace Sand { constexpr BlockState Sand() { return 66; } } namespace Sandstone { constexpr BlockState Sandstone() { return 246; } } namespace SandstoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState SandstoneSlab(const enum Type Type) { if (Type == Type::Top) return 8349; else if (Type == Type::Bottom) return 8351; else return 8353; } BlockState SandstoneSlab(); enum Type Type(BlockState Block); } namespace SandstoneStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState SandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5171; else if (Shape == Shape::InnerLeft) return 5173; else if (Shape == Shape::InnerRight) return 5175; else if (Shape == Shape::OuterLeft) return 5177; else return 5179; else if (Shape == Shape::Straight) return 5181; else if (Shape == Shape::InnerLeft) return 5183; else if (Shape == Shape::InnerRight) return 5185; else if (Shape == Shape::OuterLeft) return 5187; else return 5189; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 5191; else if (Shape == Shape::InnerLeft) return 5193; else if (Shape == Shape::InnerRight) return 5195; else if (Shape == Shape::OuterLeft) return 5197; else return 5199; else if (Shape == Shape::Straight) return 5201; else if (Shape == Shape::InnerLeft) return 5203; else if (Shape == Shape::InnerRight) return 5205; else if (Shape == Shape::OuterLeft) return 5207; else return 5209; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5211; else if (Shape == Shape::InnerLeft) return 5213; else if (Shape == Shape::InnerRight) return 5215; else if (Shape == Shape::OuterLeft) return 5217; else return 5219; else if (Shape == Shape::Straight) return 5221; else if (Shape == Shape::InnerLeft) return 5223; else if (Shape == Shape::InnerRight) return 5225; else if (Shape == Shape::OuterLeft) return 5227; else return 5229; else if (Half == Half::Top) if (Shape == Shape::Straight) return 5231; else if (Shape == Shape::InnerLeft) return 5233; else if (Shape == Shape::InnerRight) return 5235; else if (Shape == Shape::OuterLeft) return 5237; else return 5239; else if (Shape == Shape::Straight) return 5241; else if (Shape == Shape::InnerLeft) return 5243; else if (Shape == Shape::InnerRight) return 5245; else if (Shape == Shape::OuterLeft) return 5247; else return 5249; } BlockState SandstoneStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace SandstoneWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState SandstoneWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 13786; else if (West == West::Low) return 13787; else return 13788; else if (West == West::None) return 13792; else if (West == West::Low) return 13793; else return 13794; else if (South == South::Low) if (Up) if (West == West::None) return 13798; else if (West == West::Low) return 13799; else return 13800; else if (West == West::None) return 13804; else if (West == West::Low) return 13805; else return 13806; else if (Up) if (West == West::None) return 13810; else if (West == West::Low) return 13811; else return 13812; else if (West == West::None) return 13816; else if (West == West::Low) return 13817; else return 13818; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 13822; else if (West == West::Low) return 13823; else return 13824; else if (West == West::None) return 13828; else if (West == West::Low) return 13829; else return 13830; else if (South == South::Low) if (Up) if (West == West::None) return 13834; else if (West == West::Low) return 13835; else return 13836; else if (West == West::None) return 13840; else if (West == West::Low) return 13841; else return 13842; else if (Up) if (West == West::None) return 13846; else if (West == West::Low) return 13847; else return 13848; else if (West == West::None) return 13852; else if (West == West::Low) return 13853; else return 13854; else if (South == South::None) if (Up) if (West == West::None) return 13858; else if (West == West::Low) return 13859; else return 13860; else if (West == West::None) return 13864; else if (West == West::Low) return 13865; else return 13866; else if (South == South::Low) if (Up) if (West == West::None) return 13870; else if (West == West::Low) return 13871; else return 13872; else if (West == West::None) return 13876; else if (West == West::Low) return 13877; else return 13878; else if (Up) if (West == West::None) return 13882; else if (West == West::Low) return 13883; else return 13884; else if (West == West::None) return 13888; else if (West == West::Low) return 13889; else return 13890; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 13894; else if (West == West::Low) return 13895; else return 13896; else if (West == West::None) return 13900; else if (West == West::Low) return 13901; else return 13902; else if (South == South::Low) if (Up) if (West == West::None) return 13906; else if (West == West::Low) return 13907; else return 13908; else if (West == West::None) return 13912; else if (West == West::Low) return 13913; else return 13914; else if (Up) if (West == West::None) return 13918; else if (West == West::Low) return 13919; else return 13920; else if (West == West::None) return 13924; else if (West == West::Low) return 13925; else return 13926; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 13930; else if (West == West::Low) return 13931; else return 13932; else if (West == West::None) return 13936; else if (West == West::Low) return 13937; else return 13938; else if (South == South::Low) if (Up) if (West == West::None) return 13942; else if (West == West::Low) return 13943; else return 13944; else if (West == West::None) return 13948; else if (West == West::Low) return 13949; else return 13950; else if (Up) if (West == West::None) return 13954; else if (West == West::Low) return 13955; else return 13956; else if (West == West::None) return 13960; else if (West == West::Low) return 13961; else return 13962; else if (South == South::None) if (Up) if (West == West::None) return 13966; else if (West == West::Low) return 13967; else return 13968; else if (West == West::None) return 13972; else if (West == West::Low) return 13973; else return 13974; else if (South == South::Low) if (Up) if (West == West::None) return 13978; else if (West == West::Low) return 13979; else return 13980; else if (West == West::None) return 13984; else if (West == West::Low) return 13985; else return 13986; else if (Up) if (West == West::None) return 13990; else if (West == West::Low) return 13991; else return 13992; else if (West == West::None) return 13996; else if (West == West::Low) return 13997; else return 13998; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 14002; else if (West == West::Low) return 14003; else return 14004; else if (West == West::None) return 14008; else if (West == West::Low) return 14009; else return 14010; else if (South == South::Low) if (Up) if (West == West::None) return 14014; else if (West == West::Low) return 14015; else return 14016; else if (West == West::None) return 14020; else if (West == West::Low) return 14021; else return 14022; else if (Up) if (West == West::None) return 14026; else if (West == West::Low) return 14027; else return 14028; else if (West == West::None) return 14032; else if (West == West::Low) return 14033; else return 14034; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 14038; else if (West == West::Low) return 14039; else return 14040; else if (West == West::None) return 14044; else if (West == West::Low) return 14045; else return 14046; else if (South == South::Low) if (Up) if (West == West::None) return 14050; else if (West == West::Low) return 14051; else return 14052; else if (West == West::None) return 14056; else if (West == West::Low) return 14057; else return 14058; else if (Up) if (West == West::None) return 14062; else if (West == West::Low) return 14063; else return 14064; else if (West == West::None) return 14068; else if (West == West::Low) return 14069; else return 14070; else if (South == South::None) if (Up) if (West == West::None) return 14074; else if (West == West::Low) return 14075; else return 14076; else if (West == West::None) return 14080; else if (West == West::Low) return 14081; else return 14082; else if (South == South::Low) if (Up) if (West == West::None) return 14086; else if (West == West::Low) return 14087; else return 14088; else if (West == West::None) return 14092; else if (West == West::Low) return 14093; else return 14094; else if (Up) if (West == West::None) return 14098; else if (West == West::Low) return 14099; else return 14100; else if (West == West::None) return 14104; else if (West == West::Low) return 14105; else return 14106; } BlockState SandstoneWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace Scaffolding { constexpr BlockState Scaffolding(const bool Bottom, const unsigned char Distance) { if (Bottom) if (Distance == 0) return 14756; else if (Distance == 1) return 14758; else if (Distance == 2) return 14760; else if (Distance == 3) return 14762; else if (Distance == 4) return 14764; else if (Distance == 5) return 14766; else if (Distance == 6) return 14768; else return 14770; else if (Distance == 0) return 14772; else if (Distance == 1) return 14774; else if (Distance == 2) return 14776; else if (Distance == 3) return 14778; else if (Distance == 4) return 14780; else if (Distance == 5) return 14782; else if (Distance == 6) return 14784; else return 14786; } BlockState Scaffolding(); bool Bottom(BlockState Block); unsigned char Distance(BlockState Block); } namespace SeaLantern { constexpr BlockState SeaLantern() { return 7862; } } namespace SeaPickle { constexpr BlockState SeaPickle(const unsigned char Pickles) { if (Pickles == 1) return 9641; else if (Pickles == 2) return 9643; else if (Pickles == 3) return 9645; else return 9647; } BlockState SeaPickle(); unsigned char Pickles(BlockState Block); } namespace Seagrass { constexpr BlockState Seagrass() { return 1345; } } namespace Shroomlight { constexpr BlockState Shroomlight() { return 14989; } } namespace ShulkerBox { constexpr BlockState ShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9272; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9273; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9274; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9275; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9276; else return 9277; } BlockState ShulkerBox(); eBlockFace Facing(BlockState Block); } namespace SkeletonSkull { constexpr BlockState SkeletonSkull(const unsigned char Rotation) { if (Rotation == 0) return 6490; else if (Rotation == 1) return 6491; else if (Rotation == 2) return 6492; else if (Rotation == 3) return 6493; else if (Rotation == 4) return 6494; else if (Rotation == 5) return 6495; else if (Rotation == 6) return 6496; else if (Rotation == 7) return 6497; else if (Rotation == 8) return 6498; else if (Rotation == 9) return 6499; else if (Rotation == 10) return 6500; else if (Rotation == 11) return 6501; else if (Rotation == 12) return 6502; else if (Rotation == 13) return 6503; else if (Rotation == 14) return 6504; else return 6505; } BlockState SkeletonSkull(); unsigned char Rotation(BlockState Block); } namespace SkeletonWallSkull { constexpr BlockState SkeletonWallSkull(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6506; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6507; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6508; else return 6509; } BlockState SkeletonWallSkull(); eBlockFace Facing(BlockState Block); } namespace SlimeBlock { constexpr BlockState SlimeBlock() { return 7535; } } namespace SmithingTable { constexpr BlockState SmithingTable() { return 14849; } } namespace Smoker { constexpr BlockState Smoker(const eBlockFace Facing, const bool Lit) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Lit) return 14803; else return 14804; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Lit) return 14805; else return 14806; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Lit) return 14807; else return 14808; else if (Lit) return 14809; else return 14810; } BlockState Smoker(); eBlockFace Facing(BlockState Block); bool Lit(BlockState Block); } namespace SmoothQuartz { constexpr BlockState SmoothQuartz() { return 8416; } } namespace SmoothQuartzSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState SmoothQuartzSlab(const enum Type Type) { if (Type == Type::Top) return 10832; else if (Type == Type::Bottom) return 10834; else return 10836; } BlockState SmoothQuartzSlab(); enum Type Type(BlockState Block); } namespace SmoothQuartzStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState SmoothQuartzStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10310; else if (Shape == Shape::InnerLeft) return 10312; else if (Shape == Shape::InnerRight) return 10314; else if (Shape == Shape::OuterLeft) return 10316; else return 10318; else if (Shape == Shape::Straight) return 10320; else if (Shape == Shape::InnerLeft) return 10322; else if (Shape == Shape::InnerRight) return 10324; else if (Shape == Shape::OuterLeft) return 10326; else return 10328; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10330; else if (Shape == Shape::InnerLeft) return 10332; else if (Shape == Shape::InnerRight) return 10334; else if (Shape == Shape::OuterLeft) return 10336; else return 10338; else if (Shape == Shape::Straight) return 10340; else if (Shape == Shape::InnerLeft) return 10342; else if (Shape == Shape::InnerRight) return 10344; else if (Shape == Shape::OuterLeft) return 10346; else return 10348; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10350; else if (Shape == Shape::InnerLeft) return 10352; else if (Shape == Shape::InnerRight) return 10354; else if (Shape == Shape::OuterLeft) return 10356; else return 10358; else if (Shape == Shape::Straight) return 10360; else if (Shape == Shape::InnerLeft) return 10362; else if (Shape == Shape::InnerRight) return 10364; else if (Shape == Shape::OuterLeft) return 10366; else return 10368; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10370; else if (Shape == Shape::InnerLeft) return 10372; else if (Shape == Shape::InnerRight) return 10374; else if (Shape == Shape::OuterLeft) return 10376; else return 10378; else if (Shape == Shape::Straight) return 10380; else if (Shape == Shape::InnerLeft) return 10382; else if (Shape == Shape::InnerRight) return 10384; else if (Shape == Shape::OuterLeft) return 10386; else return 10388; } BlockState SmoothQuartzStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace SmoothRedSandstone { constexpr BlockState SmoothRedSandstone() { return 8417; } } namespace SmoothRedSandstoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState SmoothRedSandstoneSlab(const enum Type Type) { if (Type == Type::Top) return 10796; else if (Type == Type::Bottom) return 10798; else return 10800; } BlockState SmoothRedSandstoneSlab(); enum Type Type(BlockState Block); } namespace SmoothRedSandstoneStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState SmoothRedSandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9750; else if (Shape == Shape::InnerLeft) return 9752; else if (Shape == Shape::InnerRight) return 9754; else if (Shape == Shape::OuterLeft) return 9756; else return 9758; else if (Shape == Shape::Straight) return 9760; else if (Shape == Shape::InnerLeft) return 9762; else if (Shape == Shape::InnerRight) return 9764; else if (Shape == Shape::OuterLeft) return 9766; else return 9768; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 9770; else if (Shape == Shape::InnerLeft) return 9772; else if (Shape == Shape::InnerRight) return 9774; else if (Shape == Shape::OuterLeft) return 9776; else return 9778; else if (Shape == Shape::Straight) return 9780; else if (Shape == Shape::InnerLeft) return 9782; else if (Shape == Shape::InnerRight) return 9784; else if (Shape == Shape::OuterLeft) return 9786; else return 9788; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 9790; else if (Shape == Shape::InnerLeft) return 9792; else if (Shape == Shape::InnerRight) return 9794; else if (Shape == Shape::OuterLeft) return 9796; else return 9798; else if (Shape == Shape::Straight) return 9800; else if (Shape == Shape::InnerLeft) return 9802; else if (Shape == Shape::InnerRight) return 9804; else if (Shape == Shape::OuterLeft) return 9806; else return 9808; else if (Half == Half::Top) if (Shape == Shape::Straight) return 9810; else if (Shape == Shape::InnerLeft) return 9812; else if (Shape == Shape::InnerRight) return 9814; else if (Shape == Shape::OuterLeft) return 9816; else return 9818; else if (Shape == Shape::Straight) return 9820; else if (Shape == Shape::InnerLeft) return 9822; else if (Shape == Shape::InnerRight) return 9824; else if (Shape == Shape::OuterLeft) return 9826; else return 9828; } BlockState SmoothRedSandstoneStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace SmoothSandstone { constexpr BlockState SmoothSandstone() { return 8415; } } namespace SmoothSandstoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState SmoothSandstoneSlab(const enum Type Type) { if (Type == Type::Top) return 10826; else if (Type == Type::Bottom) return 10828; else return 10830; } BlockState SmoothSandstoneSlab(); enum Type Type(BlockState Block); } namespace SmoothSandstoneStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState SmoothSandstoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10230; else if (Shape == Shape::InnerLeft) return 10232; else if (Shape == Shape::InnerRight) return 10234; else if (Shape == Shape::OuterLeft) return 10236; else return 10238; else if (Shape == Shape::Straight) return 10240; else if (Shape == Shape::InnerLeft) return 10242; else if (Shape == Shape::InnerRight) return 10244; else if (Shape == Shape::OuterLeft) return 10246; else return 10248; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10250; else if (Shape == Shape::InnerLeft) return 10252; else if (Shape == Shape::InnerRight) return 10254; else if (Shape == Shape::OuterLeft) return 10256; else return 10258; else if (Shape == Shape::Straight) return 10260; else if (Shape == Shape::InnerLeft) return 10262; else if (Shape == Shape::InnerRight) return 10264; else if (Shape == Shape::OuterLeft) return 10266; else return 10268; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10270; else if (Shape == Shape::InnerLeft) return 10272; else if (Shape == Shape::InnerRight) return 10274; else if (Shape == Shape::OuterLeft) return 10276; else return 10278; else if (Shape == Shape::Straight) return 10280; else if (Shape == Shape::InnerLeft) return 10282; else if (Shape == Shape::InnerRight) return 10284; else if (Shape == Shape::OuterLeft) return 10286; else return 10288; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10290; else if (Shape == Shape::InnerLeft) return 10292; else if (Shape == Shape::InnerRight) return 10294; else if (Shape == Shape::OuterLeft) return 10296; else return 10298; else if (Shape == Shape::Straight) return 10300; else if (Shape == Shape::InnerLeft) return 10302; else if (Shape == Shape::InnerRight) return 10304; else if (Shape == Shape::OuterLeft) return 10306; else return 10308; } BlockState SmoothSandstoneStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace SmoothStone { constexpr BlockState SmoothStone() { return 8414; } } namespace SmoothStoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState SmoothStoneSlab(const enum Type Type) { if (Type == Type::Top) return 8343; else if (Type == Type::Bottom) return 8345; else return 8347; } BlockState SmoothStoneSlab(); enum Type Type(BlockState Block); } namespace Snow { constexpr BlockState Snow(const unsigned char Layers) { if (Layers == 1) return 3921; else if (Layers == 2) return 3922; else if (Layers == 3) return 3923; else if (Layers == 4) return 3924; else if (Layers == 5) return 3925; else if (Layers == 6) return 3926; else if (Layers == 7) return 3927; else return 3928; } BlockState Snow(); unsigned char Layers(BlockState Block); } namespace SnowBlock { constexpr BlockState SnowBlock() { return 3930; } } namespace SoulCampfire { constexpr BlockState SoulCampfire(const eBlockFace Facing, const bool Lit, const bool SignalFire) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Lit) if (SignalFire) return 14923; else return 14925; else if (SignalFire) return 14927; else return 14929; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Lit) if (SignalFire) return 14931; else return 14933; else if (SignalFire) return 14935; else return 14937; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Lit) if (SignalFire) return 14939; else return 14941; else if (SignalFire) return 14943; else return 14945; else if (Lit) if (SignalFire) return 14947; else return 14949; else if (SignalFire) return 14951; else return 14953; } BlockState SoulCampfire(); eBlockFace Facing(BlockState Block); bool Lit(BlockState Block); bool SignalFire(BlockState Block); } namespace SoulFire { constexpr BlockState SoulFire() { return 1952; } } namespace SoulLantern { constexpr BlockState SoulLantern(const bool Hanging) { if (Hanging) return 14888; else return 14889; } BlockState SoulLantern(); bool Hanging(BlockState Block); } namespace SoulSand { constexpr BlockState SoulSand() { return 4000; } } namespace SoulSoil { constexpr BlockState SoulSoil() { return 4001; } } namespace SoulTorch { constexpr BlockState SoulTorch() { return 4008; } } namespace SoulWallTorch { constexpr BlockState SoulWallTorch(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 4009; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 4010; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 4011; else return 4012; } BlockState SoulWallTorch(); eBlockFace Facing(BlockState Block); } namespace Spawner { constexpr BlockState Spawner() { return 1953; } } namespace Sponge { constexpr BlockState Sponge() { return 229; } } namespace SpruceButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState SpruceButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6370; else return 6371; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6372; else return 6373; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6374; else return 6375; else if (Powered) return 6376; else return 6377; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6378; else return 6379; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6380; else return 6381; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6382; else return 6383; else if (Powered) return 6384; else return 6385; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 6386; else return 6387; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 6388; else return 6389; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 6390; else return 6391; else if (Powered) return 6392; else return 6393; } BlockState SpruceButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace SpruceDoor { enum class Half { Upper, Lower }; enum class Hinge { Left, Right }; constexpr BlockState SpruceDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8738; else return 8739; else if (Powered) return 8740; else return 8741; else if (Open) if (Powered) return 8742; else return 8743; else if (Powered) return 8744; else return 8745; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8746; else return 8747; else if (Powered) return 8748; else return 8749; else if (Open) if (Powered) return 8750; else return 8751; else if (Powered) return 8752; else return 8753; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8754; else return 8755; else if (Powered) return 8756; else return 8757; else if (Open) if (Powered) return 8758; else return 8759; else if (Powered) return 8760; else return 8761; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8762; else return 8763; else if (Powered) return 8764; else return 8765; else if (Open) if (Powered) return 8766; else return 8767; else if (Powered) return 8768; else return 8769; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8770; else return 8771; else if (Powered) return 8772; else return 8773; else if (Open) if (Powered) return 8774; else return 8775; else if (Powered) return 8776; else return 8777; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8778; else return 8779; else if (Powered) return 8780; else return 8781; else if (Open) if (Powered) return 8782; else return 8783; else if (Powered) return 8784; else return 8785; else if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 8786; else return 8787; else if (Powered) return 8788; else return 8789; else if (Open) if (Powered) return 8790; else return 8791; else if (Powered) return 8792; else return 8793; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 8794; else return 8795; else if (Powered) return 8796; else return 8797; else if (Open) if (Powered) return 8798; else return 8799; else if (Powered) return 8800; else return 8801; } BlockState SpruceDoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Hinge Hinge(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace SpruceFence { constexpr BlockState SpruceFence(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 8580; else return 8581; else if (West) return 8584; else return 8585; else if (South) if (West) return 8588; else return 8589; else if (West) return 8592; else return 8593; else if (North) if (South) if (West) return 8596; else return 8597; else if (West) return 8600; else return 8601; else if (South) if (West) return 8604; else return 8605; else if (West) return 8608; else return 8609; } BlockState SpruceFence(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace SpruceFenceGate { constexpr BlockState SpruceFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (InWall) if (Open) if (Powered) return 8418; else return 8419; else if (Powered) return 8420; else return 8421; else if (Open) if (Powered) return 8422; else return 8423; else if (Powered) return 8424; else return 8425; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (InWall) if (Open) if (Powered) return 8426; else return 8427; else if (Powered) return 8428; else return 8429; else if (Open) if (Powered) return 8430; else return 8431; else if (Powered) return 8432; else return 8433; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (InWall) if (Open) if (Powered) return 8434; else return 8435; else if (Powered) return 8436; else return 8437; else if (Open) if (Powered) return 8438; else return 8439; else if (Powered) return 8440; else return 8441; else if (InWall) if (Open) if (Powered) return 8442; else return 8443; else if (Powered) return 8444; else return 8445; else if (Open) if (Powered) return 8446; else return 8447; else if (Powered) return 8448; else return 8449; } BlockState SpruceFenceGate(); eBlockFace Facing(BlockState Block); bool InWall(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace SpruceLeaves { constexpr BlockState SpruceLeaves(const unsigned char Distance, const bool Persistent) { if (Distance == 1) if (Persistent) return 159; else return 160; else if (Distance == 2) if (Persistent) return 161; else return 162; else if (Distance == 3) if (Persistent) return 163; else return 164; else if (Distance == 4) if (Persistent) return 165; else return 166; else if (Distance == 5) if (Persistent) return 167; else return 168; else if (Distance == 6) if (Persistent) return 169; else return 170; else if (Persistent) return 171; else return 172; } BlockState SpruceLeaves(); unsigned char Distance(BlockState Block); bool Persistent(BlockState Block); } namespace SpruceLog { enum class Axis { X, Y, Z }; constexpr BlockState SpruceLog(const enum Axis Axis) { if (Axis == Axis::X) return 76; else if (Axis == Axis::Y) return 77; else return 78; } BlockState SpruceLog(); enum Axis Axis(BlockState Block); } namespace SprucePlanks { constexpr BlockState SprucePlanks() { return 16; } } namespace SprucePressurePlate { constexpr BlockState SprucePressurePlate(const bool Powered) { if (Powered) return 3875; else return 3876; } BlockState SprucePressurePlate(); bool Powered(BlockState Block); } namespace SpruceSapling { constexpr BlockState SpruceSapling(const unsigned char Stage) { if (Stage == 0) return 23; else return 24; } BlockState SpruceSapling(); unsigned char Stage(BlockState Block); } namespace SpruceSign { constexpr BlockState SpruceSign(const unsigned char Rotation) { if (Rotation == 0) return 3414; else if (Rotation == 1) return 3416; else if (Rotation == 2) return 3418; else if (Rotation == 3) return 3420; else if (Rotation == 4) return 3422; else if (Rotation == 5) return 3424; else if (Rotation == 6) return 3426; else if (Rotation == 7) return 3428; else if (Rotation == 8) return 3430; else if (Rotation == 9) return 3432; else if (Rotation == 10) return 3434; else if (Rotation == 11) return 3436; else if (Rotation == 12) return 3438; else if (Rotation == 13) return 3440; else if (Rotation == 14) return 3442; else return 3444; } BlockState SpruceSign(); unsigned char Rotation(BlockState Block); } namespace SpruceSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState SpruceSlab(const enum Type Type) { if (Type == Type::Top) return 8307; else if (Type == Type::Bottom) return 8309; else return 8311; } BlockState SpruceSlab(); enum Type Type(BlockState Block); } namespace SpruceStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState SpruceStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5405; else if (Shape == Shape::InnerLeft) return 5407; else if (Shape == Shape::InnerRight) return 5409; else if (Shape == Shape::OuterLeft) return 5411; else return 5413; else if (Shape == Shape::Straight) return 5415; else if (Shape == Shape::InnerLeft) return 5417; else if (Shape == Shape::InnerRight) return 5419; else if (Shape == Shape::OuterLeft) return 5421; else return 5423; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 5425; else if (Shape == Shape::InnerLeft) return 5427; else if (Shape == Shape::InnerRight) return 5429; else if (Shape == Shape::OuterLeft) return 5431; else return 5433; else if (Shape == Shape::Straight) return 5435; else if (Shape == Shape::InnerLeft) return 5437; else if (Shape == Shape::InnerRight) return 5439; else if (Shape == Shape::OuterLeft) return 5441; else return 5443; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 5445; else if (Shape == Shape::InnerLeft) return 5447; else if (Shape == Shape::InnerRight) return 5449; else if (Shape == Shape::OuterLeft) return 5451; else return 5453; else if (Shape == Shape::Straight) return 5455; else if (Shape == Shape::InnerLeft) return 5457; else if (Shape == Shape::InnerRight) return 5459; else if (Shape == Shape::OuterLeft) return 5461; else return 5463; else if (Half == Half::Top) if (Shape == Shape::Straight) return 5465; else if (Shape == Shape::InnerLeft) return 5467; else if (Shape == Shape::InnerRight) return 5469; else if (Shape == Shape::OuterLeft) return 5471; else return 5473; else if (Shape == Shape::Straight) return 5475; else if (Shape == Shape::InnerLeft) return 5477; else if (Shape == Shape::InnerRight) return 5479; else if (Shape == Shape::OuterLeft) return 5481; else return 5483; } BlockState SpruceStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace SpruceTrapdoor { enum class Half { Top, Bottom }; constexpr BlockState SpruceTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Open) if (Powered) return 4176; else return 4178; else if (Powered) return 4180; else return 4182; else if (Open) if (Powered) return 4184; else return 4186; else if (Powered) return 4188; else return 4190; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Open) if (Powered) return 4192; else return 4194; else if (Powered) return 4196; else return 4198; else if (Open) if (Powered) return 4200; else return 4202; else if (Powered) return 4204; else return 4206; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Open) if (Powered) return 4208; else return 4210; else if (Powered) return 4212; else return 4214; else if (Open) if (Powered) return 4216; else return 4218; else if (Powered) return 4220; else return 4222; else if (Half == Half::Top) if (Open) if (Powered) return 4224; else return 4226; else if (Powered) return 4228; else return 4230; else if (Open) if (Powered) return 4232; else return 4234; else if (Powered) return 4236; else return 4238; } BlockState SpruceTrapdoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace SpruceWallSign { constexpr BlockState SpruceWallSign(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 3744; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 3746; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 3748; else return 3750; } BlockState SpruceWallSign(); eBlockFace Facing(BlockState Block); } namespace SpruceWood { enum class Axis { X, Y, Z }; constexpr BlockState SpruceWood(const enum Axis Axis) { if (Axis == Axis::X) return 112; else if (Axis == Axis::Y) return 113; else return 114; } BlockState SpruceWood(); enum Axis Axis(BlockState Block); } namespace StickyPiston { constexpr BlockState StickyPiston(const bool Extended, const eBlockFace Facing) { if (Extended) if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1329; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1330; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1331; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1332; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1333; else return 1334; else if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1335; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 1336; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1337; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1338; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 1339; else return 1340; } BlockState StickyPiston(); bool Extended(BlockState Block); eBlockFace Facing(BlockState Block); } namespace Stone { constexpr BlockState Stone() { return 1; } } namespace StoneBrickSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState StoneBrickSlab(const enum Type Type) { if (Type == Type::Top) return 8379; else if (Type == Type::Bottom) return 8381; else return 8383; } BlockState StoneBrickSlab(); enum Type Type(BlockState Block); } namespace StoneBrickStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState StoneBrickStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 4933; else if (Shape == Shape::InnerLeft) return 4935; else if (Shape == Shape::InnerRight) return 4937; else if (Shape == Shape::OuterLeft) return 4939; else return 4941; else if (Shape == Shape::Straight) return 4943; else if (Shape == Shape::InnerLeft) return 4945; else if (Shape == Shape::InnerRight) return 4947; else if (Shape == Shape::OuterLeft) return 4949; else return 4951; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 4953; else if (Shape == Shape::InnerLeft) return 4955; else if (Shape == Shape::InnerRight) return 4957; else if (Shape == Shape::OuterLeft) return 4959; else return 4961; else if (Shape == Shape::Straight) return 4963; else if (Shape == Shape::InnerLeft) return 4965; else if (Shape == Shape::InnerRight) return 4967; else if (Shape == Shape::OuterLeft) return 4969; else return 4971; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 4973; else if (Shape == Shape::InnerLeft) return 4975; else if (Shape == Shape::InnerRight) return 4977; else if (Shape == Shape::OuterLeft) return 4979; else return 4981; else if (Shape == Shape::Straight) return 4983; else if (Shape == Shape::InnerLeft) return 4985; else if (Shape == Shape::InnerRight) return 4987; else if (Shape == Shape::OuterLeft) return 4989; else return 4991; else if (Half == Half::Top) if (Shape == Shape::Straight) return 4993; else if (Shape == Shape::InnerLeft) return 4995; else if (Shape == Shape::InnerRight) return 4997; else if (Shape == Shape::OuterLeft) return 4999; else return 5001; else if (Shape == Shape::Straight) return 5003; else if (Shape == Shape::InnerLeft) return 5005; else if (Shape == Shape::InnerRight) return 5007; else if (Shape == Shape::OuterLeft) return 5009; else return 5011; } BlockState StoneBrickStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace StoneBrickWall { enum class East { None, Low, Tall }; enum class North { None, Low, Tall }; enum class South { None, Low, Tall }; enum class West { None, Low, Tall }; constexpr BlockState StoneBrickWall(const enum East East, const enum North North, const enum South South, const bool Up, const enum West West) { if (East == East::None) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 12490; else if (West == West::Low) return 12491; else return 12492; else if (West == West::None) return 12496; else if (West == West::Low) return 12497; else return 12498; else if (South == South::Low) if (Up) if (West == West::None) return 12502; else if (West == West::Low) return 12503; else return 12504; else if (West == West::None) return 12508; else if (West == West::Low) return 12509; else return 12510; else if (Up) if (West == West::None) return 12514; else if (West == West::Low) return 12515; else return 12516; else if (West == West::None) return 12520; else if (West == West::Low) return 12521; else return 12522; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 12526; else if (West == West::Low) return 12527; else return 12528; else if (West == West::None) return 12532; else if (West == West::Low) return 12533; else return 12534; else if (South == South::Low) if (Up) if (West == West::None) return 12538; else if (West == West::Low) return 12539; else return 12540; else if (West == West::None) return 12544; else if (West == West::Low) return 12545; else return 12546; else if (Up) if (West == West::None) return 12550; else if (West == West::Low) return 12551; else return 12552; else if (West == West::None) return 12556; else if (West == West::Low) return 12557; else return 12558; else if (South == South::None) if (Up) if (West == West::None) return 12562; else if (West == West::Low) return 12563; else return 12564; else if (West == West::None) return 12568; else if (West == West::Low) return 12569; else return 12570; else if (South == South::Low) if (Up) if (West == West::None) return 12574; else if (West == West::Low) return 12575; else return 12576; else if (West == West::None) return 12580; else if (West == West::Low) return 12581; else return 12582; else if (Up) if (West == West::None) return 12586; else if (West == West::Low) return 12587; else return 12588; else if (West == West::None) return 12592; else if (West == West::Low) return 12593; else return 12594; else if (East == East::Low) if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 12598; else if (West == West::Low) return 12599; else return 12600; else if (West == West::None) return 12604; else if (West == West::Low) return 12605; else return 12606; else if (South == South::Low) if (Up) if (West == West::None) return 12610; else if (West == West::Low) return 12611; else return 12612; else if (West == West::None) return 12616; else if (West == West::Low) return 12617; else return 12618; else if (Up) if (West == West::None) return 12622; else if (West == West::Low) return 12623; else return 12624; else if (West == West::None) return 12628; else if (West == West::Low) return 12629; else return 12630; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 12634; else if (West == West::Low) return 12635; else return 12636; else if (West == West::None) return 12640; else if (West == West::Low) return 12641; else return 12642; else if (South == South::Low) if (Up) if (West == West::None) return 12646; else if (West == West::Low) return 12647; else return 12648; else if (West == West::None) return 12652; else if (West == West::Low) return 12653; else return 12654; else if (Up) if (West == West::None) return 12658; else if (West == West::Low) return 12659; else return 12660; else if (West == West::None) return 12664; else if (West == West::Low) return 12665; else return 12666; else if (South == South::None) if (Up) if (West == West::None) return 12670; else if (West == West::Low) return 12671; else return 12672; else if (West == West::None) return 12676; else if (West == West::Low) return 12677; else return 12678; else if (South == South::Low) if (Up) if (West == West::None) return 12682; else if (West == West::Low) return 12683; else return 12684; else if (West == West::None) return 12688; else if (West == West::Low) return 12689; else return 12690; else if (Up) if (West == West::None) return 12694; else if (West == West::Low) return 12695; else return 12696; else if (West == West::None) return 12700; else if (West == West::Low) return 12701; else return 12702; else if (North == North::None) if (South == South::None) if (Up) if (West == West::None) return 12706; else if (West == West::Low) return 12707; else return 12708; else if (West == West::None) return 12712; else if (West == West::Low) return 12713; else return 12714; else if (South == South::Low) if (Up) if (West == West::None) return 12718; else if (West == West::Low) return 12719; else return 12720; else if (West == West::None) return 12724; else if (West == West::Low) return 12725; else return 12726; else if (Up) if (West == West::None) return 12730; else if (West == West::Low) return 12731; else return 12732; else if (West == West::None) return 12736; else if (West == West::Low) return 12737; else return 12738; else if (North == North::Low) if (South == South::None) if (Up) if (West == West::None) return 12742; else if (West == West::Low) return 12743; else return 12744; else if (West == West::None) return 12748; else if (West == West::Low) return 12749; else return 12750; else if (South == South::Low) if (Up) if (West == West::None) return 12754; else if (West == West::Low) return 12755; else return 12756; else if (West == West::None) return 12760; else if (West == West::Low) return 12761; else return 12762; else if (Up) if (West == West::None) return 12766; else if (West == West::Low) return 12767; else return 12768; else if (West == West::None) return 12772; else if (West == West::Low) return 12773; else return 12774; else if (South == South::None) if (Up) if (West == West::None) return 12778; else if (West == West::Low) return 12779; else return 12780; else if (West == West::None) return 12784; else if (West == West::Low) return 12785; else return 12786; else if (South == South::Low) if (Up) if (West == West::None) return 12790; else if (West == West::Low) return 12791; else return 12792; else if (West == West::None) return 12796; else if (West == West::Low) return 12797; else return 12798; else if (Up) if (West == West::None) return 12802; else if (West == West::Low) return 12803; else return 12804; else if (West == West::None) return 12808; else if (West == West::Low) return 12809; else return 12810; } BlockState StoneBrickWall(); enum East East(BlockState Block); enum North North(BlockState Block); enum South South(BlockState Block); bool Up(BlockState Block); enum West West(BlockState Block); } namespace StoneBricks { constexpr BlockState StoneBricks() { return 4495; } } namespace StoneButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState StoneButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 3897; else return 3898; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 3899; else return 3900; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 3901; else return 3902; else if (Powered) return 3903; else return 3904; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 3905; else return 3906; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 3907; else return 3908; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 3909; else return 3910; else if (Powered) return 3911; else return 3912; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 3913; else return 3914; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 3915; else return 3916; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 3917; else return 3918; else if (Powered) return 3919; else return 3920; } BlockState StoneButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace StonePressurePlate { constexpr BlockState StonePressurePlate(const bool Powered) { if (Powered) return 3807; else return 3808; } BlockState StonePressurePlate(); bool Powered(BlockState Block); } namespace StoneSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState StoneSlab(const enum Type Type) { if (Type == Type::Top) return 8337; else if (Type == Type::Bottom) return 8339; else return 8341; } BlockState StoneSlab(); enum Type Type(BlockState Block); } namespace StoneStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState StoneStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10150; else if (Shape == Shape::InnerLeft) return 10152; else if (Shape == Shape::InnerRight) return 10154; else if (Shape == Shape::OuterLeft) return 10156; else return 10158; else if (Shape == Shape::Straight) return 10160; else if (Shape == Shape::InnerLeft) return 10162; else if (Shape == Shape::InnerRight) return 10164; else if (Shape == Shape::OuterLeft) return 10166; else return 10168; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 10170; else if (Shape == Shape::InnerLeft) return 10172; else if (Shape == Shape::InnerRight) return 10174; else if (Shape == Shape::OuterLeft) return 10176; else return 10178; else if (Shape == Shape::Straight) return 10180; else if (Shape == Shape::InnerLeft) return 10182; else if (Shape == Shape::InnerRight) return 10184; else if (Shape == Shape::OuterLeft) return 10186; else return 10188; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 10190; else if (Shape == Shape::InnerLeft) return 10192; else if (Shape == Shape::InnerRight) return 10194; else if (Shape == Shape::OuterLeft) return 10196; else return 10198; else if (Shape == Shape::Straight) return 10200; else if (Shape == Shape::InnerLeft) return 10202; else if (Shape == Shape::InnerRight) return 10204; else if (Shape == Shape::OuterLeft) return 10206; else return 10208; else if (Half == Half::Top) if (Shape == Shape::Straight) return 10210; else if (Shape == Shape::InnerLeft) return 10212; else if (Shape == Shape::InnerRight) return 10214; else if (Shape == Shape::OuterLeft) return 10216; else return 10218; else if (Shape == Shape::Straight) return 10220; else if (Shape == Shape::InnerLeft) return 10222; else if (Shape == Shape::InnerRight) return 10224; else if (Shape == Shape::OuterLeft) return 10226; else return 10228; } BlockState StoneStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace Stonecutter { constexpr BlockState Stonecutter(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 14850; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 14851; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 14852; else return 14853; } BlockState Stonecutter(); eBlockFace Facing(BlockState Block); } namespace StrippedAcaciaLog { enum class Axis { X, Y, Z }; constexpr BlockState StrippedAcaciaLog(const enum Axis Axis) { if (Axis == Axis::X) return 100; else if (Axis == Axis::Y) return 101; else return 102; } BlockState StrippedAcaciaLog(); enum Axis Axis(BlockState Block); } namespace StrippedAcaciaWood { enum class Axis { X, Y, Z }; constexpr BlockState StrippedAcaciaWood(const enum Axis Axis) { if (Axis == Axis::X) return 139; else if (Axis == Axis::Y) return 140; else return 141; } BlockState StrippedAcaciaWood(); enum Axis Axis(BlockState Block); } namespace StrippedBirchLog { enum class Axis { X, Y, Z }; constexpr BlockState StrippedBirchLog(const enum Axis Axis) { if (Axis == Axis::X) return 94; else if (Axis == Axis::Y) return 95; else return 96; } BlockState StrippedBirchLog(); enum Axis Axis(BlockState Block); } namespace StrippedBirchWood { enum class Axis { X, Y, Z }; constexpr BlockState StrippedBirchWood(const enum Axis Axis) { if (Axis == Axis::X) return 133; else if (Axis == Axis::Y) return 134; else return 135; } BlockState StrippedBirchWood(); enum Axis Axis(BlockState Block); } namespace StrippedCrimsonHyphae { enum class Axis { X, Y, Z }; constexpr BlockState StrippedCrimsonHyphae(const enum Axis Axis) { if (Axis == Axis::X) return 14984; else if (Axis == Axis::Y) return 14985; else return 14986; } BlockState StrippedCrimsonHyphae(); enum Axis Axis(BlockState Block); } namespace StrippedCrimsonStem { enum class Axis { X, Y, Z }; constexpr BlockState StrippedCrimsonStem(const enum Axis Axis) { if (Axis == Axis::X) return 14978; else if (Axis == Axis::Y) return 14979; else return 14980; } BlockState StrippedCrimsonStem(); enum Axis Axis(BlockState Block); } namespace StrippedDarkOakLog { enum class Axis { X, Y, Z }; constexpr BlockState StrippedDarkOakLog(const enum Axis Axis) { if (Axis == Axis::X) return 103; else if (Axis == Axis::Y) return 104; else return 105; } BlockState StrippedDarkOakLog(); enum Axis Axis(BlockState Block); } namespace StrippedDarkOakWood { enum class Axis { X, Y, Z }; constexpr BlockState StrippedDarkOakWood(const enum Axis Axis) { if (Axis == Axis::X) return 142; else if (Axis == Axis::Y) return 143; else return 144; } BlockState StrippedDarkOakWood(); enum Axis Axis(BlockState Block); } namespace StrippedJungleLog { enum class Axis { X, Y, Z }; constexpr BlockState StrippedJungleLog(const enum Axis Axis) { if (Axis == Axis::X) return 97; else if (Axis == Axis::Y) return 98; else return 99; } BlockState StrippedJungleLog(); enum Axis Axis(BlockState Block); } namespace StrippedJungleWood { enum class Axis { X, Y, Z }; constexpr BlockState StrippedJungleWood(const enum Axis Axis) { if (Axis == Axis::X) return 136; else if (Axis == Axis::Y) return 137; else return 138; } BlockState StrippedJungleWood(); enum Axis Axis(BlockState Block); } namespace StrippedOakLog { enum class Axis { X, Y, Z }; constexpr BlockState StrippedOakLog(const enum Axis Axis) { if (Axis == Axis::X) return 106; else if (Axis == Axis::Y) return 107; else return 108; } BlockState StrippedOakLog(); enum Axis Axis(BlockState Block); } namespace StrippedOakWood { enum class Axis { X, Y, Z }; constexpr BlockState StrippedOakWood(const enum Axis Axis) { if (Axis == Axis::X) return 127; else if (Axis == Axis::Y) return 128; else return 129; } BlockState StrippedOakWood(); enum Axis Axis(BlockState Block); } namespace StrippedSpruceLog { enum class Axis { X, Y, Z }; constexpr BlockState StrippedSpruceLog(const enum Axis Axis) { if (Axis == Axis::X) return 91; else if (Axis == Axis::Y) return 92; else return 93; } BlockState StrippedSpruceLog(); enum Axis Axis(BlockState Block); } namespace StrippedSpruceWood { enum class Axis { X, Y, Z }; constexpr BlockState StrippedSpruceWood(const enum Axis Axis) { if (Axis == Axis::X) return 130; else if (Axis == Axis::Y) return 131; else return 132; } BlockState StrippedSpruceWood(); enum Axis Axis(BlockState Block); } namespace StrippedWarpedHyphae { enum class Axis { X, Y, Z }; constexpr BlockState StrippedWarpedHyphae(const enum Axis Axis) { if (Axis == Axis::X) return 14967; else if (Axis == Axis::Y) return 14968; else return 14969; } BlockState StrippedWarpedHyphae(); enum Axis Axis(BlockState Block); } namespace StrippedWarpedStem { enum class Axis { X, Y, Z }; constexpr BlockState StrippedWarpedStem(const enum Axis Axis) { if (Axis == Axis::X) return 14961; else if (Axis == Axis::Y) return 14962; else return 14963; } BlockState StrippedWarpedStem(); enum Axis Axis(BlockState Block); } namespace StructureBlock { enum class Mode { Save, Load, Corner, Data }; constexpr BlockState StructureBlock(const enum Mode Mode) { if (Mode == Mode::Save) return 15735; else if (Mode == Mode::Load) return 15736; else if (Mode == Mode::Corner) return 15737; else return 15738; } BlockState StructureBlock(); enum Mode Mode(BlockState Block); } namespace StructureVoid { constexpr BlockState StructureVoid() { return 9259; } } namespace SugarCane { constexpr BlockState SugarCane(const unsigned char Age) { if (Age == 0) return 3948; else if (Age == 1) return 3949; else if (Age == 2) return 3950; else if (Age == 3) return 3951; else if (Age == 4) return 3952; else if (Age == 5) return 3953; else if (Age == 6) return 3954; else if (Age == 7) return 3955; else if (Age == 8) return 3956; else if (Age == 9) return 3957; else if (Age == 10) return 3958; else if (Age == 11) return 3959; else if (Age == 12) return 3960; else if (Age == 13) return 3961; else if (Age == 14) return 3962; else return 3963; } BlockState SugarCane(); unsigned char Age(BlockState Block); } namespace Sunflower { enum class Half { Upper, Lower }; constexpr BlockState Sunflower(const enum Half Half) { if (Half == Half::Upper) return 7885; else return 7886; } BlockState Sunflower(); enum Half Half(BlockState Block); } namespace SweetBerryBush { constexpr BlockState SweetBerryBush(const unsigned char Age) { if (Age == 0) return 14954; else if (Age == 1) return 14955; else if (Age == 2) return 14956; else return 14957; } BlockState SweetBerryBush(); unsigned char Age(BlockState Block); } namespace TNT { constexpr BlockState TNT(const bool Unstable) { if (Unstable) return 1430; else return 1431; } BlockState TNT(); bool Unstable(BlockState Block); } namespace TallGrass { enum class Half { Upper, Lower }; constexpr BlockState TallGrass(const enum Half Half) { if (Half == Half::Upper) return 7893; else return 7894; } BlockState TallGrass(); enum Half Half(BlockState Block); } namespace TallSeagrass { enum class Half { Upper, Lower }; constexpr BlockState TallSeagrass(const enum Half Half) { if (Half == Half::Upper) return 1346; else return 1347; } BlockState TallSeagrass(); enum Half Half(BlockState Block); } namespace Target { constexpr BlockState Target(const unsigned char Power) { if (Power == 0) return 15760; else if (Power == 1) return 15761; else if (Power == 2) return 15762; else if (Power == 3) return 15763; else if (Power == 4) return 15764; else if (Power == 5) return 15765; else if (Power == 6) return 15766; else if (Power == 7) return 15767; else if (Power == 8) return 15768; else if (Power == 9) return 15769; else if (Power == 10) return 15770; else if (Power == 11) return 15771; else if (Power == 12) return 15772; else if (Power == 13) return 15773; else if (Power == 14) return 15774; else return 15775; } BlockState Target(); unsigned char Power(BlockState Block); } namespace Terracotta { constexpr BlockState Terracotta() { return 7882; } } namespace Torch { constexpr BlockState Torch() { return 1435; } } namespace TrappedChest { enum class Type { Single, Left, Right }; constexpr BlockState TrappedChest(const eBlockFace Facing, const enum Type Type) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Type == Type::Single) return 6623; else if (Type == Type::Left) return 6625; else return 6627; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Type == Type::Single) return 6629; else if (Type == Type::Left) return 6631; else return 6633; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Type == Type::Single) return 6635; else if (Type == Type::Left) return 6637; else return 6639; else if (Type == Type::Single) return 6641; else if (Type == Type::Left) return 6643; else return 6645; } BlockState TrappedChest(); eBlockFace Facing(BlockState Block); enum Type Type(BlockState Block); } namespace Tripwire { constexpr BlockState Tripwire(const bool Attached, const bool Disarmed, const bool East, const bool North, const bool Powered, const bool South, const bool West) { if (Attached) if (Disarmed) if (East) if (North) if (Powered) if (South) if (West) return 5275; else return 5276; else if (West) return 5277; else return 5278; else if (South) if (West) return 5279; else return 5280; else if (West) return 5281; else return 5282; else if (Powered) if (South) if (West) return 5283; else return 5284; else if (West) return 5285; else return 5286; else if (South) if (West) return 5287; else return 5288; else if (West) return 5289; else return 5290; else if (North) if (Powered) if (South) if (West) return 5291; else return 5292; else if (West) return 5293; else return 5294; else if (South) if (West) return 5295; else return 5296; else if (West) return 5297; else return 5298; else if (Powered) if (South) if (West) return 5299; else return 5300; else if (West) return 5301; else return 5302; else if (South) if (West) return 5303; else return 5304; else if (West) return 5305; else return 5306; else if (East) if (North) if (Powered) if (South) if (West) return 5307; else return 5308; else if (West) return 5309; else return 5310; else if (South) if (West) return 5311; else return 5312; else if (West) return 5313; else return 5314; else if (Powered) if (South) if (West) return 5315; else return 5316; else if (West) return 5317; else return 5318; else if (South) if (West) return 5319; else return 5320; else if (West) return 5321; else return 5322; else if (North) if (Powered) if (South) if (West) return 5323; else return 5324; else if (West) return 5325; else return 5326; else if (South) if (West) return 5327; else return 5328; else if (West) return 5329; else return 5330; else if (Powered) if (South) if (West) return 5331; else return 5332; else if (West) return 5333; else return 5334; else if (South) if (West) return 5335; else return 5336; else if (West) return 5337; else return 5338; else if (Disarmed) if (East) if (North) if (Powered) if (South) if (West) return 5339; else return 5340; else if (West) return 5341; else return 5342; else if (South) if (West) return 5343; else return 5344; else if (West) return 5345; else return 5346; else if (Powered) if (South) if (West) return 5347; else return 5348; else if (West) return 5349; else return 5350; else if (South) if (West) return 5351; else return 5352; else if (West) return 5353; else return 5354; else if (North) if (Powered) if (South) if (West) return 5355; else return 5356; else if (West) return 5357; else return 5358; else if (South) if (West) return 5359; else return 5360; else if (West) return 5361; else return 5362; else if (Powered) if (South) if (West) return 5363; else return 5364; else if (West) return 5365; else return 5366; else if (South) if (West) return 5367; else return 5368; else if (West) return 5369; else return 5370; else if (East) if (North) if (Powered) if (South) if (West) return 5371; else return 5372; else if (West) return 5373; else return 5374; else if (South) if (West) return 5375; else return 5376; else if (West) return 5377; else return 5378; else if (Powered) if (South) if (West) return 5379; else return 5380; else if (West) return 5381; else return 5382; else if (South) if (West) return 5383; else return 5384; else if (West) return 5385; else return 5386; else if (North) if (Powered) if (South) if (West) return 5387; else return 5388; else if (West) return 5389; else return 5390; else if (South) if (West) return 5391; else return 5392; else if (West) return 5393; else return 5394; else if (Powered) if (South) if (West) return 5395; else return 5396; else if (West) return 5397; else return 5398; else if (South) if (West) return 5399; else return 5400; else if (West) return 5401; else return 5402; } BlockState Tripwire(); bool Attached(BlockState Block); bool Disarmed(BlockState Block); bool East(BlockState Block); bool North(BlockState Block); bool Powered(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace TripwireHook { constexpr BlockState TripwireHook(const bool Attached, const eBlockFace Facing, const bool Powered) { if (Attached) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 5259; else return 5260; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 5261; else return 5262; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 5263; else return 5264; else if (Powered) return 5265; else return 5266; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 5267; else return 5268; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 5269; else return 5270; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 5271; else return 5272; else if (Powered) return 5273; else return 5274; } BlockState TripwireHook(); bool Attached(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace TubeCoral { constexpr BlockState TubeCoral() { return 9531; } } namespace TubeCoralBlock { constexpr BlockState TubeCoralBlock() { return 9515; } } namespace TubeCoralFan { constexpr BlockState TubeCoralFan() { return 9551; } } namespace TubeCoralWallFan { constexpr BlockState TubeCoralWallFan(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9601; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9603; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9605; else return 9607; } BlockState TubeCoralWallFan(); eBlockFace Facing(BlockState Block); } namespace TurtleEgg { constexpr BlockState TurtleEgg(const unsigned char Eggs, const unsigned char Hatch) { if (Eggs == 1) if (Hatch == 0) return 9498; else if (Hatch == 1) return 9499; else return 9500; else if (Eggs == 2) if (Hatch == 0) return 9501; else if (Hatch == 1) return 9502; else return 9503; else if (Eggs == 3) if (Hatch == 0) return 9504; else if (Hatch == 1) return 9505; else return 9506; else if (Hatch == 0) return 9507; else if (Hatch == 1) return 9508; else return 9509; } BlockState TurtleEgg(); unsigned char Eggs(BlockState Block); unsigned char Hatch(BlockState Block); } namespace TwistingVines { constexpr BlockState TwistingVines(const unsigned char Age) { if (Age == 0) return 15017; else if (Age == 1) return 15018; else if (Age == 2) return 15019; else if (Age == 3) return 15020; else if (Age == 4) return 15021; else if (Age == 5) return 15022; else if (Age == 6) return 15023; else if (Age == 7) return 15024; else if (Age == 8) return 15025; else if (Age == 9) return 15026; else if (Age == 10) return 15027; else if (Age == 11) return 15028; else if (Age == 12) return 15029; else if (Age == 13) return 15030; else if (Age == 14) return 15031; else if (Age == 15) return 15032; else if (Age == 16) return 15033; else if (Age == 17) return 15034; else if (Age == 18) return 15035; else if (Age == 19) return 15036; else if (Age == 20) return 15037; else if (Age == 21) return 15038; else if (Age == 22) return 15039; else if (Age == 23) return 15040; else if (Age == 24) return 15041; else return 15042; } BlockState TwistingVines(); unsigned char Age(BlockState Block); } namespace TwistingVinesPlant { constexpr BlockState TwistingVinesPlant() { return 15043; } } namespace Vine { constexpr BlockState Vine(const bool East, const bool North, const bool South, const bool Up, const bool West) { if (East) if (North) if (South) if (Up) if (West) return 4788; else return 4789; else if (West) return 4790; else return 4791; else if (Up) if (West) return 4792; else return 4793; else if (West) return 4794; else return 4795; else if (South) if (Up) if (West) return 4796; else return 4797; else if (West) return 4798; else return 4799; else if (Up) if (West) return 4800; else return 4801; else if (West) return 4802; else return 4803; else if (North) if (South) if (Up) if (West) return 4804; else return 4805; else if (West) return 4806; else return 4807; else if (Up) if (West) return 4808; else return 4809; else if (West) return 4810; else return 4811; else if (South) if (Up) if (West) return 4812; else return 4813; else if (West) return 4814; else return 4815; else if (Up) if (West) return 4816; else return 4817; else if (West) return 4818; else return 4819; } BlockState Vine(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool Up(BlockState Block); bool West(BlockState Block); } namespace VoidAir { constexpr BlockState VoidAir() { return 9665; } } namespace WallTorch { constexpr BlockState WallTorch(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 1436; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 1437; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 1438; else return 1439; } BlockState WallTorch(); eBlockFace Facing(BlockState Block); } namespace WarpedButton { enum class Face { Floor, Wall, Ceiling }; constexpr BlockState WarpedButton(const enum Face Face, const eBlockFace Facing, const bool Powered) { if (Face == Face::Floor) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 15503; else return 15504; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 15505; else return 15506; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 15507; else return 15508; else if (Powered) return 15509; else return 15510; else if (Face == Face::Wall) if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 15511; else return 15512; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 15513; else return 15514; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 15515; else return 15516; else if (Powered) return 15517; else return 15518; else if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Powered) return 15519; else return 15520; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Powered) return 15521; else return 15522; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Powered) return 15523; else return 15524; else if (Powered) return 15525; else return 15526; } BlockState WarpedButton(); enum Face Face(BlockState Block); eBlockFace Facing(BlockState Block); bool Powered(BlockState Block); } namespace WarpedDoor { enum class Half { Upper, Lower }; enum class Hinge { Left, Right }; constexpr BlockState WarpedDoor(const eBlockFace Facing, const enum Half Half, const enum Hinge Hinge, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 15591; else return 15592; else if (Powered) return 15593; else return 15594; else if (Open) if (Powered) return 15595; else return 15596; else if (Powered) return 15597; else return 15598; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 15599; else return 15600; else if (Powered) return 15601; else return 15602; else if (Open) if (Powered) return 15603; else return 15604; else if (Powered) return 15605; else return 15606; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 15607; else return 15608; else if (Powered) return 15609; else return 15610; else if (Open) if (Powered) return 15611; else return 15612; else if (Powered) return 15613; else return 15614; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 15615; else return 15616; else if (Powered) return 15617; else return 15618; else if (Open) if (Powered) return 15619; else return 15620; else if (Powered) return 15621; else return 15622; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 15623; else return 15624; else if (Powered) return 15625; else return 15626; else if (Open) if (Powered) return 15627; else return 15628; else if (Powered) return 15629; else return 15630; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 15631; else return 15632; else if (Powered) return 15633; else return 15634; else if (Open) if (Powered) return 15635; else return 15636; else if (Powered) return 15637; else return 15638; else if (Half == Half::Upper) if (Hinge == Hinge::Left) if (Open) if (Powered) return 15639; else return 15640; else if (Powered) return 15641; else return 15642; else if (Open) if (Powered) return 15643; else return 15644; else if (Powered) return 15645; else return 15646; else if (Hinge == Hinge::Left) if (Open) if (Powered) return 15647; else return 15648; else if (Powered) return 15649; else return 15650; else if (Open) if (Powered) return 15651; else return 15652; else if (Powered) return 15653; else return 15654; } BlockState WarpedDoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Hinge Hinge(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace WarpedFence { constexpr BlockState WarpedFence(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 15097; else return 15098; else if (West) return 15101; else return 15102; else if (South) if (West) return 15105; else return 15106; else if (West) return 15109; else return 15110; else if (North) if (South) if (West) return 15113; else return 15114; else if (West) return 15117; else return 15118; else if (South) if (West) return 15121; else return 15122; else if (West) return 15125; else return 15126; } BlockState WarpedFence(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace WarpedFenceGate { constexpr BlockState WarpedFenceGate(const eBlockFace Facing, const bool InWall, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (InWall) if (Open) if (Powered) return 15287; else return 15288; else if (Powered) return 15289; else return 15290; else if (Open) if (Powered) return 15291; else return 15292; else if (Powered) return 15293; else return 15294; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (InWall) if (Open) if (Powered) return 15295; else return 15296; else if (Powered) return 15297; else return 15298; else if (Open) if (Powered) return 15299; else return 15300; else if (Powered) return 15301; else return 15302; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (InWall) if (Open) if (Powered) return 15303; else return 15304; else if (Powered) return 15305; else return 15306; else if (Open) if (Powered) return 15307; else return 15308; else if (Powered) return 15309; else return 15310; else if (InWall) if (Open) if (Powered) return 15311; else return 15312; else if (Powered) return 15313; else return 15314; else if (Open) if (Powered) return 15315; else return 15316; else if (Powered) return 15317; else return 15318; } BlockState WarpedFenceGate(); eBlockFace Facing(BlockState Block); bool InWall(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace WarpedFungus { constexpr BlockState WarpedFungus() { return 14971; } } namespace WarpedHyphae { enum class Axis { X, Y, Z }; constexpr BlockState WarpedHyphae(const enum Axis Axis) { if (Axis == Axis::X) return 14964; else if (Axis == Axis::Y) return 14965; else return 14966; } BlockState WarpedHyphae(); enum Axis Axis(BlockState Block); } namespace WarpedNylium { constexpr BlockState WarpedNylium() { return 14970; } } namespace WarpedPlanks { constexpr BlockState WarpedPlanks() { return 15046; } } namespace WarpedPressurePlate { constexpr BlockState WarpedPressurePlate(const bool Powered) { if (Powered) return 15061; else return 15062; } BlockState WarpedPressurePlate(); bool Powered(BlockState Block); } namespace WarpedRoots { constexpr BlockState WarpedRoots() { return 14973; } } namespace WarpedSign { constexpr BlockState WarpedSign(const unsigned char Rotation) { if (Rotation == 0) return 15688; else if (Rotation == 1) return 15690; else if (Rotation == 2) return 15692; else if (Rotation == 3) return 15694; else if (Rotation == 4) return 15696; else if (Rotation == 5) return 15698; else if (Rotation == 6) return 15700; else if (Rotation == 7) return 15702; else if (Rotation == 8) return 15704; else if (Rotation == 9) return 15706; else if (Rotation == 10) return 15708; else if (Rotation == 11) return 15710; else if (Rotation == 12) return 15712; else if (Rotation == 13) return 15714; else if (Rotation == 14) return 15716; else return 15718; } BlockState WarpedSign(); unsigned char Rotation(BlockState Block); } namespace WarpedSlab { enum class Type { Top, Bottom, Double }; constexpr BlockState WarpedSlab(const enum Type Type) { if (Type == Type::Top) return 15054; else if (Type == Type::Bottom) return 15056; else return 15058; } BlockState WarpedSlab(); enum Type Type(BlockState Block); } namespace WarpedStairs { enum class Half { Top, Bottom }; enum class Shape { Straight, InnerLeft, InnerRight, OuterLeft, OuterRight }; constexpr BlockState WarpedStairs(const eBlockFace Facing, const enum Half Half, const enum Shape Shape) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Shape == Shape::Straight) return 15400; else if (Shape == Shape::InnerLeft) return 15402; else if (Shape == Shape::InnerRight) return 15404; else if (Shape == Shape::OuterLeft) return 15406; else return 15408; else if (Shape == Shape::Straight) return 15410; else if (Shape == Shape::InnerLeft) return 15412; else if (Shape == Shape::InnerRight) return 15414; else if (Shape == Shape::OuterLeft) return 15416; else return 15418; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Shape == Shape::Straight) return 15420; else if (Shape == Shape::InnerLeft) return 15422; else if (Shape == Shape::InnerRight) return 15424; else if (Shape == Shape::OuterLeft) return 15426; else return 15428; else if (Shape == Shape::Straight) return 15430; else if (Shape == Shape::InnerLeft) return 15432; else if (Shape == Shape::InnerRight) return 15434; else if (Shape == Shape::OuterLeft) return 15436; else return 15438; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Shape == Shape::Straight) return 15440; else if (Shape == Shape::InnerLeft) return 15442; else if (Shape == Shape::InnerRight) return 15444; else if (Shape == Shape::OuterLeft) return 15446; else return 15448; else if (Shape == Shape::Straight) return 15450; else if (Shape == Shape::InnerLeft) return 15452; else if (Shape == Shape::InnerRight) return 15454; else if (Shape == Shape::OuterLeft) return 15456; else return 15458; else if (Half == Half::Top) if (Shape == Shape::Straight) return 15460; else if (Shape == Shape::InnerLeft) return 15462; else if (Shape == Shape::InnerRight) return 15464; else if (Shape == Shape::OuterLeft) return 15466; else return 15468; else if (Shape == Shape::Straight) return 15470; else if (Shape == Shape::InnerLeft) return 15472; else if (Shape == Shape::InnerRight) return 15474; else if (Shape == Shape::OuterLeft) return 15476; else return 15478; } BlockState WarpedStairs(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); enum Shape Shape(BlockState Block); } namespace WarpedStem { enum class Axis { X, Y, Z }; constexpr BlockState WarpedStem(const enum Axis Axis) { if (Axis == Axis::X) return 14958; else if (Axis == Axis::Y) return 14959; else return 14960; } BlockState WarpedStem(); enum Axis Axis(BlockState Block); } namespace WarpedTrapdoor { enum class Half { Top, Bottom }; constexpr BlockState WarpedTrapdoor(const eBlockFace Facing, const enum Half Half, const bool Open, const bool Powered) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Half == Half::Top) if (Open) if (Powered) return 15192; else return 15194; else if (Powered) return 15196; else return 15198; else if (Open) if (Powered) return 15200; else return 15202; else if (Powered) return 15204; else return 15206; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Half == Half::Top) if (Open) if (Powered) return 15208; else return 15210; else if (Powered) return 15212; else return 15214; else if (Open) if (Powered) return 15216; else return 15218; else if (Powered) return 15220; else return 15222; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Half == Half::Top) if (Open) if (Powered) return 15224; else return 15226; else if (Powered) return 15228; else return 15230; else if (Open) if (Powered) return 15232; else return 15234; else if (Powered) return 15236; else return 15238; else if (Half == Half::Top) if (Open) if (Powered) return 15240; else return 15242; else if (Powered) return 15244; else return 15246; else if (Open) if (Powered) return 15248; else return 15250; else if (Powered) return 15252; else return 15254; } BlockState WarpedTrapdoor(); eBlockFace Facing(BlockState Block); enum Half Half(BlockState Block); bool Open(BlockState Block); bool Powered(BlockState Block); } namespace WarpedWallSign { constexpr BlockState WarpedWallSign(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 15728; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 15730; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 15732; else return 15734; } BlockState WarpedWallSign(); eBlockFace Facing(BlockState Block); } namespace WarpedWartBlock { constexpr BlockState WarpedWartBlock() { return 14972; } } namespace Water { constexpr BlockState Water(const unsigned char Level) { if (Level == 0) return 34; else if (Level == 1) return 35; else if (Level == 2) return 36; else if (Level == 3) return 37; else if (Level == 4) return 38; else if (Level == 5) return 39; else if (Level == 6) return 40; else if (Level == 7) return 41; else if (Level == 8) return 42; else if (Level == 9) return 43; else if (Level == 10) return 44; else if (Level == 11) return 45; else if (Level == 12) return 46; else if (Level == 13) return 47; else if (Level == 14) return 48; else return 49; } BlockState Water(); unsigned char Level(BlockState Block); } namespace WeepingVines { constexpr BlockState WeepingVines(const unsigned char Age) { if (Age == 0) return 14990; else if (Age == 1) return 14991; else if (Age == 2) return 14992; else if (Age == 3) return 14993; else if (Age == 4) return 14994; else if (Age == 5) return 14995; else if (Age == 6) return 14996; else if (Age == 7) return 14997; else if (Age == 8) return 14998; else if (Age == 9) return 14999; else if (Age == 10) return 15000; else if (Age == 11) return 15001; else if (Age == 12) return 15002; else if (Age == 13) return 15003; else if (Age == 14) return 15004; else if (Age == 15) return 15005; else if (Age == 16) return 15006; else if (Age == 17) return 15007; else if (Age == 18) return 15008; else if (Age == 19) return 15009; else if (Age == 20) return 15010; else if (Age == 21) return 15011; else if (Age == 22) return 15012; else if (Age == 23) return 15013; else if (Age == 24) return 15014; else return 15015; } BlockState WeepingVines(); unsigned char Age(BlockState Block); } namespace WeepingVinesPlant { constexpr BlockState WeepingVinesPlant() { return 15016; } } namespace WetSponge { constexpr BlockState WetSponge() { return 230; } } namespace Wheat { constexpr BlockState Wheat(const unsigned char Age) { if (Age == 0) return 3357; else if (Age == 1) return 3358; else if (Age == 2) return 3359; else if (Age == 3) return 3360; else if (Age == 4) return 3361; else if (Age == 5) return 3362; else if (Age == 6) return 3363; else return 3364; } BlockState Wheat(); unsigned char Age(BlockState Block); } namespace WhiteBanner { constexpr BlockState WhiteBanner(const unsigned char Rotation) { if (Rotation == 0) return 7897; else if (Rotation == 1) return 7898; else if (Rotation == 2) return 7899; else if (Rotation == 3) return 7900; else if (Rotation == 4) return 7901; else if (Rotation == 5) return 7902; else if (Rotation == 6) return 7903; else if (Rotation == 7) return 7904; else if (Rotation == 8) return 7905; else if (Rotation == 9) return 7906; else if (Rotation == 10) return 7907; else if (Rotation == 11) return 7908; else if (Rotation == 12) return 7909; else if (Rotation == 13) return 7910; else if (Rotation == 14) return 7911; else return 7912; } BlockState WhiteBanner(); unsigned char Rotation(BlockState Block); } namespace WhiteBed { enum class Part { Head, Foot }; constexpr BlockState WhiteBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1049; else return 1050; else if (Part == Part::Head) return 1051; else return 1052; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1053; else return 1054; else if (Part == Part::Head) return 1055; else return 1056; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1057; else return 1058; else if (Part == Part::Head) return 1059; else return 1060; else if (Occupied) if (Part == Part::Head) return 1061; else return 1062; else if (Part == Part::Head) return 1063; else return 1064; } BlockState WhiteBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace WhiteCarpet { constexpr BlockState WhiteCarpet() { return 7866; } } namespace WhiteConcrete { constexpr BlockState WhiteConcrete() { return 9438; } } namespace WhiteConcretePowder { constexpr BlockState WhiteConcretePowder() { return 9454; } } namespace WhiteGlazedTerracotta { constexpr BlockState WhiteGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9374; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9375; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9376; else return 9377; } BlockState WhiteGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace WhiteShulkerBox { constexpr BlockState WhiteShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9278; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9279; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9280; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9281; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9282; else return 9283; } BlockState WhiteShulkerBox(); eBlockFace Facing(BlockState Block); } namespace WhiteStainedGlass { constexpr BlockState WhiteStainedGlass() { return 4095; } } namespace WhiteStainedGlassPane { constexpr BlockState WhiteStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 6865; else return 6866; else if (West) return 6869; else return 6870; else if (South) if (West) return 6873; else return 6874; else if (West) return 6877; else return 6878; else if (North) if (South) if (West) return 6881; else return 6882; else if (West) return 6885; else return 6886; else if (South) if (West) return 6889; else return 6890; else if (West) return 6893; else return 6894; } BlockState WhiteStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace WhiteTerracotta { constexpr BlockState WhiteTerracotta() { return 6847; } } namespace WhiteTulip { constexpr BlockState WhiteTulip() { return 1419; } } namespace WhiteWallBanner { constexpr BlockState WhiteWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8153; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8154; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8155; else return 8156; } BlockState WhiteWallBanner(); eBlockFace Facing(BlockState Block); } namespace WhiteWool { constexpr BlockState WhiteWool() { return 1384; } } namespace WitherRose { constexpr BlockState WitherRose() { return 1423; } } namespace WitherSkeletonSkull { constexpr BlockState WitherSkeletonSkull(const unsigned char Rotation) { if (Rotation == 0) return 6510; else if (Rotation == 1) return 6511; else if (Rotation == 2) return 6512; else if (Rotation == 3) return 6513; else if (Rotation == 4) return 6514; else if (Rotation == 5) return 6515; else if (Rotation == 6) return 6516; else if (Rotation == 7) return 6517; else if (Rotation == 8) return 6518; else if (Rotation == 9) return 6519; else if (Rotation == 10) return 6520; else if (Rotation == 11) return 6521; else if (Rotation == 12) return 6522; else if (Rotation == 13) return 6523; else if (Rotation == 14) return 6524; else return 6525; } BlockState WitherSkeletonSkull(); unsigned char Rotation(BlockState Block); } namespace WitherSkeletonWallSkull { constexpr BlockState WitherSkeletonWallSkull(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6526; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6527; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6528; else return 6529; } BlockState WitherSkeletonWallSkull(); eBlockFace Facing(BlockState Block); } namespace YellowBanner { constexpr BlockState YellowBanner(const unsigned char Rotation) { if (Rotation == 0) return 7961; else if (Rotation == 1) return 7962; else if (Rotation == 2) return 7963; else if (Rotation == 3) return 7964; else if (Rotation == 4) return 7965; else if (Rotation == 5) return 7966; else if (Rotation == 6) return 7967; else if (Rotation == 7) return 7968; else if (Rotation == 8) return 7969; else if (Rotation == 9) return 7970; else if (Rotation == 10) return 7971; else if (Rotation == 11) return 7972; else if (Rotation == 12) return 7973; else if (Rotation == 13) return 7974; else if (Rotation == 14) return 7975; else return 7976; } BlockState YellowBanner(); unsigned char Rotation(BlockState Block); } namespace YellowBed { enum class Part { Head, Foot }; constexpr BlockState YellowBed(const eBlockFace Facing, const bool Occupied, const enum Part Part) { if (Facing == eBlockFace::BLOCK_FACE_ZM) if (Occupied) if (Part == Part::Head) return 1113; else return 1114; else if (Part == Part::Head) return 1115; else return 1116; else if (Facing == eBlockFace::BLOCK_FACE_ZP) if (Occupied) if (Part == Part::Head) return 1117; else return 1118; else if (Part == Part::Head) return 1119; else return 1120; else if (Facing == eBlockFace::BLOCK_FACE_XM) if (Occupied) if (Part == Part::Head) return 1121; else return 1122; else if (Part == Part::Head) return 1123; else return 1124; else if (Occupied) if (Part == Part::Head) return 1125; else return 1126; else if (Part == Part::Head) return 1127; else return 1128; } BlockState YellowBed(); eBlockFace Facing(BlockState Block); bool Occupied(BlockState Block); enum Part Part(BlockState Block); } namespace YellowCarpet { constexpr BlockState YellowCarpet() { return 7870; } } namespace YellowConcrete { constexpr BlockState YellowConcrete() { return 9442; } } namespace YellowConcretePowder { constexpr BlockState YellowConcretePowder() { return 9458; } } namespace YellowGlazedTerracotta { constexpr BlockState YellowGlazedTerracotta(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9390; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9391; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9392; else return 9393; } BlockState YellowGlazedTerracotta(); eBlockFace Facing(BlockState Block); } namespace YellowShulkerBox { constexpr BlockState YellowShulkerBox(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 9302; else if (Facing == eBlockFace::BLOCK_FACE_XP) return 9303; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 9304; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 9305; else if (Facing == eBlockFace::BLOCK_FACE_YP) return 9306; else return 9307; } BlockState YellowShulkerBox(); eBlockFace Facing(BlockState Block); } namespace YellowStainedGlass { constexpr BlockState YellowStainedGlass() { return 4099; } } namespace YellowStainedGlassPane { constexpr BlockState YellowStainedGlassPane(const bool East, const bool North, const bool South, const bool West) { if (East) if (North) if (South) if (West) return 6993; else return 6994; else if (West) return 6997; else return 6998; else if (South) if (West) return 7001; else return 7002; else if (West) return 7005; else return 7006; else if (North) if (South) if (West) return 7009; else return 7010; else if (West) return 7013; else return 7014; else if (South) if (West) return 7017; else return 7018; else if (West) return 7021; else return 7022; } BlockState YellowStainedGlassPane(); bool East(BlockState Block); bool North(BlockState Block); bool South(BlockState Block); bool West(BlockState Block); } namespace YellowTerracotta { constexpr BlockState YellowTerracotta() { return 6851; } } namespace YellowWallBanner { constexpr BlockState YellowWallBanner(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 8169; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 8170; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 8171; else return 8172; } BlockState YellowWallBanner(); eBlockFace Facing(BlockState Block); } namespace YellowWool { constexpr BlockState YellowWool() { return 1388; } } namespace ZombieHead { constexpr BlockState ZombieHead(const unsigned char Rotation) { if (Rotation == 0) return 6530; else if (Rotation == 1) return 6531; else if (Rotation == 2) return 6532; else if (Rotation == 3) return 6533; else if (Rotation == 4) return 6534; else if (Rotation == 5) return 6535; else if (Rotation == 6) return 6536; else if (Rotation == 7) return 6537; else if (Rotation == 8) return 6538; else if (Rotation == 9) return 6539; else if (Rotation == 10) return 6540; else if (Rotation == 11) return 6541; else if (Rotation == 12) return 6542; else if (Rotation == 13) return 6543; else if (Rotation == 14) return 6544; else return 6545; } BlockState ZombieHead(); unsigned char Rotation(BlockState Block); } namespace ZombieWallHead { constexpr BlockState ZombieWallHead(const eBlockFace Facing) { if (Facing == eBlockFace::BLOCK_FACE_ZM) return 6546; else if (Facing == eBlockFace::BLOCK_FACE_ZP) return 6547; else if (Facing == eBlockFace::BLOCK_FACE_XM) return 6548; else return 6549; } BlockState ZombieWallHead(); eBlockFace Facing(BlockState Block); } }