#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_REDSTONE_REPEATER_ON / E_BLOCK_REDSTONE_REPEATER_OFF metas: E_META_REDSTONE_REPEATER_FACING_ZM = 0, E_META_REDSTONE_REPEATER_FACING_XP = 1, E_META_REDSTONE_REPEATER_FACING_ZP = 2, E_META_REDSTONE_REPEATER_FACING_XM = 3, E_META_REDSTONE_REPEATER_FACING_MASK = 3, // 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_WITHER_SKELETON = 5, 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_ZOMBIE_VILLAGER = 27, 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 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_DIRT) == false IsOneOf(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 bool IsOneOf(BLOCKTYPE a_BlockType) { return ((a_BlockType == Head) || (IsOneOf(a_BlockType))); }