1
0
cuberite-2a/src/BlockType.h
Mattes D 01b8ed5295
Pulled the BlockID and BlockInfo headers from Globals.h. (#4591)
The BlockID.h file was removed from Globals.h and renamed to BlockType.h (main change)
The BlockInfo.h file was removed from Globals.h (main change)
The ENUM_BLOCK_ID and ENUM_ITEM_ID enum names were replaced with ENUM_BLOCK_TYPE and ENUM_ITEM_TYPE (cosmetics)
The various enums, such as eDimension, eDamageType and eExplosionSource were moved from BlockType.h to Defines.h, together with the helper functions for converting between them and strings (StringToDimension et al.) (minor)
Many inline functions were moved from headers to their respective cpp files, so that BlockType.h could be included only into the cpp file, rather than the header.
That broke our tests a bit, since they pick bits and pieces out of the main code and provide stubs for the rest; they had to be re-stubbed and re-verified.
eMonsterType values are no longer tied to E_ITEM_SPAWN_EGG_META_* values
2020-04-03 08:57:01 +02:00

1189 lines
36 KiB
C++

#pragma once
// tolua_begin
enum ENUM_BLOCK_TYPE : BLOCKTYPE
{
E_BLOCK_AIR = 0,
E_BLOCK_STONE = 1,
E_BLOCK_GRASS = 2,
E_BLOCK_DIRT = 3,
E_BLOCK_COBBLESTONE = 4,
E_BLOCK_PLANKS = 5,
E_BLOCK_SAPLING = 6,
E_BLOCK_BEDROCK = 7,
E_BLOCK_WATER = 8,
E_BLOCK_STATIONARY_WATER = 9,
E_BLOCK_LAVA = 10,
E_BLOCK_STATIONARY_LAVA = 11,
E_BLOCK_SAND = 12,
E_BLOCK_GRAVEL = 13,
E_BLOCK_GOLD_ORE = 14,
E_BLOCK_IRON_ORE = 15,
E_BLOCK_COAL_ORE = 16,
E_BLOCK_LOG = 17,
E_BLOCK_LEAVES = 18,
E_BLOCK_SPONGE = 19,
E_BLOCK_GLASS = 20,
E_BLOCK_LAPIS_ORE = 21,
E_BLOCK_LAPIS_BLOCK = 22,
E_BLOCK_DISPENSER = 23,
E_BLOCK_SANDSTONE = 24,
E_BLOCK_NOTE_BLOCK = 25,
E_BLOCK_BED = 26,
E_BLOCK_POWERED_RAIL = 27,
E_BLOCK_DETECTOR_RAIL = 28,
E_BLOCK_STICKY_PISTON = 29,
E_BLOCK_COBWEB = 30,
E_BLOCK_TALL_GRASS = 31,
E_BLOCK_DEAD_BUSH = 32,
E_BLOCK_PISTON = 33,
E_BLOCK_PISTON_EXTENSION = 34,
E_BLOCK_WOOL = 35,
E_BLOCK_PISTON_MOVED_BLOCK = 36,
E_BLOCK_DANDELION = 37,
E_BLOCK_FLOWER = 38,
E_BLOCK_BROWN_MUSHROOM = 39,
E_BLOCK_RED_MUSHROOM = 40,
E_BLOCK_GOLD_BLOCK = 41,
E_BLOCK_IRON_BLOCK = 42,
E_BLOCK_DOUBLE_STONE_SLAB = 43,
E_BLOCK_STONE_SLAB = 44,
E_BLOCK_BRICK = 45,
E_BLOCK_TNT = 46,
E_BLOCK_BOOKCASE = 47,
E_BLOCK_MOSSY_COBBLESTONE = 48,
E_BLOCK_OBSIDIAN = 49,
E_BLOCK_TORCH = 50,
E_BLOCK_FIRE = 51,
E_BLOCK_MOB_SPAWNER = 52,
E_BLOCK_OAK_WOOD_STAIRS = 53,
E_BLOCK_CHEST = 54,
E_BLOCK_REDSTONE_WIRE = 55,
E_BLOCK_DIAMOND_ORE = 56,
E_BLOCK_DIAMOND_BLOCK = 57,
E_BLOCK_CRAFTING_TABLE = 58,
E_BLOCK_WORKBENCH = 58,
E_BLOCK_WHEAT = 59,
E_BLOCK_CROPS = E_BLOCK_WHEAT,
E_BLOCK_FARMLAND = 60,
E_BLOCK_FURNACE = 61,
E_BLOCK_LIT_FURNACE = 62,
E_BLOCK_BURNING_FURNACE = 62,
E_BLOCK_SIGN_POST = 63,
E_BLOCK_OAK_DOOR = 64,
E_BLOCK_LADDER = 65,
E_BLOCK_RAIL = 66,
E_BLOCK_MINECART_TRACKS = 66,
E_BLOCK_COBBLESTONE_STAIRS = 67,
E_BLOCK_WALLSIGN = 68,
E_BLOCK_LEVER = 69,
E_BLOCK_STONE_PRESSURE_PLATE = 70,
E_BLOCK_IRON_DOOR = 71,
E_BLOCK_WOODEN_PRESSURE_PLATE = 72,
E_BLOCK_REDSTONE_ORE = 73,
E_BLOCK_REDSTONE_ORE_GLOWING = 74,
E_BLOCK_REDSTONE_TORCH_OFF = 75,
E_BLOCK_REDSTONE_TORCH_ON = 76,
E_BLOCK_STONE_BUTTON = 77,
E_BLOCK_SNOW = 78,
E_BLOCK_ICE = 79,
E_BLOCK_SNOW_BLOCK = 80,
E_BLOCK_CACTUS = 81,
E_BLOCK_CLAY = 82,
E_BLOCK_SUGARCANE = 83,
E_BLOCK_REEDS = 83,
E_BLOCK_JUKEBOX = 84,
E_BLOCK_FENCE = 85,
E_BLOCK_PUMPKIN = 86,
E_BLOCK_NETHERRACK = 87,
E_BLOCK_SOULSAND = 88,
E_BLOCK_GLOWSTONE = 89,
E_BLOCK_NETHER_PORTAL = 90,
E_BLOCK_JACK_O_LANTERN = 91,
E_BLOCK_CAKE = 92,
E_BLOCK_REDSTONE_REPEATER_OFF = 93,
E_BLOCK_REDSTONE_REPEATER_ON = 94,
E_BLOCK_STAINED_GLASS = 95,
E_BLOCK_TRAPDOOR = 96,
E_BLOCK_SILVERFISH_EGG = 97,
E_BLOCK_STONE_BRICKS = 98,
E_BLOCK_HUGE_BROWN_MUSHROOM = 99,
E_BLOCK_HUGE_RED_MUSHROOM = 100,
E_BLOCK_IRON_BARS = 101,
E_BLOCK_GLASS_PANE = 102,
E_BLOCK_MELON = 103,
E_BLOCK_PUMPKIN_STEM = 104,
E_BLOCK_MELON_STEM = 105,
E_BLOCK_VINES = 106,
E_BLOCK_OAK_FENCE_GATE = 107,
E_BLOCK_BRICK_STAIRS = 108,
E_BLOCK_STONE_BRICK_STAIRS = 109,
E_BLOCK_MYCELIUM = 110,
E_BLOCK_LILY_PAD = 111,
E_BLOCK_NETHER_BRICK = 112,
E_BLOCK_NETHER_BRICK_FENCE = 113,
E_BLOCK_NETHER_BRICK_STAIRS = 114,
E_BLOCK_NETHER_WART = 115,
E_BLOCK_ENCHANTMENT_TABLE = 116,
E_BLOCK_BREWING_STAND = 117,
E_BLOCK_CAULDRON = 118,
E_BLOCK_END_PORTAL = 119,
E_BLOCK_END_PORTAL_FRAME = 120,
E_BLOCK_END_STONE = 121,
E_BLOCK_DRAGON_EGG = 122,
E_BLOCK_REDSTONE_LAMP_OFF = 123,
E_BLOCK_REDSTONE_LAMP_ON = 124,
E_BLOCK_DOUBLE_WOODEN_SLAB = 125,
E_BLOCK_WOODEN_SLAB = 126,
E_BLOCK_COCOA_POD = 127,
E_BLOCK_SANDSTONE_STAIRS = 128,
E_BLOCK_EMERALD_ORE = 129,
E_BLOCK_ENDER_CHEST = 130,
E_BLOCK_TRIPWIRE_HOOK = 131,
E_BLOCK_TRIPWIRE = 132,
E_BLOCK_EMERALD_BLOCK = 133,
E_BLOCK_SPRUCE_WOOD_STAIRS = 134,
E_BLOCK_BIRCH_WOOD_STAIRS = 135,
E_BLOCK_JUNGLE_WOOD_STAIRS = 136,
E_BLOCK_COMMAND_BLOCK = 137,
E_BLOCK_BEACON = 138,
E_BLOCK_COBBLESTONE_WALL = 139,
E_BLOCK_FLOWER_POT = 140,
E_BLOCK_CARROTS = 141,
E_BLOCK_POTATOES = 142,
E_BLOCK_WOODEN_BUTTON = 143,
E_BLOCK_HEAD = 144,
E_BLOCK_ANVIL = 145,
E_BLOCK_TRAPPED_CHEST = 146,
E_BLOCK_LIGHT_WEIGHTED_PRESSURE_PLATE = 147,
E_BLOCK_HEAVY_WEIGHTED_PRESSURE_PLATE = 148,
E_BLOCK_INACTIVE_COMPARATOR = 149,
E_BLOCK_ACTIVE_COMPARATOR = 150,
E_BLOCK_DAYLIGHT_SENSOR = 151,
E_BLOCK_BLOCK_OF_REDSTONE = 152,
E_BLOCK_NETHER_QUARTZ_ORE = 153,
E_BLOCK_HOPPER = 154,
E_BLOCK_QUARTZ_BLOCK = 155,
E_BLOCK_QUARTZ_STAIRS = 156,
E_BLOCK_ACTIVATOR_RAIL = 157,
E_BLOCK_DROPPER = 158,
E_BLOCK_STAINED_CLAY = 159, // Synonym to terracotta
E_BLOCK_TERRACOTTA = 159, // Synonym to stained clay
E_BLOCK_STAINED_GLASS_PANE = 160,
E_BLOCK_NEW_LEAVES = 161, // Acacia and Dark Oak IDs in Minecraft 1.7.x
E_BLOCK_NEW_LOG = 162,
E_BLOCK_ACACIA_WOOD_STAIRS = 163,
E_BLOCK_DARK_OAK_WOOD_STAIRS = 164,
E_BLOCK_SLIME_BLOCK = 165,
E_BLOCK_BARRIER = 166,
E_BLOCK_IRON_TRAPDOOR = 167,
E_BLOCK_PRISMARINE_BLOCK = 168,
E_BLOCK_SEA_LANTERN = 169,
E_BLOCK_HAY_BALE = 170,
E_BLOCK_CARPET = 171,
E_BLOCK_HARDENED_CLAY = 172,
E_BLOCK_BLOCK_OF_COAL = 173,
E_BLOCK_PACKED_ICE = 174,
E_BLOCK_BIG_FLOWER = 175,
E_BLOCK_STANDING_BANNER = 176,
E_BLOCK_WALL_BANNER = 177,
E_BLOCK_INVERTED_DAYLIGHT_SENSOR = 178,
E_BLOCK_RED_SANDSTONE = 179,
E_BLOCK_RED_SANDSTONE_STAIRS = 180,
E_BLOCK_DOUBLE_RED_SANDSTONE_SLAB = 181,
E_BLOCK_RED_SANDSTONE_SLAB = 182,
E_BLOCK_SPRUCE_FENCE_GATE = 183,
E_BLOCK_BIRCH_FENCE_GATE = 184,
E_BLOCK_JUNGLE_FENCE_GATE = 185,
E_BLOCK_DARK_OAK_FENCE_GATE = 186,
E_BLOCK_ACACIA_FENCE_GATE = 187,
E_BLOCK_SPRUCE_FENCE = 188,
E_BLOCK_BIRCH_FENCE = 189,
E_BLOCK_JUNGLE_FENCE = 190,
E_BLOCK_DARK_OAK_FENCE = 191,
E_BLOCK_ACACIA_FENCE = 192,
E_BLOCK_SPRUCE_DOOR = 193,
E_BLOCK_BIRCH_DOOR = 194,
E_BLOCK_JUNGLE_DOOR = 195,
E_BLOCK_ACACIA_DOOR = 196,
E_BLOCK_DARK_OAK_DOOR = 197,
E_BLOCK_END_ROD = 198,
E_BLOCK_CHORUS_PLANT = 199,
E_BLOCK_CHORUS_FLOWER = 200,
E_BLOCK_PURPUR_BLOCK = 201,
E_BLOCK_PURPUR_PILLAR = 202,
E_BLOCK_PURPUR_STAIRS = 203,
E_BLOCK_PURPUR_DOUBLE_SLAB = 204,
E_BLOCK_PURPUR_SLAB = 205,
E_BLOCK_END_BRICKS = 206,
E_BLOCK_BEETROOTS = 207,
E_BLOCK_GRASS_PATH = 208,
E_BLOCK_END_GATEWAY = 209,
E_BLOCK_REPEATING_COMMAND_BLOCK = 210,
E_BLOCK_CHAIN_COMMAND_BLOCK = 211,
E_BLOCK_FROSTED_ICE = 212,
E_BLOCK_MAGMA = 213,
E_BLOCK_NETHER_WART_BLOCK = 214,
E_BLOCK_RED_NETHER_BRICK = 215,
E_BLOCK_BONE_BLOCK = 216,
E_BLOCK_STRUCTURE_VOID = 217,
E_BLOCK_OBSERVER = 218,
E_BLOCK_WHITE_SHULKER_BOX = 219,
E_BLOCK_ORANGE_SHULKER_BOX = 220,
E_BLOCK_MAGENTA_SHULKER_BOX = 221,
E_BLOCK_LIGHT_BLUE_SHULKER_BOX = 222,
E_BLOCK_YELLOW_SHULKER_BOX = 223,
E_BLOCK_LIME_SHULKER_BOX = 224,
E_BLOCK_PINK_SHULKER_BOX = 225,
E_BLOCK_GRAY_SHULKER_BOX = 226,
E_BLOCK_LIGHT_GRAY_SHULKER_BOX = 227,
E_BLOCK_CYAN_SHULKER_BOX = 228,
E_BLOCK_PURPLE_SHULKER_BOX = 229,
E_BLOCK_BLUE_SHULKER_BOX = 230,
E_BLOCK_BROWN_SHULKER_BOX = 231,
E_BLOCK_GREEN_SHULKER_BOX = 232,
E_BLOCK_RED_SHULKER_BOX = 233,
E_BLOCK_BLACK_SHULKER_BOX = 234,
E_BLOCK_WHITE_GLAZED_TERRACOTTA = 235,
E_BLOCK_ORANGE_GLAZED_TERRACOTTA = 236,
E_BLOCK_MAGENTA_GLAZED_TERRACOTTA = 237,
E_BLOCK_LIGHT_BLUE_GLAZED_TERRACOTTA = 238,
E_BLOCK_YELLOW_GLAZED_TERRACOTTA = 239,
E_BLOCK_LIME_GLAZED_TERRACOTTA = 240,
E_BLOCK_PINK_GLAZED_TERRACOTTA = 241,
E_BLOCK_GRAY_GLAZED_TERRACOTTA = 242,
E_BLOCK_LIGHT_GRAY_GLAZED_TERRACOTTA = 243,
E_BLOCK_CYAN_GLAZED_TERRACOTTA = 244,
E_BLOCK_PURPLE_GLAZED_TERRACOTTA = 245,
E_BLOCK_BLUE_GLAZED_TERRACOTTA = 246,
E_BLOCK_BROWN_GLAZED_TERRACOTTA = 247,
E_BLOCK_GREEN_GLAZED_TERRACOTTA = 248,
E_BLOCK_RED_GLAZED_TERRACOTTA = 249,
E_BLOCK_BLACK_GLAZED_TERRACOTTA = 250,
E_BLOCK_CONCRETE = 251,
E_BLOCK_CONCRETE_POWDER = 252,
// ...
E_BLOCK_STRUCTURE_BLOCK = 255,
// Keep these two as the last values. Update the last block value to the last block with an id less than 255 when adding another block
// IsValidBlock() depends on this (255 gets checked additionally because there is a gap. See https://minecraft.gamepedia.com/Data_values#Block_IDs
E_BLOCK_NUMBER_OF_TYPES = E_BLOCK_CONCRETE_POWDER + 1, ///< Number of individual (different) blocktypes
E_BLOCK_MAX_TYPE_ID = E_BLOCK_NUMBER_OF_TYPES - 1, ///< Maximum BlockType number used
E_BLOCK_UNFINISHED = 254, // Special type used as a placeholder, signifying that the block lacks implementation
// Synonym or ID compatibility
E_BLOCK_YELLOW_FLOWER = E_BLOCK_DANDELION,
E_BLOCK_RED_ROSE = E_BLOCK_FLOWER,
E_BLOCK_WOODEN_DOOR = E_BLOCK_OAK_DOOR,
E_BLOCK_FENCE_GATE = E_BLOCK_OAK_FENCE_GATE,
E_BLOCK_WOODEN_STAIRS = E_BLOCK_OAK_WOOD_STAIRS,
};
enum ENUM_ITEM_TYPE : short
{
E_ITEM_EMPTY = -1,
E_ITEM_FIRST = 256, // First true item type
E_ITEM_IRON_SHOVEL = 256,
E_ITEM_IRON_PICKAXE = 257,
E_ITEM_IRON_AXE = 258,
E_ITEM_FLINT_AND_STEEL = 259,
E_ITEM_RED_APPLE = 260,
E_ITEM_BOW = 261,
E_ITEM_ARROW = 262,
E_ITEM_COAL = 263,
E_ITEM_DIAMOND = 264,
E_ITEM_IRON = 265,
E_ITEM_GOLD = 266,
E_ITEM_IRON_SWORD = 267,
E_ITEM_WOODEN_SWORD = 268,
E_ITEM_WOODEN_SHOVEL = 269,
E_ITEM_WOODEN_PICKAXE = 270,
E_ITEM_WOODEN_AXE = 271,
E_ITEM_STONE_SWORD = 272,
E_ITEM_STONE_SHOVEL = 273,
E_ITEM_STONE_PICKAXE = 274,
E_ITEM_STONE_AXE = 275,
E_ITEM_DIAMOND_SWORD = 276,
E_ITEM_DIAMOND_SHOVEL = 277,
E_ITEM_DIAMOND_PICKAXE = 278,
E_ITEM_DIAMOND_AXE = 279,
E_ITEM_STICK = 280,
E_ITEM_BOWL = 281,
E_ITEM_MUSHROOM_SOUP = 282,
E_ITEM_GOLD_SWORD = 283,
E_ITEM_GOLD_SHOVEL = 284,
E_ITEM_GOLD_PICKAXE = 285,
E_ITEM_GOLD_AXE = 286,
E_ITEM_STRING = 287,
E_ITEM_FEATHER = 288,
E_ITEM_GUNPOWDER = 289,
E_ITEM_WOODEN_HOE = 290,
E_ITEM_STONE_HOE = 291,
E_ITEM_IRON_HOE = 292,
E_ITEM_DIAMOND_HOE = 293,
E_ITEM_GOLD_HOE = 294,
E_ITEM_SEEDS = 295,
E_ITEM_WHEAT = 296,
E_ITEM_BREAD = 297,
E_ITEM_LEATHER_CAP = 298,
E_ITEM_LEATHER_TUNIC = 299,
E_ITEM_LEATHER_PANTS = 300,
E_ITEM_LEATHER_BOOTS = 301,
E_ITEM_CHAIN_HELMET = 302,
E_ITEM_CHAIN_CHESTPLATE = 303,
E_ITEM_CHAIN_LEGGINGS = 304,
E_ITEM_CHAIN_BOOTS = 305,
E_ITEM_IRON_HELMET = 306,
E_ITEM_IRON_CHESTPLATE = 307,
E_ITEM_IRON_LEGGINGS = 308,
E_ITEM_IRON_BOOTS = 309,
E_ITEM_DIAMOND_HELMET = 310,
E_ITEM_DIAMOND_CHESTPLATE = 311,
E_ITEM_DIAMOND_LEGGINGS = 312,
E_ITEM_DIAMOND_BOOTS = 313,
E_ITEM_GOLD_HELMET = 314,
E_ITEM_GOLD_CHESTPLATE = 315,
E_ITEM_GOLD_LEGGINGS = 316,
E_ITEM_GOLD_BOOTS = 317,
E_ITEM_FLINT = 318,
E_ITEM_RAW_PORKCHOP = 319,
E_ITEM_COOKED_PORKCHOP = 320,
E_ITEM_PAINTING = 321,
E_ITEM_GOLDEN_APPLE = 322,
E_ITEM_SIGN = 323,
E_ITEM_WOODEN_DOOR = 324,
E_ITEM_BUCKET = 325,
E_ITEM_WATER_BUCKET = 326,
E_ITEM_LAVA_BUCKET = 327,
E_ITEM_MINECART = 328,
E_ITEM_SADDLE = 329,
E_ITEM_IRON_DOOR = 330,
E_ITEM_REDSTONE_DUST = 331,
E_ITEM_SNOWBALL = 332,
E_ITEM_BOAT = 333,
E_ITEM_LEATHER = 334,
E_ITEM_MILK = 335,
E_ITEM_CLAY_BRICK = 336,
E_ITEM_CLAY = 337,
E_ITEM_SUGARCANE = 338,
E_ITEM_SUGAR_CANE = 338,
E_ITEM_PAPER = 339,
E_ITEM_BOOK = 340,
E_ITEM_SLIMEBALL = 341,
E_ITEM_CHEST_MINECART = 342,
E_ITEM_FURNACE_MINECART = 343,
E_ITEM_EGG = 344,
E_ITEM_COMPASS = 345,
E_ITEM_FISHING_ROD = 346,
E_ITEM_CLOCK = 347,
E_ITEM_GLOWSTONE_DUST = 348,
E_ITEM_RAW_FISH = 349,
E_ITEM_COOKED_FISH = 350,
E_ITEM_DYE = 351,
E_ITEM_BONE = 352,
E_ITEM_SUGAR = 353,
E_ITEM_CAKE = 354,
E_ITEM_BED = 355,
E_ITEM_REDSTONE_REPEATER = 356,
E_ITEM_COOKIE = 357,
E_ITEM_MAP = 358,
E_ITEM_SHEARS = 359,
E_ITEM_MELON_SLICE = 360,
E_ITEM_PUMPKIN_SEEDS = 361,
E_ITEM_MELON_SEEDS = 362,
E_ITEM_RAW_BEEF = 363,
E_ITEM_STEAK = 364,
E_ITEM_RAW_CHICKEN = 365,
E_ITEM_COOKED_CHICKEN = 366,
E_ITEM_ROTTEN_FLESH = 367,
E_ITEM_ENDER_PEARL = 368,
E_ITEM_BLAZE_ROD = 369,
E_ITEM_GHAST_TEAR = 370,
E_ITEM_GOLD_NUGGET = 371,
E_ITEM_NETHER_WART = 372,
E_ITEM_POTION = 373,
E_ITEM_POTIONS = 373, // OBSOLETE, use E_ITEM_POTION instead
E_ITEM_GLASS_BOTTLE = 374,
E_ITEM_SPIDER_EYE = 375,
E_ITEM_FERMENTED_SPIDER_EYE = 376,
E_ITEM_BLAZE_POWDER = 377,
E_ITEM_MAGMA_CREAM = 378,
E_ITEM_BREWING_STAND = 379,
E_ITEM_CAULDRON = 380,
E_ITEM_EYE_OF_ENDER = 381,
E_ITEM_GLISTERING_MELON = 382,
E_ITEM_SPAWN_EGG = 383,
E_ITEM_BOTTLE_O_ENCHANTING = 384,
E_ITEM_FIRE_CHARGE = 385,
E_ITEM_BOOK_AND_QUILL = 386,
E_ITEM_WRITTEN_BOOK = 387,
E_ITEM_EMERALD = 388,
E_ITEM_ITEM_FRAME = 389,
E_ITEM_FLOWER_POT = 390,
E_ITEM_CARROT = 391,
E_ITEM_POTATO = 392,
E_ITEM_BAKED_POTATO = 393,
E_ITEM_POISONOUS_POTATO = 394,
E_ITEM_EMPTY_MAP = 395,
E_ITEM_GOLDEN_CARROT = 396,
E_ITEM_HEAD = 397,
E_ITEM_CARROT_ON_STICK = 398,
E_ITEM_NETHER_STAR = 399,
E_ITEM_PUMPKIN_PIE = 400,
E_ITEM_FIREWORK_ROCKET = 401,
E_ITEM_FIREWORK_STAR = 402,
E_ITEM_ENCHANTED_BOOK = 403,
E_ITEM_COMPARATOR = 404,
E_ITEM_NETHER_BRICK = 405,
E_ITEM_NETHER_QUARTZ = 406,
E_ITEM_MINECART_WITH_TNT = 407,
E_ITEM_MINECART_WITH_HOPPER = 408,
E_ITEM_PRISMARINE_SHARD = 409,
E_ITEM_PRISMARINE_CRYSTALS = 410,
E_ITEM_RAW_RABBIT = 411,
E_ITEM_COOKED_RABBIT = 412,
E_ITEM_RABBIT_STEW = 413,
E_ITEM_RABBITS_FOOT = 414,
E_ITEM_RABBIT_HIDE = 415,
E_ITEM_ARMOR_STAND = 416,
E_ITEM_IRON_HORSE_ARMOR = 417,
E_ITEM_GOLD_HORSE_ARMOR = 418,
E_ITEM_DIAMOND_HORSE_ARMOR = 419,
E_ITEM_LEAD = 420,
E_ITEM_LEASH = E_ITEM_LEAD,
E_ITEM_NAME_TAG = 421,
E_ITEM_MINECART_WITH_COMMAND_BLOCK = 422,
E_ITEM_RAW_MUTTON = 423,
E_ITEM_COOKED_MUTTON = 424,
E_ITEM_BANNER = 425,
E_ITEM_END_CRYSTAL = 426,
E_ITEM_SPRUCE_DOOR = 427,
E_ITEM_BIRCH_DOOR = 428,
E_ITEM_JUNGLE_DOOR = 429,
E_ITEM_ACACIA_DOOR = 430,
E_ITEM_DARK_OAK_DOOR = 431,
E_ITEM_CHORUS_FRUIT = 432,
E_ITEM_POPPED_CHORUS_FRUIT = 433,
E_ITEM_BEETROOT = 434,
E_ITEM_BEETROOT_SEEDS = 435,
E_ITEM_BEETROOT_SOUP = 436,
E_ITEM_DRAGON_BREATH = 437,
E_ITEM_SPLASH_POTION = 438,
E_ITEM_SPECTRAL_ARROW = 439,
E_ITEM_TIPPED_ARROW = 440,
E_ITEM_LINGERING_POTION = 441,
E_ITEM_SHIELD = 442,
E_ITEM_ELYTRA = 443,
E_ITEM_SPRUCE_BOAT = 444,
E_ITEM_BIRCH_BOAT = 445,
E_ITEM_JUNGLE_BOAT = 446,
E_ITEM_ACACIA_BOAT = 447,
E_ITEM_DARK_OAK_BOAT = 448,
E_ITEM_TOTEM_OF_UNDYING = 449,
E_ITEM_SHULKER_SHELL = 450,
E_ITEM_IRON_NUGGET = 452,
// Keep these two as the last values of the consecutive list, without a number - they will get their correct number assigned automagically by C++
// IsValidItem() depends on this!
E_ITEM_NUMBER_OF_CONSECUTIVE_TYPES, ///< Number of individual (different) consecutive itemtypes
E_ITEM_MAX_CONSECUTIVE_TYPE_ID = E_ITEM_NUMBER_OF_CONSECUTIVE_TYPES - 1, ///< Maximum consecutive ItemType number used
E_ITEM_FIRST_DISC = 2256,
E_ITEM_13_DISC = 2256,
E_ITEM_CAT_DISC = 2257,
E_ITEM_BLOCKS_DISC = 2258,
E_ITEM_CHIRP_DISC = 2259,
E_ITEM_FAR_DISC = 2260,
E_ITEM_MALL_DISC = 2261,
E_ITEM_MELLOHI_DISC = 2262,
E_ITEM_STAL_DISC = 2263,
E_ITEM_STRAD_DISC = 2264,
E_ITEM_WARD_DISC = 2265,
E_ITEM_11_DISC = 2266,
E_ITEM_WAIT_DISC = 2267,
// Keep these two as the last values of the disc list, without a number - they will get their correct number assigned automagically by C++
// IsValidItem() depends on this!
E_ITEM_LAST_DISC_PLUS_ONE, ///< Useless, really, but needs to be present for the following value
E_ITEM_LAST_DISC = E_ITEM_LAST_DISC_PLUS_ONE - 1, ///< Maximum disc itemtype number used
E_ITEM_LAST = E_ITEM_LAST_DISC, ///< Maximum valid ItemType
};
enum ENUM_BLOCK_META : NIBBLETYPE
{
// Please keep this list alpha-sorted by the blocktype part
// then number-sorted for the same block
////////////////////////////////////////////////////////////////////////////////
// Block metas:
// E_BLOCK_ANVIL metas
E_BLOCK_ANVIL_Z = 0,
E_BLOCK_ANVIL_X = 1,
E_BLOCK_ANVIL_NO_DAMAGE = 0,
E_BLOCK_ANVIL_LOW_DAMAGE = 4,
E_BLOCK_ANVIL_HIGH_DAMAGE = 8,
// E_BLOCK_BED metas:
E_BLOCK_BED_ZP = 0,
E_BLOCK_BED_XM = 1,
E_BLOCK_BED_ZM = 2,
E_BLOCK_BED_XP = 3,
E_BLOCK_BED_OCCUPIED = 4,
E_BLOCK_BED_BED_HEAD = 8,
// E_BLOCK_BIG_FLOWER metas:
E_META_BIG_FLOWER_SUNFLOWER = 0,
E_META_BIG_FLOWER_LILAC = 1,
E_META_BIG_FLOWER_DOUBLE_TALL_GRASS = 2,
E_META_BIG_FLOWER_LARGE_FERN = 3,
E_META_BIG_FLOWER_ROSE_BUSH = 4,
E_META_BIG_FLOWER_PEONY = 5,
// 0x8 is supposedly a bit flag but all vanilla plants have this value
E_META_BIG_FLOWER_TOP = 10,
// E_BLOCK_BREWING_STAND metas
E_META_BREWING_STAND_FILLED_SLOT_XP = 1,
E_META_BREWING_STAND_FILLED_SLOT_XM_ZP = 2,
E_META_BREWING_STAND_FILLED_SLOT_XM_ZM = 4,
// E_BLOCK_BUTTON metas
E_BLOCK_BUTTON_YM = 0,
E_BLOCK_BUTTON_XP = 1,
E_BLOCK_BUTTON_XM = 2,
E_BLOCK_BUTTON_ZP = 3,
E_BLOCK_BUTTON_ZM = 4,
E_BLOCK_BUTTON_YP = 5,
E_BLOCK_BUTTON_PRESSED = 8,
// E_BLOCK_CARPET metas:
E_META_CARPET_WHITE = 0,
E_META_CARPET_ORANGE = 1,
E_META_CARPET_MAGENTA = 2,
E_META_CARPET_LIGHTBLUE = 3,
E_META_CARPET_YELLOW = 4,
E_META_CARPET_LIGHTGREEN = 5,
E_META_CARPET_PINK = 6,
E_META_CARPET_GRAY = 7,
E_META_CARPET_LIGHTGRAY = 8,
E_META_CARPET_CYAN = 9,
E_META_CARPET_PURPLE = 10,
E_META_CARPET_BLUE = 11,
E_META_CARPET_BROWN = 12,
E_META_CARPET_GREEN = 13,
E_META_CARPET_RED = 14,
E_META_CARPET_BLACK = 15,
// E_BLOCK_CHEST metas:
E_META_CHEST_FACING_ZM = 2,
E_META_CHEST_FACING_ZP = 3,
E_META_CHEST_FACING_XM = 4,
E_META_CHEST_FACING_XP = 5,
// E_BLOCK_CONCRETE metas:
E_META_CONCRETE_WHITE = 0,
E_META_CONCRETE_ORANGE = 1,
E_META_CONCRETE_MAGENTA = 2,
E_META_CONCRETE_LIGHTBLUE = 3,
E_META_CONCRETE_YELLOW = 4,
E_META_CONCRETE_LIGHTGREEN = 5,
E_META_CONCRETE_PINK = 6,
E_META_CONCRETE_GRAY = 7,
E_META_CONCRETE_LIGHTGRAY = 8,
E_META_CONCRETE_CYAN = 9,
E_META_CONCRETE_PURPLE = 10,
E_META_CONCRETE_BLUE = 11,
E_META_CONCRETE_BROWN = 12,
E_META_CONCRETE_GREEN = 13,
E_META_CONCRETE_RED = 14,
E_META_CONCRETE_BLACK = 15,
// E_BLOCK_CONCRETE_POWDER metas:
E_META_CONCRETE_POWDER_WHITE = 0,
E_META_CONCRETE_POWDER_ORANGE = 1,
E_META_CONCRETE_POWDER_MAGENTA = 2,
E_META_CONCRETE_POWDER_LIGHTBLUE = 3,
E_META_CONCRETE_POWDER_YELLOW = 4,
E_META_CONCRETE_POWDER_LIGHTGREEN = 5,
E_META_CONCRETE_POWDER_PINK = 6,
E_META_CONCRETE_POWDER_GRAY = 7,
E_META_CONCRETE_POWDER_LIGHTGRAY = 8,
E_META_CONCRETE_POWDER_CYAN = 9,
E_META_CONCRETE_POWDER_PURPLE = 10,
E_META_CONCRETE_POWDER_BLUE = 11,
E_META_CONCRETE_POWDER_BROWN = 12,
E_META_CONCRETE_POWDER_GREEN = 13,
E_META_CONCRETE_POWDER_RED = 14,
E_META_CONCRETE_POWDER_BLACK = 15,
// E_BLOCK_DIRT metas:
E_META_DIRT_NORMAL = 0,
E_META_DIRT_GRASSLESS = 1,
E_META_DIRT_COARSE = 1,
E_META_DIRT_PODZOL = 2,
// E_BLOCK_DISPENSER / E_BLOCK_DROPPER metas:
E_META_DROPSPENSER_FACING_YM = 0,
E_META_DROPSPENSER_FACING_YP = 1,
E_META_DROPSPENSER_FACING_ZM = 2,
E_META_DROPSPENSER_FACING_ZP = 3,
E_META_DROPSPENSER_FACING_XM = 4,
E_META_DROPSPENSER_FACING_XP = 5,
E_META_DROPSPENSER_FACING_MASK = 7,
E_META_DROPSPENSER_ACTIVATED = 8,
// E_BLOCK_DOUBLE_STONE_SLAB metas:
E_META_DOUBLE_STONE_SLAB_STONE = 0,
E_META_DOUBLE_STONE_SLAB_SANDSTON = 1,
E_META_DOUBLE_STONE_SLAB_WOODEN = 2,
E_META_DOUBLE_STONE_SLAB_COBBLESTONE = 3,
E_META_DOUBLE_STONE_SLAB_BRICK = 4,
E_META_DOUBLE_STONE_SLAB_STONE_BRICK = 5,
E_META_DOUBLE_STONE_SLAB_NETHER_BRICK = 6,
E_META_DOUBLE_STONE_SLAB_QUARTZ = 7,
E_META_DOUBLE_STONE_SLAB_SMOOTH_STONE = 8,
E_META_DOUBLE_STONE_SLAB_SMOOTH_SANDSTONE = 9,
E_META_DOUBLE_STONE_SLAB_TILE_QUARTZ = 10,
// E_BLOCK_END_PORTAL_FRAME metas:
E_META_END_PORTAL_FRAME_ZP = 0, // Faces towards centre of portal
E_META_END_PORTAL_FRAME_XM = 1,
E_META_END_PORTAL_FRAME_ZM = 2,
E_META_END_PORTAL_FRAME_XP = 3,
E_META_END_PORTAL_FRAME_ZP_EYE = 4, // Frames with ender eye
E_META_END_PORTAL_FRAME_XM_EYE = 5,
E_META_END_PORTAL_FRAME_ZM_EYE = 6,
E_META_END_PORTAL_FRAME_XP_EYE = 7,
E_META_END_PORTAL_FRAME_NO_EYE = 0, // Just the eye bitflag
E_META_END_PORTAL_FRAME_EYE = 4,
// E_BLOCK_FLOWER metas:
E_META_FLOWER_POPPY = 0,
E_META_FLOWER_BLUE_ORCHID = 1,
E_META_FLOWER_ALLIUM = 2,
E_META_FLOWER_RED_TULIP = 4,
E_META_FLOWER_ORANGE_TULIP = 5,
E_META_FLOWER_WHITE_TULIP = 6,
E_META_FLOWER_PINK_TULIP = 7,
E_META_FLOWER_OXEYE_DAISY = 8,
// E_BLOCK_JUKEBOX metas:
E_META_JUKEBOX_OFF = 0,
E_META_JUKEBOX_ON = 1,
// E_BLOCK_HOPPER metas:
E_META_HOPPER_FACING_YM = 0,
E_META_HOPPER_UNATTACHED = 1, // Hopper doesn't move items up, there's no YP
E_META_HOPPER_FACING_ZM = 2,
E_META_HOPPER_FACING_ZP = 3,
E_META_HOPPER_FACING_XM = 4,
E_META_HOPPER_FACING_XP = 5,
// E_BLOCK_LEAVES metas:
E_META_LEAVES_APPLE = 0,
E_META_LEAVES_CONIFER = 1,
E_META_LEAVES_BIRCH = 2,
E_META_LEAVES_JUNGLE = 3,
E_META_LEAVES_APPLE_NO_DECAY = 4,
E_META_LEAVES_CONIFER_NO_DECAY = 5,
E_META_LEAVES_BIRCH_NO_DECAY = 6,
E_META_LEAVES_JUNGLE_NO_DECAY = 7,
E_META_LEAVES_APPLE_CHECK_DECAY = 8,
E_META_LEAVES_CONIFER_CHECK_DECAY = 9,
E_META_LEAVES_BIRCH_CHECK_DECAY = 10,
E_META_LEAVES_JUNGLE_CHECK_DECAY = 11,
// E_BLOCK_LEAVES meta cont. (Block ID 161):
E_META_NEWLEAVES_ACACIA = 0,
E_META_NEWLEAVES_DARK_OAK = 1,
E_META_NEWLEAVES_ACACIA_NO_DECAY = 4,
E_META_NEWLEAVES_DARK_OAK_NO_DECAY = 5,
E_META_NEWLEAVES_ACACIA_CHECK_DECAY = 8,
E_META_NEWLEAVES_DARK_OAK_CHECK_DECAY = 9,
// E_BLOCK_LOG metas:
E_META_LOG_APPLE = 0,
E_META_LOG_CONIFER = 1,
E_META_LOG_BIRCH = 2,
E_META_LOG_JUNGLE = 3,
// E_BLOCK_NEW_LOG metas:
E_META_NEW_LOG_ACACIA_WOOD = 0,
E_META_NEW_LOG_DARK_OAK_WOOD = 1,
// E_BLOCK_PISTON metas:
E_META_PISTON_DOWN = 0,
E_META_PISTON_U = 1,
E_META_PISTON_ZM = 2,
E_META_PISTON_ZP = 3,
E_META_PISTON_XM = 4,
E_META_PISTON_XP = 5,
E_META_PISTON_HEAD_STICKY = 8,
E_META_PISTON_EXTENDED = 8,
// E_BLOCK_PLANKS metas:
E_META_PLANKS_OAK = 0,
E_META_PLANKS_SPRUCE = 1,
E_META_PLANKS_BIRCH = 2,
E_META_PLANKS_JUNGLE = 3,
E_META_PLANKS_ACACIA = 4,
E_META_PLANKS_DARK_OAK = 5,
// E_BLOCK_(XXX_WEIGHTED)_PRESSURE_PLATE metas:
E_META_PRESSURE_PLATE_RAISED = 0,
E_META_PRESSURE_PLATE_DEPRESSED = 1,
// E_BLOCK_PRISMARINE_BLOCK metas:
E_META_PRISMARINE_BLOCK_ROUGH = 0,
E_META_PRISMARINE_BLOCK_BRICKS = 1,
E_META_PRISMARINE_BLOCK_DARK = 2,
// E_BLOCK_QUARTZ_BLOCK metas:
E_META_QUARTZ_NORMAL = 0,
E_META_QUARTZ_CHISELLED = 1,
E_META_QUARTZ_PILLAR = 2,
// E_BLOCK_RAIL metas
E_META_RAIL_ZM_ZP = 0,
E_META_RAIL_XM_XP = 1,
E_META_RAIL_ASCEND_XP = 2,
E_META_RAIL_ASCEND_XM = 3,
E_META_RAIL_ASCEND_ZM = 4,
E_META_RAIL_ASCEND_ZP = 5,
E_META_RAIL_CURVED_ZP_XP = 6,
E_META_RAIL_CURVED_ZP_XM = 7,
E_META_RAIL_CURVED_ZM_XM = 8,
E_META_RAIL_CURVED_ZM_XP = 9,
// E_BLOCK_RED_SANDSTONE metas:
E_META_RED_SANDSTONE_NORMAL = 0,
E_META_RED_SANDSTONE_ORNAMENT = 1,
E_META_RED_SANDSTONE_SMOOTH = 2,
// E_BLOCK_SAND metas:
E_META_SAND_NORMAL = 0,
E_META_SAND_RED = 1,
// E_BLOCK_SANDSTONE metas:
E_META_SANDSTONE_NORMAL = 0,
E_META_SANDSTONE_ORNAMENT = 1,
E_META_SANDSTONE_SMOOTH = 2,
// E_BLOCK_SAPLING metas (lowest 3 bits):
E_META_SAPLING_APPLE = 0,
E_META_SAPLING_CONIFER = 1,
E_META_SAPLING_BIRCH = 2,
E_META_SAPLING_JUNGLE = 3,
E_META_SAPLING_ACACIA = 4,
E_META_SAPLING_DARK_OAK = 5,
// E_BLOCK_SILVERFISH_EGG metas:
E_META_SILVERFISH_EGG_STONE = 0,
E_META_SILVERFISH_EGG_COBBLESTONE = 1,
E_META_SILVERFISH_EGG_STONE_BRICK = 2,
// E_BLOCK_SNOW metas:
E_META_SNOW_LAYER_ONE = 0,
E_META_SNOW_LAYER_TWO = 1,
E_META_SNOW_LAYER_THREE = 2,
E_META_SNOW_LAYER_FOUR = 3,
E_META_SNOW_LAYER_FIVE = 4,
E_META_SNOW_LAYER_SIX = 5,
E_META_SNOW_LAYER_SEVEN = 6,
E_META_SNOW_LAYER_EIGHT = 7,
// E_BLOCK_SPONGE metas:
E_META_SPONGE_DRY = 0,
E_META_SPONGE_WET = 1,
// E_BLOCK_STAINED_CLAY metas:
E_META_STAINED_CLAY_WHITE = 0,
E_META_STAINED_CLAY_ORANGE = 1,
E_META_STAINED_CLAY_MAGENTA = 2,
E_META_STAINED_CLAY_LIGHTBLUE = 3,
E_META_STAINED_CLAY_YELLOW = 4,
E_META_STAINED_CLAY_LIGHTGREEN = 5,
E_META_STAINED_CLAY_PINK = 6,
E_META_STAINED_CLAY_GRAY = 7,
E_META_STAINED_CLAY_LIGHTGRAY = 8,
E_META_STAINED_CLAY_CYAN = 9,
E_META_STAINED_CLAY_PURPLE = 10,
E_META_STAINED_CLAY_BLUE = 11,
E_META_STAINED_CLAY_BROWN = 12,
E_META_STAINED_CLAY_GREEN = 13,
E_META_STAINED_CLAY_RED = 14,
E_META_STAINED_CLAY_BLACK = 15,
// E_BLOCK_STAINED_GLASS metas:
E_META_STAINED_GLASS_WHITE = 0,
E_META_STAINED_GLASS_ORANGE = 1,
E_META_STAINED_GLASS_MAGENTA = 2,
E_META_STAINED_GLASS_LIGHTBLUE = 3,
E_META_STAINED_GLASS_YELLOW = 4,
E_META_STAINED_GLASS_LIGHTGREEN = 5,
E_META_STAINED_GLASS_PINK = 6,
E_META_STAINED_GLASS_GRAY = 7,
E_META_STAINED_GLASS_LIGHTGRAY = 8,
E_META_STAINED_GLASS_CYAN = 9,
E_META_STAINED_GLASS_PURPLE = 10,
E_META_STAINED_GLASS_BLUE = 11,
E_META_STAINED_GLASS_BROWN = 12,
E_META_STAINED_GLASS_GREEN = 13,
E_META_STAINED_GLASS_RED = 14,
E_META_STAINED_GLASS_BLACK = 15,
// E_BLOCK_STAINED_GLASS_PANE metas:
E_META_STAINED_GLASS_PANE_WHITE = 0,
E_META_STAINED_GLASS_PANE_ORANGE = 1,
E_META_STAINED_GLASS_PANE_MAGENTA = 2,
E_META_STAINED_GLASS_PANE_LIGHTBLUE = 3,
E_META_STAINED_GLASS_PANE_YELLOW = 4,
E_META_STAINED_GLASS_PANE_LIGHTGREEN = 5,
E_META_STAINED_GLASS_PANE_PINK = 6,
E_META_STAINED_GLASS_PANE_GRAY = 7,
E_META_STAINED_GLASS_PANE_LIGHTGRAY = 8,
E_META_STAINED_GLASS_PANE_CYAN = 9,
E_META_STAINED_GLASS_PANE_PURPLE = 10,
E_META_STAINED_GLASS_PANE_BLUE = 11,
E_META_STAINED_GLASS_PANE_BROWN = 12,
E_META_STAINED_GLASS_PANE_GREEN = 13,
E_META_STAINED_GLASS_PANE_RED = 14,
E_META_STAINED_GLASS_PANE_BLACK = 15,
// E_BLOCK_STAIRS metas:
E_BLOCK_STAIRS_XP = 0,
E_BLOCK_STAIRS_XM = 1,
E_BLOCK_STAIRS_ZP = 2,
E_BLOCK_STAIRS_ZM = 3,
E_BLOCK_STAIRS_UPSIDE_DOWN = 4,
// E_BLOCK_STONE metas:
E_META_STONE_STONE = 0,
E_META_STONE_GRANITE = 1,
E_META_STONE_POLISHED_GRANITE = 2,
E_META_STONE_DIORITE = 3,
E_META_STONE_POLISHED_DIORITE = 4,
E_META_STONE_ANDESITE = 5,
E_META_STONE_POLISHED_ANDESITE = 6,
// E_BLOCK_STONE_SLAB metas:
E_META_STONE_SLAB_STONE = 0,
E_META_STONE_SLAB_SANDSTONE = 1,
E_META_STONE_SLAB_PLANKS = 2,
E_META_STONE_SLAB_COBBLESTONE = 3,
E_META_STONE_SLAB_BRICK = 4,
E_META_STONE_SLAB_STONE_BRICK = 5,
E_META_STONE_SLAB_NETHER_BRICK = 6,
E_META_STONE_SLAB_QUARTZ = 7,
// E_BLOCK_STONE_BRICKS metas:
E_META_STONE_BRICK_NORMAL = 0,
E_META_STONE_BRICK_MOSSY = 1,
E_META_STONE_BRICK_CRACKED = 2,
E_META_STONE_BRICK_ORNAMENT = 3,
// E_BLOCK_TALL_GRASS metas:
E_META_TALL_GRASS_DEAD_SHRUB = 0,
E_META_TALL_GRASS_GRASS = 1,
E_META_TALL_GRASS_FERN = 2,
E_META_TALL_GRASS_BIOME = 3,
// E_BLOCK_TORCH, E_BLOCK_REDSTONE_TORCH_OFF, E_BLOCK_REDSTONE_TORCH_ON metas:
E_META_TORCH_EAST = 1, // east face of the block, pointing east
E_META_TORCH_WEST = 2,
E_META_TORCH_SOUTH = 3,
E_META_TORCH_NORTH = 4,
E_META_TORCH_FLOOR = 5,
E_META_TORCH_XM = 1, // Torch attached to the XM side of its block
E_META_TORCH_XP = 2, // Torch attached to the XP side of its block
E_META_TORCH_ZM = 3, // Torch attached to the ZM side of its block
E_META_TORCH_ZP = 4, // Torch attached to the ZP side of its block
// E_META_LOG metas:
E_META_LOG_OAK_UP_DOWN = 0,
E_META_LOG_SPRUCE_UP_DOWN = 1,
E_META_LOG_BIRCH_UP_DOWN = 2,
E_META_LOG_JUNGLE_UP_DOWN = 3,
E_META_LOG_OAK_X = 4,
E_META_LOG_SPRUCE_X = 5,
E_META_LOG_BIRCH_X = 6,
E_META_LOG_JUNGLE_X = 7,
E_META_LOG_OAK_Z = 8,
E_META_LOG_SPRUCE_Z = 9,
E_META_LOG_BIRCH_Z = 10,
E_META_LOG_JUNGLE_Z = 11,
E_META_LOG_OAK_BARK_ONLY = 12,
E_META_LOG_SPRUCE_BARK_ONLY = 13,
E_META_LOG_BIRCH_BARK_ONLY = 14,
E_META_LOG_JUNGLE_BARK_ONLY = 15,
// E_META_LOG metas cont. (Block ID 162):
E_META_NEWLOG_ACACIA_UP_DOWN = 0,
E_META_NEWLOG_DARK_OAK_UP_DOWN = 1,
E_META_NEWLOG_ACACIA_X = 4,
E_META_NEWLOG_DARK_OAK_X = 5,
E_META_NEWLOG_ACACIA_Z = 8,
E_META_NEWLOG_DARK_OAK_Z = 9,
E_META_NEWLOG_ACACIA_BARK_ONLY = 12,
E_META_NEWLOG_DARK_OAK_BARK_ONLY = 13,
// E_BLOCK_WOODEN_DOUBLE_SLAB metas:
E_META_WOODEN_DOUBLE_SLAB_OAK = 0,
E_META_WOODEN_DOUBLE_SLAB_SPRUCE = 1,
E_META_WOODEN_DOUBLE_SLAB_BIRCH = 2,
E_META_WOODEN_DOUBLE_SLAB_JUNGLE = 3,
E_META_WOODEN_DOUBLE_SLAB_ACACIA = 4,
E_META_WOODEN_DOUBLE_SLAB_DARK_OAK = 5,
// E_BLOCK_WOODEN_SLAB metas:
E_META_WOODEN_SLAB_OAK = 0,
E_META_WOODEN_SLAB_SPRUCE = 1,
E_META_WOODEN_SLAB_BIRCH = 2,
E_META_WOODEN_SLAB_JUNGLE = 3,
E_META_WOODEN_SLAB_ACACIA = 4,
E_META_WOODEN_SLAB_DARK_OAK = 5,
E_META_WOODEN_SLAB_UPSIDE_DOWN = 8,
// E_BLOCK_WOOL metas:
E_META_WOOL_WHITE = 0,
E_META_WOOL_ORANGE = 1,
E_META_WOOL_MAGENTA = 2,
E_META_WOOL_LIGHTBLUE = 3,
E_META_WOOL_YELLOW = 4,
E_META_WOOL_LIGHTGREEN = 5,
E_META_WOOL_PINK = 6,
E_META_WOOL_GRAY = 7,
E_META_WOOL_LIGHTGRAY = 8,
E_META_WOOL_CYAN = 9,
E_META_WOOL_PURPLE = 10,
E_META_WOOL_BLUE = 11,
E_META_WOOL_BROWN = 12,
E_META_WOOL_GREEN = 13,
E_META_WOOL_RED = 14,
E_META_WOOL_BLACK = 15,
};
enum ENUM_ITEM_META : short
{
// Please keep this list alpha-sorted by the itemtype part
// then number-sorted for the same item
////////////////////////////////////////////////////////////////////////////////
// Item metas:
// E_ITEM_BANNER metas:
E_META_BANNER_BLACK = 0,
E_META_BANNER_RED = 1,
E_META_BANNER_GREEN = 2,
E_META_BANNER_BROWN = 3,
E_META_BANNER_BLUE = 4,
E_META_BANNER_PURPLE = 5,
E_META_BANNER_CYAN = 6,
E_META_BANNER_LIGHTGRAY = 7,
E_META_BANNER_GRAY = 8,
E_META_BANNER_PINK = 9,
E_META_BANNER_LIGHTGREEN = 10,
E_META_BANNER_YELLOW = 11,
E_META_BANNER_LIGHTBLUE = 12,
E_META_BANNER_MAGENTA = 13,
E_META_BANNER_ORANGE = 14,
E_META_BANNER_WHITE = 15,
// E_ITEM_COAL metas:
E_META_COAL_NORMAL = 0,
E_META_COAL_CHARCOAL = 1,
// E_ITEM_DYE metas:
E_META_DYE_BLACK = 0,
E_META_DYE_RED = 1,
E_META_DYE_GREEN = 2,
E_META_DYE_BROWN = 3,
E_META_DYE_BLUE = 4,
E_META_DYE_PURPLE = 5,
E_META_DYE_CYAN = 6,
E_META_DYE_LIGHTGRAY = 7,
E_META_DYE_GRAY = 8,
E_META_DYE_PINK = 9,
E_META_DYE_LIGHTGREEN = 10,
E_META_DYE_YELLOW = 11,
E_META_DYE_LIGHTBLUE = 12,
E_META_DYE_MAGENTA = 13,
E_META_DYE_ORANGE = 14,
E_META_DYE_WHITE = 15,
// E_ITEM_GOLDEN_APPLE metas:
E_META_GOLDEN_APPLE_NORMAL = 0,
E_META_GOLDEN_APPLE_ENCHANTED = 1,
// E_ITEM_HEAD metas:
E_META_HEAD_SKELETON = 0,
E_META_HEAD_WITHER = 1,
E_META_HEAD_ZOMBIE = 2,
E_META_HEAD_PLAYER = 3,
E_META_HEAD_CREEPER = 4,
E_META_HEAD_DRAGON = 5,
// E_ITEM_RAW_FISH metas:
E_META_RAW_FISH_FISH = 0,
E_META_RAW_FISH_SALMON = 1,
E_META_RAW_FISH_CLOWNFISH = 2,
E_META_RAW_FISH_PUFFERFISH = 3,
// E_ITEM_COOKED_FISH metas:
E_META_COOKED_FISH_FISH = 0,
E_META_COOKED_FISH_SALMON = 1,
// E_ITEM_MINECART_TRACKS metas:
E_META_TRACKS_X = 1,
E_META_TRACKS_Z = 0,
// E_ITEM_SPAWN_EGG metas:
// See also cMonster::eType, since monster type and spawn egg meta are the same
E_META_SPAWN_EGG_PICKUP = 1,
E_META_SPAWN_EGG_EXPERIENCE_ORB = 2,
E_META_SPAWN_EGG_LEASH_KNOT = 8,
E_META_SPAWN_EGG_PAINTING = 9,
E_META_SPAWN_EGG_ARROW = 10,
E_META_SPAWN_EGG_SNOWBALL = 11,
E_META_SPAWN_EGG_FIREBALL = 12,
E_META_SPAWN_EGG_SMALL_FIREBALL = 13,
E_META_SPAWN_EGG_ENDER_PEARL = 14,
E_META_SPAWN_EGG_EYE_OF_ENDER = 15,
E_META_SPAWN_EGG_SPLASH_POTION = 16,
E_META_SPAWN_EGG_EXP_BOTTLE = 17,
E_META_SPAWN_EGG_ITEM_FRAME = 18,
E_META_SPAWN_EGG_WITHER_SKULL = 19,
E_META_SPAWN_EGG_PRIMED_TNT = 20,
E_META_SPAWN_EGG_FALLING_BLOCK = 21,
E_META_SPAWN_EGG_FIREWORK = 22,
E_META_SPAWN_EGG_BOAT = 41,
E_META_SPAWN_EGG_MINECART = 42,
E_META_SPAWN_EGG_MINECART_CHEST = 43,
E_META_SPAWN_EGG_MINECART_FURNACE = 44,
E_META_SPAWN_EGG_MINECART_TNT = 45,
E_META_SPAWN_EGG_MINECART_HOPPER = 46,
E_META_SPAWN_EGG_MINECART_SPAWNER = 47,
E_META_SPAWN_EGG_CREEPER = 50,
E_META_SPAWN_EGG_SKELETON = 51,
E_META_SPAWN_EGG_SPIDER = 52,
E_META_SPAWN_EGG_GIANT = 53,
E_META_SPAWN_EGG_ZOMBIE = 54,
E_META_SPAWN_EGG_SLIME = 55,
E_META_SPAWN_EGG_GHAST = 56,
E_META_SPAWN_EGG_ZOMBIE_PIGMAN = 57,
E_META_SPAWN_EGG_ENDERMAN = 58,
E_META_SPAWN_EGG_CAVE_SPIDER = 59,
E_META_SPAWN_EGG_SILVERFISH = 60,
E_META_SPAWN_EGG_BLAZE = 61,
E_META_SPAWN_EGG_MAGMA_CUBE = 62,
E_META_SPAWN_EGG_ENDER_DRAGON = 63,
E_META_SPAWN_EGG_WITHER = 64,
E_META_SPAWN_EGG_BAT = 65,
E_META_SPAWN_EGG_WITCH = 66,
E_META_SPAWN_EGG_GUARDIAN = 68,
E_META_SPAWN_EGG_PIG = 90,
E_META_SPAWN_EGG_SHEEP = 91,
E_META_SPAWN_EGG_COW = 92,
E_META_SPAWN_EGG_CHICKEN = 93,
E_META_SPAWN_EGG_SQUID = 94,
E_META_SPAWN_EGG_WOLF = 95,
E_META_SPAWN_EGG_MOOSHROOM = 96,
E_META_SPAWN_EGG_SNOW_GOLEM = 97,
E_META_SPAWN_EGG_OCELOT = 98,
E_META_SPAWN_EGG_IRON_GOLEM = 99,
E_META_SPAWN_EGG_HORSE = 100,
E_META_SPAWN_EGG_RABBIT = 101,
E_META_SPAWN_EGG_VILLAGER = 120,
E_META_SPAWN_EGG_ENDER_CRYSTAL = 200,
} ;
// tolua_end
// fwd:
class cItem;
class cIniFile;
// tolua_begin
/** Translates a blocktype string into blocktype. Takes either a number or an items.ini alias as input. Returns -1 on failure. */
extern int BlockStringToType(const AString & a_BlockTypeString);
/** Translates an itemtype string into an item. Takes either a number, number^number, number:number or an items.ini alias as input. Returns true if successful. */
extern bool StringToItem(const AString & a_ItemTypeString, cItem & a_Item);
/** Translates a full item into a string. If the ItemType is not recognized, the ItemType number is output into the string. */
extern AString ItemToString(const cItem & a_Item);
/** Translates itemtype into a string. If the type is not recognized, the itemtype number is output into the string. */
extern AString ItemTypeToString(short a_ItemType);
/** Translates a full item into a fully-specified string (including meta and count). If the ItemType is not recognized, the ItemType number is output into the string. */
extern AString ItemToFullString(const cItem & a_Item);
/** Returns a cItem representing the item described in an IniFile's value; if the value doesn't exist, creates it with the provided default. */
extern cItem GetIniItemSet(cIniFile & a_IniFile, const char * a_Section, const char * a_Key, const char * a_Default);
// tolua_end
/** Base case for IsOneOf to handle empty template aguments. */
template <class = void>
bool IsOneOf(BLOCKTYPE a_BlockType)
{
return false;
}
/** Returns true if a_BlockType is equal to any of the variadic template arguments.
Some example usage:
\code
IsOneOf<>(E_BLOCK_AIR) == false
IsOneOf<E_BLOCK_AIR>(E_BLOCK_DIRT) == false
IsOneOf<E_BLOCK_AIR, E_BLOCK_DIRT>(E_BLOCK_DIRT) == true
\endcode
The implementation is ugly but it is equivalent to this C++17 fold expression:
\code
((a_BlockType == Types) || ...)
\endcode
Just written to be valid without fold expressions or SFINAE. */
template <BLOCKTYPE Head, BLOCKTYPE ... Tail>
bool IsOneOf(BLOCKTYPE a_BlockType)
{
return ((a_BlockType == Head) || (IsOneOf<Tail...>(a_BlockType)));
}