#include "../Platform/stdafx.h" #include "../Headers/net.minecraft.locale.h" #include "../Headers/net.minecraft.world.h" #include "../Headers/net.minecraft.world.entity.h" #include "../Headers/net.minecraft.world.entity.item.h" #include "../Headers/net.minecraft.world.level.h" #include "../Headers/net.minecraft.world.level.tile.h" #include "../Headers/net.minecraft.world.item.h" #include "../Headers/net.minecraft.world.item.alchemy.h" #include "../Headers/net.minecraft.world.food.h" #include "../Headers/net.minecraft.world.effect.h" #include "../Headers/net.minecraft.stats.h" #include "MapItem.h" #include "Item.h" #include "HangingEntityItem.h" #include "../Util/HtmlString.h" typedef Item::Tier _Tier; // const UUID Item::BASE_ATTACK_DAMAGE_UUID = // UUID::fromString(L"CB3F55D3-645C-4F38-A497-9C13A33DB5CF"); std::wstring Item::ICON_DESCRIPTION_PREFIX = L"item."; const _Tier* _Tier::WOOD = new _Tier(0, 59, 2, 0, 15); // const _Tier* _Tier::STONE = new _Tier(1, 131, 4, 1, 5); // const _Tier* _Tier::IRON = new _Tier(2, 250, 6, 2, 14); // const _Tier* _Tier::DIAMOND = new _Tier(3, 1561, 8, 3, 10); // const _Tier* _Tier::GOLD = new _Tier(0, 32, 12, 0, 22); Random* Item::random = new Random(); ItemArray Item::items = ItemArray(ITEM_NUM_COUNT); Item* Item::shovel_iron = NULL; Item* Item::pickAxe_iron = NULL; Item* Item::hatchet_iron = NULL; Item* Item::flintAndSteel = NULL; Item* Item::apple = NULL; BowItem* Item::bow = NULL; Item* Item::arrow = NULL; Item* Item::coal = NULL; Item* Item::diamond = NULL; Item* Item::ironIngot = NULL; Item* Item::goldIngot = NULL; Item* Item::sword_iron = NULL; Item* Item::sword_wood = NULL; Item* Item::shovel_wood = NULL; Item* Item::pickAxe_wood = NULL; Item* Item::hatchet_wood = NULL; Item* Item::sword_stone = NULL; Item* Item::shovel_stone = NULL; Item* Item::pickAxe_stone = NULL; Item* Item::hatchet_stone = NULL; Item* Item::sword_diamond = NULL; Item* Item::shovel_diamond = NULL; Item* Item::pickAxe_diamond = NULL; Item* Item::hatchet_diamond = NULL; Item* Item::stick = NULL; Item* Item::bowl = NULL; Item* Item::mushroomStew = NULL; Item* Item::sword_gold = NULL; Item* Item::shovel_gold = NULL; Item* Item::pickAxe_gold = NULL; Item* Item::hatchet_gold = NULL; Item* Item::string = NULL; Item* Item::feather = NULL; Item* Item::gunpowder = NULL; Item* Item::hoe_wood = NULL; Item* Item::hoe_stone = NULL; Item* Item::hoe_iron = NULL; Item* Item::hoe_diamond = NULL; Item* Item::hoe_gold = NULL; Item* Item::seeds_wheat = NULL; Item* Item::wheat = NULL; Item* Item::bread = NULL; ArmorItem* Item::helmet_leather = NULL; ArmorItem* Item::chestplate_leather = NULL; ArmorItem* Item::leggings_leather = NULL; ArmorItem* Item::boots_leather = NULL; ArmorItem* Item::helmet_chain = NULL; ArmorItem* Item::chestplate_chain = NULL; ArmorItem* Item::leggings_chain = NULL; ArmorItem* Item::boots_chain = NULL; ArmorItem* Item::helmet_iron = NULL; ArmorItem* Item::chestplate_iron = NULL; ArmorItem* Item::leggings_iron = NULL; ArmorItem* Item::boots_iron = NULL; ArmorItem* Item::helmet_diamond = NULL; ArmorItem* Item::chestplate_diamond = NULL; ArmorItem* Item::leggings_diamond = NULL; ArmorItem* Item::boots_diamond = NULL; ArmorItem* Item::helmet_gold = NULL; ArmorItem* Item::chestplate_gold = NULL; ArmorItem* Item::leggings_gold = NULL; ArmorItem* Item::boots_gold = NULL; Item* Item::flint = NULL; Item* Item::porkChop_raw = NULL; Item* Item::porkChop_cooked = NULL; Item* Item::painting = NULL; Item* Item::apple_gold = NULL; Item* Item::sign = NULL; Item* Item::door_wood = NULL; Item* Item::bucket_empty = NULL; Item* Item::bucket_water = NULL; Item* Item::bucket_lava = NULL; Item* Item::minecart = NULL; Item* Item::saddle = NULL; Item* Item::door_iron = NULL; Item* Item::redStone = NULL; Item* Item::snowBall = NULL; Item* Item::boat = NULL; Item* Item::leather = NULL; Item* Item::bucket_milk = NULL; Item* Item::brick = NULL; Item* Item::clay = NULL; Item* Item::reeds = NULL; Item* Item::paper = NULL; Item* Item::book = NULL; Item* Item::slimeBall = NULL; Item* Item::minecart_chest = NULL; Item* Item::minecart_furnace = NULL; Item* Item::egg = NULL; Item* Item::compass = NULL; FishingRodItem* Item::fishingRod = NULL; Item* Item::clock = NULL; Item* Item::yellowDust = NULL; Item* Item::fish_raw = NULL; Item* Item::fish_cooked = NULL; Item* Item::dye_powder = NULL; Item* Item::bone = NULL; Item* Item::sugar = NULL; Item* Item::cake = NULL; Item* Item::bed = NULL; Item* Item::repeater = NULL; Item* Item::cookie = NULL; MapItem* Item::map = NULL; Item* Item::record_01 = NULL; Item* Item::record_02 = NULL; Item* Item::record_03 = NULL; Item* Item::record_04 = NULL; Item* Item::record_05 = NULL; Item* Item::record_06 = NULL; Item* Item::record_07 = NULL; Item* Item::record_08 = NULL; Item* Item::record_09 = NULL; Item* Item::record_10 = NULL; Item* Item::record_11 = NULL; Item* Item::record_12 = NULL; ShearsItem* Item::shears = NULL; Item* Item::melon = NULL; Item* Item::seeds_pumpkin = NULL; Item* Item::seeds_melon = NULL; Item* Item::beef_raw = NULL; Item* Item::beef_cooked = NULL; Item* Item::chicken_raw = NULL; Item* Item::chicken_cooked = NULL; Item* Item::rotten_flesh = NULL; Item* Item::enderPearl = NULL; Item* Item::blazeRod = NULL; Item* Item::ghastTear = NULL; Item* Item::goldNugget = NULL; Item* Item::netherwart_seeds = NULL; PotionItem* Item::potion = NULL; Item* Item::glassBottle = NULL; Item* Item::spiderEye = NULL; Item* Item::fermentedSpiderEye = NULL; Item* Item::blazePowder = NULL; Item* Item::magmaCream = NULL; Item* Item::brewingStand = NULL; Item* Item::cauldron = NULL; Item* Item::eyeOfEnder = NULL; Item* Item::speckledMelon = NULL; Item* Item::spawnEgg = NULL; Item* Item::expBottle = NULL; // TU9 Item* Item::fireball = NULL; Item* Item::frame = NULL; Item* Item::skull = NULL; // TU14 // Item *Item::writingBook = NULL; // Item *Item::writtenBook = NULL; Item* Item::emerald = NULL; Item* Item::flowerPot = NULL; Item* Item::carrots = NULL; Item* Item::potato = NULL; Item* Item::potatoBaked = NULL; Item* Item::potatoPoisonous = NULL; EmptyMapItem* Item::emptyMap = NULL; Item* Item::carrotGolden = NULL; Item* Item::carrotOnAStick = NULL; Item* Item::netherStar = NULL; Item* Item::pumpkinPie = NULL; Item* Item::fireworks = NULL; Item* Item::fireworksCharge = NULL; EnchantedBookItem* Item::enchantedBook = NULL; Item* Item::comparator = NULL; Item* Item::netherbrick = NULL; Item* Item::netherQuartz = NULL; Item* Item::minecart_tnt = NULL; Item* Item::minecart_hopper = NULL; Item* Item::horseArmorMetal = NULL; Item* Item::horseArmorGold = NULL; Item* Item::horseArmorDiamond = NULL; Item* Item::lead = NULL; Item* Item::nameTag = NULL; void Item::staticCtor() { Item::sword_wood = (new WeaponItem(12, _Tier::WOOD)) ->setBaseItemTypeAndMaterial(eBaseItemType_sword, eMaterial_wood) ->setIconName(L"swordWood") ->setDescriptionId(IDS_ITEM_SWORD_WOOD) ->setUseDescriptionId(IDS_DESC_SWORD); Item::sword_stone = (new WeaponItem(16, _Tier::STONE)) ->setBaseItemTypeAndMaterial(eBaseItemType_sword, eMaterial_stone) ->setIconName(L"swordStone") ->setDescriptionId(IDS_ITEM_SWORD_STONE) ->setUseDescriptionId(IDS_DESC_SWORD); Item::sword_iron = (new WeaponItem(11, _Tier::IRON)) ->setBaseItemTypeAndMaterial(eBaseItemType_sword, eMaterial_iron) ->setIconName(L"swordIron") ->setDescriptionId(IDS_ITEM_SWORD_IRON) ->setUseDescriptionId(IDS_DESC_SWORD); Item::sword_diamond = (new WeaponItem(20, _Tier::DIAMOND)) ->setBaseItemTypeAndMaterial(eBaseItemType_sword, eMaterial_diamond) ->setIconName(L"swordDiamond") ->setDescriptionId(IDS_ITEM_SWORD_DIAMOND) ->setUseDescriptionId(IDS_DESC_SWORD); Item::sword_gold = (new WeaponItem(27, _Tier::GOLD)) ->setBaseItemTypeAndMaterial(eBaseItemType_sword, eMaterial_gold) ->setIconName(L"swordGold") ->setDescriptionId(IDS_ITEM_SWORD_GOLD) ->setUseDescriptionId(IDS_DESC_SWORD); Item::shovel_wood = (new ShovelItem(13, _Tier::WOOD)) ->setBaseItemTypeAndMaterial(eBaseItemType_shovel, eMaterial_wood) ->setIconName(L"shovelWood") ->setDescriptionId(IDS_ITEM_SHOVEL_WOOD) ->setUseDescriptionId(IDS_DESC_SHOVEL); Item::shovel_stone = (new ShovelItem(17, _Tier::STONE)) ->setBaseItemTypeAndMaterial(eBaseItemType_shovel, eMaterial_stone) ->setIconName(L"shovelStone") ->setDescriptionId(IDS_ITEM_SHOVEL_STONE) ->setUseDescriptionId(IDS_DESC_SHOVEL); Item::shovel_iron = (new ShovelItem(0, _Tier::IRON)) ->setBaseItemTypeAndMaterial(eBaseItemType_shovel, eMaterial_iron) ->setIconName(L"shovelIron") ->setDescriptionId(IDS_ITEM_SHOVEL_IRON) ->setUseDescriptionId(IDS_DESC_SHOVEL); Item::shovel_diamond = (new ShovelItem(21, _Tier::DIAMOND)) ->setBaseItemTypeAndMaterial( eBaseItemType_shovel, eMaterial_diamond) ->setIconName(L"shovelDiamond") ->setDescriptionId(IDS_ITEM_SHOVEL_DIAMOND) ->setUseDescriptionId(IDS_DESC_SHOVEL); Item::shovel_gold = (new ShovelItem(28, _Tier::GOLD)) ->setBaseItemTypeAndMaterial(eBaseItemType_shovel, eMaterial_gold) ->setIconName(L"shovelGold") ->setDescriptionId(IDS_ITEM_SHOVEL_GOLD) ->setUseDescriptionId(IDS_DESC_SHOVEL); Item::pickAxe_wood = (new PickaxeItem(14, _Tier::WOOD)) ->setBaseItemTypeAndMaterial(eBaseItemType_pickaxe, eMaterial_wood) ->setIconName(L"pickaxeWood") ->setDescriptionId(IDS_ITEM_PICKAXE_WOOD) ->setUseDescriptionId(IDS_DESC_PICKAXE); Item::pickAxe_stone = (new PickaxeItem(18, _Tier::STONE)) ->setBaseItemTypeAndMaterial(eBaseItemType_pickaxe, eMaterial_stone) ->setIconName(L"pickaxeStone") ->setDescriptionId(IDS_ITEM_PICKAXE_STONE) ->setUseDescriptionId(IDS_DESC_PICKAXE); Item::pickAxe_iron = (new PickaxeItem(1, _Tier::IRON)) ->setBaseItemTypeAndMaterial(eBaseItemType_pickaxe, eMaterial_iron) ->setIconName(L"pickaxeIron") ->setDescriptionId(IDS_ITEM_PICKAXE_IRON) ->setUseDescriptionId(IDS_DESC_PICKAXE); Item::pickAxe_diamond = (new PickaxeItem(22, _Tier::DIAMOND)) ->setBaseItemTypeAndMaterial( eBaseItemType_pickaxe, eMaterial_diamond) ->setIconName(L"pickaxeDiamond") ->setDescriptionId(IDS_ITEM_PICKAXE_DIAMOND) ->setUseDescriptionId(IDS_DESC_PICKAXE); Item::pickAxe_gold = (new PickaxeItem(29, _Tier::GOLD)) ->setBaseItemTypeAndMaterial(eBaseItemType_pickaxe, eMaterial_gold) ->setIconName(L"pickaxeGold") ->setDescriptionId(IDS_ITEM_PICKAXE_GOLD) ->setUseDescriptionId(IDS_DESC_PICKAXE); Item::hatchet_wood = (new HatchetItem(15, _Tier::WOOD)) ->setBaseItemTypeAndMaterial(eBaseItemType_hatchet, eMaterial_wood) ->setIconName(L"hatchetWood") ->setDescriptionId(IDS_ITEM_HATCHET_WOOD) ->setUseDescriptionId(IDS_DESC_HATCHET); Item::hatchet_stone = (new HatchetItem(19, _Tier::STONE)) ->setBaseItemTypeAndMaterial(eBaseItemType_hatchet, eMaterial_stone) ->setIconName(L"hatchetStone") ->setDescriptionId(IDS_ITEM_HATCHET_STONE) ->setUseDescriptionId(IDS_DESC_HATCHET); Item::hatchet_iron = (new HatchetItem(2, _Tier::IRON)) ->setBaseItemTypeAndMaterial(eBaseItemType_hatchet, eMaterial_iron) ->setIconName(L"hatchetIron") ->setDescriptionId(IDS_ITEM_HATCHET_IRON) ->setUseDescriptionId(IDS_DESC_HATCHET); Item::hatchet_diamond = (new HatchetItem(23, _Tier::DIAMOND)) ->setBaseItemTypeAndMaterial( eBaseItemType_hatchet, eMaterial_diamond) ->setIconName(L"hatchetDiamond") ->setDescriptionId(IDS_ITEM_HATCHET_DIAMOND) ->setUseDescriptionId(IDS_DESC_HATCHET); Item::hatchet_gold = (new HatchetItem(30, _Tier::GOLD)) ->setBaseItemTypeAndMaterial(eBaseItemType_hatchet, eMaterial_gold) ->setIconName(L"hatchetGold") ->setDescriptionId(IDS_ITEM_HATCHET_GOLD) ->setUseDescriptionId(IDS_DESC_HATCHET); Item::hoe_wood = (new HoeItem(34, _Tier::WOOD)) ->setBaseItemTypeAndMaterial(eBaseItemType_hoe, eMaterial_wood) ->setIconName(L"hoeWood") ->setDescriptionId(IDS_ITEM_HOE_WOOD) ->setUseDescriptionId(IDS_DESC_HOE); Item::hoe_stone = (new HoeItem(35, _Tier::STONE)) ->setBaseItemTypeAndMaterial(eBaseItemType_hoe, eMaterial_stone) ->setIconName(L"hoeStone") ->setDescriptionId(IDS_ITEM_HOE_STONE) ->setUseDescriptionId(IDS_DESC_HOE); Item::hoe_iron = (new HoeItem(36, _Tier::IRON)) ->setBaseItemTypeAndMaterial(eBaseItemType_hoe, eMaterial_iron) ->setIconName(L"hoeIron") ->setDescriptionId(IDS_ITEM_HOE_IRON) ->setUseDescriptionId(IDS_DESC_HOE); Item::hoe_diamond = (new HoeItem(37, _Tier::DIAMOND)) ->setBaseItemTypeAndMaterial(eBaseItemType_hoe, eMaterial_diamond) ->setIconName(L"hoeDiamond") ->setDescriptionId(IDS_ITEM_HOE_DIAMOND) ->setUseDescriptionId(IDS_DESC_HOE); Item::hoe_gold = (new HoeItem(38, _Tier::GOLD)) ->setBaseItemTypeAndMaterial(eBaseItemType_hoe, eMaterial_gold) ->setIconName(L"hoeGold") ->setDescriptionId(IDS_ITEM_HOE_GOLD) ->setUseDescriptionId(IDS_DESC_HOE); Item::door_wood = (new DoorItem(68, Material::wood)) ->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_wood) ->setIconName(L"doorWood") ->setDescriptionId(IDS_ITEM_DOOR_WOOD) ->setUseDescriptionId(IDS_DESC_DOOR_WOOD); Item::door_iron = (new DoorItem(74, Material::metal)) ->setBaseItemTypeAndMaterial(eBaseItemType_door, eMaterial_iron) ->setIconName(L"doorIron") ->setDescriptionId(IDS_ITEM_DOOR_IRON) ->setUseDescriptionId(IDS_DESC_DOOR_IRON); Item::helmet_leather = (ArmorItem*)((new ArmorItem(42, ArmorItem::ArmorMaterial::CLOTH, 0, ArmorItem::SLOT_HEAD)) ->setBaseItemTypeAndMaterial(eBaseItemType_helmet, eMaterial_cloth) ->setIconName(L"helmetCloth") ->setDescriptionId(IDS_ITEM_HELMET_CLOTH) ->setUseDescriptionId(IDS_DESC_HELMET_LEATHER)); Item::helmet_iron = (ArmorItem*)((new ArmorItem(50, ArmorItem::ArmorMaterial::IRON, 2, ArmorItem::SLOT_HEAD)) ->setBaseItemTypeAndMaterial(eBaseItemType_helmet, eMaterial_iron) ->setIconName(L"helmetIron") ->setDescriptionId(IDS_ITEM_HELMET_IRON) ->setUseDescriptionId(IDS_DESC_HELMET_IRON)); Item::helmet_diamond = (ArmorItem*)((new ArmorItem(54, ArmorItem::ArmorMaterial::DIAMOND, 3, ArmorItem::SLOT_HEAD)) ->setBaseItemTypeAndMaterial(eBaseItemType_helmet, eMaterial_diamond) ->setIconName(L"helmetDiamond") ->setDescriptionId(IDS_ITEM_HELMET_DIAMOND) ->setUseDescriptionId(IDS_DESC_HELMET_DIAMOND)); Item::helmet_gold = (ArmorItem*)((new ArmorItem(58, ArmorItem::ArmorMaterial::GOLD, 4, ArmorItem::SLOT_HEAD)) ->setBaseItemTypeAndMaterial(eBaseItemType_helmet, eMaterial_gold) ->setIconName(L"helmetGold") ->setDescriptionId(IDS_ITEM_HELMET_GOLD) ->setUseDescriptionId(IDS_DESC_HELMET_GOLD)); Item::chestplate_leather = (ArmorItem*)((new ArmorItem(43, ArmorItem::ArmorMaterial::CLOTH, 0, ArmorItem::SLOT_TORSO)) ->setBaseItemTypeAndMaterial(eBaseItemType_chestplate, eMaterial_cloth) ->setIconName(L"chestplateCloth") ->setDescriptionId(IDS_ITEM_CHESTPLATE_CLOTH) ->setUseDescriptionId(IDS_DESC_CHESTPLATE_LEATHER)); Item::chestplate_iron = (ArmorItem*)((new ArmorItem(51, ArmorItem::ArmorMaterial::IRON, 2, ArmorItem::SLOT_TORSO)) ->setBaseItemTypeAndMaterial(eBaseItemType_chestplate, eMaterial_iron) ->setIconName(L"chestplateIron") ->setDescriptionId(IDS_ITEM_CHESTPLATE_IRON) ->setUseDescriptionId(IDS_DESC_CHESTPLATE_IRON)); Item::chestplate_diamond = (ArmorItem*)((new ArmorItem(55, ArmorItem::ArmorMaterial::DIAMOND, 3, ArmorItem::SLOT_TORSO)) ->setBaseItemTypeAndMaterial(eBaseItemType_chestplate, eMaterial_diamond) ->setIconName(L"chestplateDiamond") ->setDescriptionId(IDS_ITEM_CHESTPLATE_DIAMOND) ->setUseDescriptionId(IDS_DESC_CHESTPLATE_DIAMOND)); Item::chestplate_gold = (ArmorItem*)((new ArmorItem(59, ArmorItem::ArmorMaterial::GOLD, 4, ArmorItem::SLOT_TORSO)) ->setBaseItemTypeAndMaterial(eBaseItemType_chestplate, eMaterial_gold) ->setIconName(L"chestplateGold") ->setDescriptionId(IDS_ITEM_CHESTPLATE_GOLD) ->setUseDescriptionId(IDS_DESC_CHESTPLATE_GOLD)); Item::leggings_leather = (ArmorItem*)((new ArmorItem(44, ArmorItem::ArmorMaterial::CLOTH, 0, ArmorItem::SLOT_LEGS)) ->setBaseItemTypeAndMaterial(eBaseItemType_leggings, eMaterial_cloth) ->setIconName(L"leggingsCloth") ->setDescriptionId(IDS_ITEM_LEGGINGS_CLOTH) ->setUseDescriptionId(IDS_DESC_LEGGINGS_LEATHER)); Item::leggings_iron = (ArmorItem*)((new ArmorItem(52, ArmorItem::ArmorMaterial::IRON, 2, ArmorItem::SLOT_LEGS)) ->setBaseItemTypeAndMaterial(eBaseItemType_leggings, eMaterial_iron) ->setIconName(L"leggingsIron") ->setDescriptionId(IDS_ITEM_LEGGINGS_IRON) ->setUseDescriptionId(IDS_DESC_LEGGINGS_IRON)); Item::leggings_diamond = (ArmorItem*)((new ArmorItem(56, ArmorItem::ArmorMaterial::DIAMOND, 3, ArmorItem::SLOT_LEGS)) ->setBaseItemTypeAndMaterial(eBaseItemType_leggings, eMaterial_diamond) ->setIconName(L"leggingsDiamond") ->setDescriptionId(IDS_ITEM_LEGGINGS_DIAMOND) ->setUseDescriptionId(IDS_DESC_LEGGINGS_DIAMOND)); Item::leggings_gold = (ArmorItem*)((new ArmorItem(60, ArmorItem::ArmorMaterial::GOLD, 4, ArmorItem::SLOT_LEGS)) ->setBaseItemTypeAndMaterial(eBaseItemType_leggings, eMaterial_gold) ->setIconName(L"leggingsGold") ->setDescriptionId(IDS_ITEM_LEGGINGS_GOLD) ->setUseDescriptionId(IDS_DESC_LEGGINGS_GOLD)); Item::helmet_chain = (ArmorItem*)((new ArmorItem(46, ArmorItem::ArmorMaterial::CHAIN, 1, ArmorItem::SLOT_HEAD)) ->setBaseItemTypeAndMaterial(eBaseItemType_helmet, eMaterial_chain) ->setIconName(L"helmetChain") ->setDescriptionId(IDS_ITEM_HELMET_CHAIN) ->setUseDescriptionId(IDS_DESC_HELMET_CHAIN)); Item::chestplate_chain = (ArmorItem*)((new ArmorItem(47, ArmorItem::ArmorMaterial::CHAIN, 1, ArmorItem::SLOT_TORSO)) ->setBaseItemTypeAndMaterial(eBaseItemType_chestplate, eMaterial_chain) ->setIconName(L"chestplateChain") ->setDescriptionId(IDS_ITEM_CHESTPLATE_CHAIN) ->setUseDescriptionId(IDS_DESC_CHESTPLATE_CHAIN)); Item::leggings_chain = (ArmorItem*)((new ArmorItem(48, ArmorItem::ArmorMaterial::CHAIN, 1, ArmorItem::SLOT_LEGS)) ->setBaseItemTypeAndMaterial(eBaseItemType_leggings, eMaterial_chain) ->setIconName(L"leggingsChain") ->setDescriptionId(IDS_ITEM_LEGGINGS_CHAIN) ->setUseDescriptionId(IDS_DESC_LEGGINGS_CHAIN)); Item::boots_chain = (ArmorItem*)((new ArmorItem(49, ArmorItem::ArmorMaterial::CHAIN, 1, ArmorItem::SLOT_FEET)) ->setBaseItemTypeAndMaterial(eBaseItemType_boots, eMaterial_chain) ->setIconName(L"bootsChain") ->setDescriptionId(IDS_ITEM_BOOTS_CHAIN) ->setUseDescriptionId(IDS_DESC_BOOTS_CHAIN)); Item::boots_leather = (ArmorItem*)((new ArmorItem(45, ArmorItem::ArmorMaterial::CLOTH, 0, ArmorItem::SLOT_FEET)) ->setBaseItemTypeAndMaterial(eBaseItemType_boots, eMaterial_cloth) ->setIconName(L"bootsCloth") ->setDescriptionId(IDS_ITEM_BOOTS_CLOTH) ->setUseDescriptionId(IDS_DESC_BOOTS_LEATHER)); Item::boots_iron = (ArmorItem*)((new ArmorItem(53, ArmorItem::ArmorMaterial::IRON, 2, ArmorItem::SLOT_FEET)) ->setBaseItemTypeAndMaterial(eBaseItemType_boots, eMaterial_iron) ->setIconName(L"bootsIron") ->setDescriptionId(IDS_ITEM_BOOTS_IRON) ->setUseDescriptionId(IDS_DESC_BOOTS_IRON)); Item::boots_diamond = (ArmorItem*)((new ArmorItem(57, ArmorItem::ArmorMaterial::DIAMOND, 3, ArmorItem::SLOT_FEET)) ->setBaseItemTypeAndMaterial(eBaseItemType_boots, eMaterial_diamond) ->setIconName(L"bootsDiamond") ->setDescriptionId(IDS_ITEM_BOOTS_DIAMOND) ->setUseDescriptionId(IDS_DESC_BOOTS_DIAMOND)); Item::boots_gold = (ArmorItem*)((new ArmorItem(61, ArmorItem::ArmorMaterial::GOLD, 4, ArmorItem::SLOT_FEET)) ->setBaseItemTypeAndMaterial(eBaseItemType_boots, eMaterial_gold) ->setIconName(L"bootsGold") ->setDescriptionId(IDS_ITEM_BOOTS_GOLD) ->setUseDescriptionId(IDS_DESC_BOOTS_GOLD)); Item::ironIngot = (new Item(9)) ->setIconName(L"ingotIron") ->setBaseItemTypeAndMaterial(eBaseItemType_treasure, eMaterial_iron) ->setDescriptionId(IDS_ITEM_INGOT_IRON) ->setUseDescriptionId(IDS_DESC_INGOT); Item::goldIngot = (new Item(10)) ->setIconName(L"ingotGold") ->setBaseItemTypeAndMaterial(eBaseItemType_treasure, eMaterial_gold) ->setDescriptionId(IDS_ITEM_INGOT_GOLD) ->setUseDescriptionId(IDS_DESC_INGOT); // 4J-PB - todo - add materials and base types to the ones below Item::bucket_empty = (new BucketItem(69, 0)) ->setBaseItemTypeAndMaterial(eBaseItemType_utensil, eMaterial_water) ->setIconName(L"bucket") ->setDescriptionId(IDS_ITEM_BUCKET) ->setUseDescriptionId(IDS_DESC_BUCKET) ->setMaxStackSize(16); Item::bowl = (new Item(25)) ->setBaseItemTypeAndMaterial(eBaseItemType_utensil, eMaterial_wood) ->setIconName(L"bowl") ->setDescriptionId(IDS_ITEM_BOWL) ->setUseDescriptionId(IDS_DESC_BOWL) ->setMaxStackSize(64); Item::bucket_water = (new BucketItem(70, Tile::water_Id)) ->setIconName(L"bucketWater") ->setDescriptionId(IDS_ITEM_BUCKET_WATER) ->setCraftingRemainingItem(Item::bucket_empty) ->setUseDescriptionId(IDS_DESC_BUCKET_WATER); Item::bucket_lava = (new BucketItem(71, Tile::lava_Id)) ->setIconName(L"bucketLava") ->setDescriptionId(IDS_ITEM_BUCKET_LAVA) ->setCraftingRemainingItem(Item::bucket_empty) ->setUseDescriptionId(IDS_DESC_BUCKET_LAVA); Item::bucket_milk = (new MilkBucketItem(79)) ->setIconName(L"milk") ->setDescriptionId(IDS_ITEM_BUCKET_MILK) ->setCraftingRemainingItem(Item::bucket_empty) ->setUseDescriptionId(IDS_DESC_BUCKET_MILK); Item::bow = (BowItem*)(new BowItem(5)) ->setIconName(L"bow") ->setBaseItemTypeAndMaterial(eBaseItemType_bow, eMaterial_bow) ->setDescriptionId(IDS_ITEM_BOW) ->setUseDescriptionId(IDS_DESC_BOW); Item::arrow = (new Item(6)) ->setIconName(L"arrow") ->setBaseItemTypeAndMaterial(eBaseItemType_bow, eMaterial_arrow) ->setDescriptionId(IDS_ITEM_ARROW) ->setUseDescriptionId(IDS_DESC_ARROW); Item::compass = (new CompassItem(89)) ->setIconName(L"compass") ->setBaseItemTypeAndMaterial(eBaseItemType_pockettool, eMaterial_compass) ->setDescriptionId(IDS_ITEM_COMPASS) ->setUseDescriptionId(IDS_DESC_COMPASS); Item::clock = (new ClockItem(91)) ->setIconName(L"clock") ->setBaseItemTypeAndMaterial(eBaseItemType_pockettool, eMaterial_clock) ->setDescriptionId(IDS_ITEM_CLOCK) ->setUseDescriptionId(IDS_DESC_CLOCK); Item::map = (MapItem*)(new MapItem(102)) ->setIconName(L"map") ->setBaseItemTypeAndMaterial(eBaseItemType_pockettool, eMaterial_map) ->setDescriptionId(IDS_ITEM_MAP) ->setUseDescriptionId(IDS_DESC_MAP); Item::flintAndSteel = (new FlintAndSteelItem(3)) ->setIconName(L"flintAndSteel") ->setBaseItemTypeAndMaterial(eBaseItemType_devicetool, eMaterial_flintandsteel) ->setDescriptionId(IDS_ITEM_FLINT_AND_STEEL) ->setUseDescriptionId(IDS_DESC_FLINTANDSTEEL); Item::apple = (new FoodItem(4, 4, FoodConstants::FOOD_SATURATION_LOW, false)) ->setIconName(L"apple") ->setDescriptionId(IDS_ITEM_APPLE) ->setUseDescriptionId(IDS_DESC_APPLE); Item::coal = (new CoalItem(7)) ->setBaseItemTypeAndMaterial(eBaseItemType_treasure, eMaterial_coal) ->setIconName(L"coal") ->setDescriptionId(IDS_ITEM_COAL) ->setUseDescriptionId(IDS_DESC_COAL); Item::diamond = (new Item(8)) ->setBaseItemTypeAndMaterial(eBaseItemType_treasure, eMaterial_diamond) ->setIconName(L"diamond") ->setDescriptionId(IDS_ITEM_DIAMOND) ->setUseDescriptionId(IDS_DESC_DIAMONDS); Item::stick = (new Item(24)) ->setIconName(L"stick") ->handEquipped() ->setDescriptionId(IDS_ITEM_STICK) ->setUseDescriptionId(IDS_DESC_STICK); Item::mushroomStew = (new BowlFoodItem(26, 6)) ->setIconName(L"mushroomStew") ->setDescriptionId(IDS_ITEM_MUSHROOM_STEW) ->setUseDescriptionId(IDS_DESC_MUSHROOMSTEW); Item::string = (new TilePlanterItem(31, Tile::tripWire)) ->setIconName(L"string") ->setDescriptionId(IDS_ITEM_STRING) ->setUseDescriptionId(IDS_DESC_STRING); Item::feather = (new Item(32)) ->setIconName(L"feather") ->setDescriptionId(IDS_ITEM_FEATHER) ->setUseDescriptionId(IDS_DESC_FEATHER); Item::gunpowder = (new Item(33)) ->setIconName(L"sulphur") ->setDescriptionId(IDS_ITEM_SULPHUR) ->setUseDescriptionId(IDS_DESC_SULPHUR) ->setPotionBrewingFormula(PotionBrewing::MOD_GUNPOWDER); Item::seeds_wheat = (new SeedItem(39, Tile::wheat_Id, Tile::farmland_Id)) ->setIconName(L"seeds") ->setDescriptionId(IDS_ITEM_WHEAT_SEEDS) ->setUseDescriptionId(IDS_DESC_WHEAT_SEEDS); Item::wheat = (new Item(40)) ->setBaseItemTypeAndMaterial(eBaseItemType_treasure, eMaterial_wheat) ->setIconName(L"wheat") ->setDescriptionId(IDS_ITEM_WHEAT) ->setUseDescriptionId(IDS_DESC_WHEAT); Item::bread = (new FoodItem(41, 5, FoodConstants::FOOD_SATURATION_NORMAL, false)) ->setIconName(L"bread") ->setDescriptionId(IDS_ITEM_BREAD) ->setUseDescriptionId(IDS_DESC_BREAD); Item::flint = (new Item(62)) ->setIconName(L"flint") ->setDescriptionId(IDS_ITEM_FLINT) ->setUseDescriptionId(IDS_DESC_FLINT); Item::porkChop_raw = (new FoodItem(63, 3, FoodConstants::FOOD_SATURATION_LOW, true)) ->setIconName(L"porkchopRaw") ->setDescriptionId(IDS_ITEM_PORKCHOP_RAW) ->setUseDescriptionId(IDS_DESC_PORKCHOP_RAW); Item::porkChop_cooked = (new FoodItem(64, 8, FoodConstants::FOOD_SATURATION_GOOD, true)) ->setIconName(L"porkchopCooked") ->setDescriptionId(IDS_ITEM_PORKCHOP_COOKED) ->setUseDescriptionId(IDS_DESC_PORKCHOP_COOKED); Item::painting = (new HangingEntityItem(65, eTYPE_PAINTING)) ->setBaseItemTypeAndMaterial(eBaseItemType_HangingItem, eMaterial_cloth) ->setIconName(L"painting") ->setDescriptionId(IDS_ITEM_PAINTING) ->setUseDescriptionId(IDS_DESC_PICTURE); Item::apple_gold = (new GoldenAppleItem(66, 4, FoodConstants::FOOD_SATURATION_SUPERNATURAL, false)) ->setCanAlwaysEat() ->setEatEffect(MobEffect::regeneration->id, 5, 1, 1.0f) ->setBaseItemTypeAndMaterial(eBaseItemType_giltFruit, eMaterial_apple) ->setIconName(L"appleGold") ->setDescriptionId( IDS_ITEM_APPLE_GOLD); //->setUseDescriptionId(IDS_DESC_GOLDENAPPLE); Item::sign = (new SignItem(67)) ->setBaseItemTypeAndMaterial(eBaseItemType_HangingItem, eMaterial_wood) ->setIconName(L"sign") ->setDescriptionId(IDS_ITEM_SIGN) ->setUseDescriptionId(IDS_DESC_SIGN); Item::minecart = (new MinecartItem(72, Minecart::TYPE_RIDEABLE)) ->setIconName(L"minecart") ->setDescriptionId(IDS_ITEM_MINECART) ->setUseDescriptionId(IDS_DESC_MINECART); Item::saddle = (new SaddleItem(73)) ->setIconName(L"saddle") ->setDescriptionId(IDS_ITEM_SADDLE) ->setUseDescriptionId(IDS_DESC_SADDLE); Item::redStone = (new RedStoneItem(75)) ->setBaseItemTypeAndMaterial(eBaseItemType_treasure, eMaterial_redstone) ->setIconName(L"redstone") ->setDescriptionId(IDS_ITEM_REDSTONE) ->setUseDescriptionId(IDS_DESC_REDSTONE_DUST) ->setPotionBrewingFormula(PotionBrewing::MOD_REDSTONE); Item::snowBall = (new SnowballItem(76)) ->setIconName(L"snowball") ->setDescriptionId(IDS_ITEM_SNOWBALL) ->setUseDescriptionId(IDS_DESC_SNOWBALL); Item::boat = (new BoatItem(77)) ->setIconName(L"boat") ->setDescriptionId(IDS_ITEM_BOAT) ->setUseDescriptionId(IDS_DESC_BOAT); Item::leather = (new Item(78)) ->setIconName(L"leather") ->setDescriptionId(IDS_ITEM_LEATHER) ->setUseDescriptionId(IDS_DESC_LEATHER); Item::brick = (new Item(80)) ->setIconName(L"brick") ->setDescriptionId(IDS_ITEM_BRICK) ->setUseDescriptionId(IDS_DESC_BRICK); Item::clay = (new Item(81)) ->setIconName(L"clay") ->setDescriptionId(IDS_ITEM_CLAY) ->setUseDescriptionId(IDS_DESC_CLAY); Item::reeds = (new TilePlanterItem(82, Tile::reeds)) ->setIconName(L"reeds") ->setDescriptionId(IDS_ITEM_REEDS) ->setUseDescriptionId(IDS_DESC_REEDS); Item::paper = (new Item(83)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_paper, Item::eMaterial_paper) ->setIconName(L"paper") ->setDescriptionId(IDS_ITEM_PAPER) ->setUseDescriptionId(IDS_DESC_PAPER); Item::book = (new BookItem(84)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_paper, Item::eMaterial_book) ->setIconName(L"book") ->setDescriptionId(IDS_ITEM_BOOK) ->setUseDescriptionId(IDS_DESC_BOOK); Item::slimeBall = (new Item(85)) ->setIconName(L"slimeball") ->setDescriptionId(IDS_ITEM_SLIMEBALL) ->setUseDescriptionId(IDS_DESC_SLIMEBALL); Item::minecart_chest = (new MinecartItem(86, Minecart::TYPE_CHEST)) ->setIconName(L"minecart_chest") ->setDescriptionId(IDS_ITEM_MINECART_CHEST) ->setUseDescriptionId(IDS_DESC_MINECARTWITHCHEST); Item::minecart_furnace = (new MinecartItem(87, Minecart::TYPE_FURNACE)) ->setIconName(L"minecart_furnace") ->setDescriptionId(IDS_ITEM_MINECART_FURNACE) ->setUseDescriptionId(IDS_DESC_MINECARTWITHFURNACE); Item::egg = (new EggItem(88)) ->setIconName(L"egg") ->setDescriptionId(IDS_ITEM_EGG) ->setUseDescriptionId(IDS_DESC_EGG); Item::fishingRod = (FishingRodItem*)(new FishingRodItem(90)) ->setBaseItemTypeAndMaterial(eBaseItemType_rod, eMaterial_wood) ->setIconName(L"fishingRod") ->setDescriptionId(IDS_ITEM_FISHING_ROD) ->setUseDescriptionId(IDS_DESC_FISHINGROD); Item::yellowDust = (new Item(92)) ->setIconName(L"yellowDust") ->setDescriptionId(IDS_ITEM_YELLOW_DUST) ->setUseDescriptionId(IDS_DESC_YELLOW_DUST) ->setPotionBrewingFormula(PotionBrewing::MOD_GLOWSTONE); Item::fish_raw = (new FoodItem(93, 2, FoodConstants::FOOD_SATURATION_LOW, false)) ->setIconName(L"fishRaw") ->setDescriptionId(IDS_ITEM_FISH_RAW) ->setUseDescriptionId(IDS_DESC_FISH_RAW); Item::fish_cooked = (new FoodItem(94, 5, FoodConstants::FOOD_SATURATION_NORMAL, false)) ->setIconName(L"fishCooked") ->setDescriptionId(IDS_ITEM_FISH_COOKED) ->setUseDescriptionId(IDS_DESC_FISH_COOKED); Item::dye_powder = (new DyePowderItem(95)) ->setBaseItemTypeAndMaterial(eBaseItemType_dyepowder, eMaterial_dye) ->setIconName(L"dyePowder") ->setDescriptionId(IDS_ITEM_DYE_POWDER) ->setUseDescriptionId(-1); Item::bone = (new Item(96)) ->setIconName(L"bone") ->setDescriptionId(IDS_ITEM_BONE) ->handEquipped() ->setUseDescriptionId(IDS_DESC_BONE); Item::sugar = (new Item(97)) ->setIconName(L"sugar") ->setDescriptionId(IDS_ITEM_SUGAR) ->setUseDescriptionId(IDS_DESC_SUGAR) ->setPotionBrewingFormula(PotionBrewing::MOD_SUGAR); // 4J-PB - changing the cake to be stackable - Jens ok'ed this 23/10/12 // Item::cake = ( new TilePlanterItem(98, Tile::cake) // )->setMaxStackSize(1)->setIcon(13, // 1)->setDescriptionId(IDS_ITEM_CAKE)->setUseDescriptionId(IDS_DESC_CAKE); Item::cake = (new TilePlanterItem(98, Tile::cake)) ->setIconName(L"cake") ->setDescriptionId(IDS_ITEM_CAKE) ->setUseDescriptionId(IDS_DESC_CAKE); Item::bed = (new BedItem(99)) ->setMaxStackSize(1) ->setIconName(L"bed") ->setDescriptionId(IDS_ITEM_BED) ->setUseDescriptionId(IDS_DESC_BED); Item::repeater = (new TilePlanterItem(100, (Tile*)Tile::diode_off)) ->setIconName(L"diode") ->setDescriptionId(IDS_ITEM_DIODE) ->setUseDescriptionId(IDS_DESC_REDSTONEREPEATER); Item::cookie = (new FoodItem(101, 2, FoodConstants::FOOD_SATURATION_POOR, false)) ->setIconName(L"cookie") ->setDescriptionId(IDS_ITEM_COOKIE) ->setUseDescriptionId(IDS_DESC_COOKIE); Item::shears = (ShearsItem*)(new ShearsItem(103)) ->setIconName(L"shears") ->setBaseItemTypeAndMaterial(eBaseItemType_devicetool, eMaterial_shears) ->setDescriptionId(IDS_ITEM_SHEARS) ->setUseDescriptionId(IDS_DESC_SHEARS); Item::melon = (new FoodItem(104, 2, FoodConstants::FOOD_SATURATION_LOW, false)) ->setIconName(L"melon") ->setDescriptionId(IDS_ITEM_MELON_SLICE) ->setUseDescriptionId(IDS_DESC_MELON_SLICE); Item::seeds_pumpkin = (new SeedItem(105, Tile::pumpkinStem_Id, Tile::farmland_Id)) ->setIconName(L"seeds_pumpkin") ->setBaseItemTypeAndMaterial(eBaseItemType_seed, eMaterial_pumpkin) ->setDescriptionId(IDS_ITEM_PUMPKIN_SEEDS) ->setUseDescriptionId(IDS_DESC_PUMPKIN_SEEDS); Item::seeds_melon = (new SeedItem(106, Tile::melonStem_Id, Tile::farmland_Id)) ->setIconName(L"seeds_melon") ->setBaseItemTypeAndMaterial(eBaseItemType_seed, eMaterial_melon) ->setDescriptionId(IDS_ITEM_MELON_SEEDS) ->setUseDescriptionId(IDS_DESC_MELON_SEEDS); Item::beef_raw = (new FoodItem(107, 3, FoodConstants::FOOD_SATURATION_LOW, true)) ->setIconName(L"beefRaw") ->setDescriptionId(IDS_ITEM_BEEF_RAW) ->setUseDescriptionId(IDS_DESC_BEEF_RAW); Item::beef_cooked = (new FoodItem(108, 8, FoodConstants::FOOD_SATURATION_GOOD, true)) ->setIconName(L"beefCooked") ->setDescriptionId(IDS_ITEM_BEEF_COOKED) ->setUseDescriptionId(IDS_DESC_BEEF_COOKED); Item::chicken_raw = (new FoodItem(109, 2, FoodConstants::FOOD_SATURATION_LOW, true)) ->setEatEffect(MobEffect::hunger->id, 30, 0, .3f) ->setIconName(L"chickenRaw") ->setDescriptionId(IDS_ITEM_CHICKEN_RAW) ->setUseDescriptionId(IDS_DESC_CHICKEN_RAW); Item::chicken_cooked = (new FoodItem(110, 6, FoodConstants::FOOD_SATURATION_NORMAL, true)) ->setIconName(L"chickenCooked") ->setDescriptionId(IDS_ITEM_CHICKEN_COOKED) ->setUseDescriptionId(IDS_DESC_CHICKEN_COOKED); Item::rotten_flesh = (new FoodItem(111, 4, FoodConstants::FOOD_SATURATION_POOR, true)) ->setEatEffect(MobEffect::hunger->id, 30, 0, .8f) ->setIconName(L"rottenFlesh") ->setDescriptionId(IDS_ITEM_ROTTEN_FLESH) ->setUseDescriptionId(IDS_DESC_ROTTEN_FLESH); Item::enderPearl = (new EnderpearlItem(112)) ->setIconName(L"enderPearl") ->setDescriptionId(IDS_ITEM_ENDER_PEARL) ->setUseDescriptionId(IDS_DESC_ENDER_PEARL); Item::blazeRod = (new Item(113)) ->setIconName(L"blazeRod") ->setDescriptionId(IDS_ITEM_BLAZE_ROD) ->setUseDescriptionId(IDS_DESC_BLAZE_ROD) ->handEquipped(); Item::ghastTear = (new Item(114)) ->setIconName(L"ghastTear") ->setDescriptionId(IDS_ITEM_GHAST_TEAR) ->setUseDescriptionId(IDS_DESC_GHAST_TEAR) ->setPotionBrewingFormula(PotionBrewing::MOD_GHASTTEARS); Item::goldNugget = (new Item(115)) ->setBaseItemTypeAndMaterial(eBaseItemType_treasure, eMaterial_gold) ->setIconName(L"goldNugget") ->setDescriptionId(IDS_ITEM_GOLD_NUGGET) ->setUseDescriptionId(IDS_DESC_GOLD_NUGGET); Item::netherwart_seeds = (new SeedItem(116, Tile::netherStalk_Id, Tile::soulsand_Id)) ->setIconName(L"netherStalkSeeds") ->setDescriptionId(IDS_ITEM_NETHER_STALK_SEEDS) ->setUseDescriptionId(IDS_DESC_NETHER_STALK_SEEDS) ->setPotionBrewingFormula(PotionBrewing::MOD_NETHERWART); Item::potion = (PotionItem*)((new PotionItem(117)) ->setIconName(L"potion") ->setDescriptionId(IDS_ITEM_POTION) ->setUseDescriptionId(IDS_DESC_POTION)); Item::glassBottle = (new BottleItem(118)) ->setBaseItemTypeAndMaterial(eBaseItemType_utensil, eMaterial_glass) ->setIconName(L"glassBottle") ->setDescriptionId(IDS_ITEM_GLASS_BOTTLE) ->setUseDescriptionId(IDS_DESC_GLASS_BOTTLE); Item::spiderEye = (new FoodItem(119, 2, FoodConstants::FOOD_SATURATION_GOOD, false)) ->setEatEffect(MobEffect::poison->id, 5, 0, 1.0f) ->setIconName(L"spiderEye") ->setDescriptionId(IDS_ITEM_SPIDER_EYE) ->setUseDescriptionId(IDS_DESC_SPIDER_EYE) ->setPotionBrewingFormula(PotionBrewing::MOD_SPIDEREYE); Item::fermentedSpiderEye = (new Item(120)) ->setIconName(L"fermentedSpiderEye") ->setDescriptionId(IDS_ITEM_FERMENTED_SPIDER_EYE) ->setUseDescriptionId(IDS_DESC_FERMENTED_SPIDER_EYE) ->setPotionBrewingFormula(PotionBrewing::MOD_FERMENTEDEYE); Item::blazePowder = (new Item(121)) ->setIconName(L"blazePowder") ->setDescriptionId(IDS_ITEM_BLAZE_POWDER) ->setUseDescriptionId(IDS_DESC_BLAZE_POWDER) ->setPotionBrewingFormula(PotionBrewing::MOD_BLAZEPOWDER); Item::magmaCream = (new Item(122)) ->setIconName(L"magmaCream") ->setDescriptionId(IDS_ITEM_MAGMA_CREAM) ->setUseDescriptionId(IDS_DESC_MAGMA_CREAM) ->setPotionBrewingFormula(PotionBrewing::MOD_MAGMACREAM); Item::brewingStand = (new TilePlanterItem(123, Tile::brewingStand)) ->setBaseItemTypeAndMaterial(eBaseItemType_device, eMaterial_blaze) ->setIconName(L"brewingStand") ->setDescriptionId(IDS_ITEM_BREWING_STAND) ->setUseDescriptionId(IDS_DESC_BREWING_STAND); Item::cauldron = (new TilePlanterItem(124, Tile::cauldron)) ->setBaseItemTypeAndMaterial(eBaseItemType_utensil, eMaterial_iron) ->setIconName(L"cauldron") ->setDescriptionId(IDS_ITEM_CAULDRON) ->setUseDescriptionId(IDS_DESC_CAULDRON); Item::eyeOfEnder = (new EnderEyeItem(125)) ->setBaseItemTypeAndMaterial( eBaseItemType_pockettool, eMaterial_ender) ->setIconName(L"eyeOfEnder") ->setDescriptionId(IDS_ITEM_EYE_OF_ENDER) ->setUseDescriptionId(IDS_DESC_EYE_OF_ENDER); Item::speckledMelon = (new Item(126)) ->setBaseItemTypeAndMaterial(eBaseItemType_giltFruit, eMaterial_melon) ->setIconName(L"speckledMelon") ->setDescriptionId(IDS_ITEM_SPECKLED_MELON) ->setUseDescriptionId(IDS_DESC_SPECKLED_MELON) ->setPotionBrewingFormula(PotionBrewing::MOD_SPECKLEDMELON); Item::spawnEgg = (new SpawnEggItem(127)) ->setIconName(L"monsterPlacer") ->setDescriptionId(IDS_ITEM_MONSTER_SPAWNER) ->setUseDescriptionId(IDS_DESC_MONSTER_SPAWNER); // 4J Stu - Brought this forward Item::expBottle = (new ExperienceItem(128)) ->setIconName(L"expBottle") ->setDescriptionId(IDS_ITEM_EXP_BOTTLE) ->setUseDescriptionId(IDS_DESC_EXP_BOTTLE); Item::record_01 = (new RecordingItem(2000, L"13")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_01) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_02 = (new RecordingItem(2001, L"cat")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_02) ->setUseDescriptionId(IDS_DESC_RECORD); // 4J - new records brought forward from 1.2.3 Item::record_03 = (new RecordingItem(2002, L"blocks")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_03) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_04 = (new RecordingItem(2003, L"chirp")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_04) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_05 = (new RecordingItem(2004, L"far")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_05) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_06 = (new RecordingItem(2005, L"mall")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_06) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_07 = (new RecordingItem(2006, L"mellohi")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_07) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_09 = (new RecordingItem(2007, L"stal")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_08) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_10 = (new RecordingItem(2008, L"strad")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_09) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_11 = (new RecordingItem(2009, L"ward")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_10) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_12 = (new RecordingItem(2010, L"11")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_11) ->setUseDescriptionId(IDS_DESC_RECORD); Item::record_08 = (new RecordingItem(2011, L"where are we now")) ->setIconName(L"record") ->setDescriptionId(IDS_ITEM_RECORD_12) ->setUseDescriptionId(IDS_DESC_RECORD); // TU9 // putting the fire charge in as a torch, so that it stacks without being // near the middle of the selection boxes Item::fireball = (new FireChargeItem(129)) ->setBaseItemTypeAndMaterial(eBaseItemType_torch, eMaterial_setfire) ->setIconName(L"fireball") ->setDescriptionId(IDS_ITEM_FIREBALL) ->setUseDescriptionId(IDS_DESC_FIREBALL); Item::frame = (new HangingEntityItem(133, eTYPE_ITEM_FRAME)) ->setBaseItemTypeAndMaterial(eBaseItemType_HangingItem, eMaterial_glass) ->setIconName(L"frame") ->setDescriptionId(IDS_ITEM_ITEMFRAME) ->setUseDescriptionId(IDS_DESC_ITEMFRAME); // TU12 Item::skull = (new SkullItem(141)) ->setIconName(L"skull") ->setDescriptionId(IDS_ITEM_SKULL) ->setUseDescriptionId(IDS_DESC_SKULL); // TU14 // Item::writingBook = (new WritingBookItem(130))->setIcon(11, // 11)->setDescriptionId("writingBook"); Item::writtenBook = (new // WrittenBookItem(131))->setIcon(12, 11)->setDescriptionId("writtenBook"); Item::emerald = (new Item(132)) ->setBaseItemTypeAndMaterial(eBaseItemType_treasure, eMaterial_emerald) ->setIconName(L"emerald") ->setDescriptionId(IDS_ITEM_EMERALD) ->setUseDescriptionId(IDS_DESC_EMERALD); Item::flowerPot = (new TilePlanterItem(134, Tile::flowerPot)) ->setIconName(L"flowerPot") ->setDescriptionId(IDS_FLOWERPOT) ->setUseDescriptionId(IDS_DESC_FLOWERPOT); Item::carrots = (new SeedFoodItem(135, 4, FoodConstants::FOOD_SATURATION_NORMAL, Tile::carrots_Id, Tile::farmland_Id)) ->setIconName(L"carrots") ->setDescriptionId(IDS_CARROTS) ->setUseDescriptionId(IDS_DESC_CARROTS); Item::potato = (new SeedFoodItem(136, 1, FoodConstants::FOOD_SATURATION_LOW, Tile::potatoes_Id, Tile::farmland_Id)) ->setIconName(L"potato") ->setDescriptionId(IDS_POTATO) ->setUseDescriptionId(IDS_DESC_POTATO); Item::potatoBaked = (new FoodItem(137, 6, FoodConstants::FOOD_SATURATION_NORMAL, false)) ->setIconName(L"potatoBaked") ->setDescriptionId(IDS_ITEM_POTATO_BAKED) ->setUseDescriptionId(IDS_DESC_POTATO_BAKED); Item::potatoPoisonous = (new FoodItem(138, 2, FoodConstants::FOOD_SATURATION_LOW, false)) ->setEatEffect(MobEffect::poison->id, 5, 0, .6f) ->setIconName(L"potatoPoisonous") ->setDescriptionId(IDS_ITEM_POTATO_POISONOUS) ->setUseDescriptionId(IDS_DESC_POTATO_POISONOUS); Item::emptyMap = (EmptyMapItem*)(new EmptyMapItem(139)) ->setIconName(L"map_empty") ->setDescriptionId(IDS_ITEM_MAP_EMPTY) ->setUseDescriptionId(IDS_DESC_MAP_EMPTY); Item::carrotGolden = (new FoodItem(140, 6, FoodConstants::FOOD_SATURATION_SUPERNATURAL, false)) ->setBaseItemTypeAndMaterial(eBaseItemType_giltFruit, eMaterial_carrot) ->setIconName(L"carrotGolden") ->setPotionBrewingFormula(PotionBrewing::MOD_GOLDENCARROT) ->setDescriptionId(IDS_ITEM_CARROT_GOLDEN) ->setUseDescriptionId(IDS_DESC_CARROT_GOLDEN); Item::carrotOnAStick = (new CarrotOnAStickItem(142)) ->setBaseItemTypeAndMaterial(eBaseItemType_rod, eMaterial_carrot) ->setIconName(L"carrotOnAStick") ->setDescriptionId(IDS_ITEM_CARROT_ON_A_STICK) ->setUseDescriptionId(IDS_DESC_CARROT_ON_A_STICK); Item::netherStar = (new SimpleFoiledItem(143)) ->setIconName(L"nether_star") ->setDescriptionId(IDS_NETHER_STAR) ->setUseDescriptionId(IDS_DESC_NETHER_STAR); Item::pumpkinPie = (new FoodItem(144, 8, FoodConstants::FOOD_SATURATION_LOW, false)) ->setIconName(L"pumpkinPie") ->setDescriptionId(IDS_ITEM_PUMPKIN_PIE) ->setUseDescriptionId(IDS_DESC_PUMPKIN_PIE); Item::fireworks = (new FireworksItem(145)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_fireworks, Item::eMaterial_undefined) ->setIconName(L"fireworks") ->setDescriptionId(IDS_FIREWORKS) ->setUseDescriptionId(IDS_DESC_FIREWORKS); Item::fireworksCharge = (new FireworksChargeItem(146)) ->setBaseItemTypeAndMaterial(Item::eBaseItemType_fireworks, Item::eMaterial_undefined) ->setIconName(L"fireworks_charge") ->setDescriptionId(IDS_FIREWORKS_CHARGE) ->setUseDescriptionId(IDS_DESC_FIREWORKS_CHARGE); EnchantedBookItem::enchantedBook = (EnchantedBookItem*)(new EnchantedBookItem(147)) ->setMaxStackSize(1) ->setIconName(L"enchantedBook") ->setDescriptionId(IDS_ITEM_ENCHANTED_BOOK) ->setUseDescriptionId(IDS_DESC_ENCHANTED_BOOK); Item::comparator = (new TilePlanterItem(148, Tile::comparator_off)) ->setIconName(L"comparator") ->setDescriptionId(IDS_ITEM_COMPARATOR) ->setUseDescriptionId(IDS_DESC_COMPARATOR); Item::netherbrick = (new Item(149)) ->setIconName(L"netherbrick") ->setDescriptionId(IDS_ITEM_NETHERBRICK) ->setUseDescriptionId(IDS_DESC_ITEM_NETHERBRICK); Item::netherQuartz = (new Item(150)) ->setIconName(L"netherquartz") ->setDescriptionId(IDS_ITEM_NETHER_QUARTZ) ->setUseDescriptionId(IDS_DESC_NETHER_QUARTZ); Item::minecart_tnt = (new MinecartItem(151, Minecart::TYPE_TNT)) ->setIconName(L"minecart_tnt") ->setDescriptionId(IDS_ITEM_MINECART_TNT) ->setUseDescriptionId(IDS_DESC_MINECART_TNT); Item::minecart_hopper = (new MinecartItem(152, Minecart::TYPE_HOPPER)) ->setIconName(L"minecart_hopper") ->setDescriptionId(IDS_ITEM_MINECART_HOPPER) ->setUseDescriptionId(IDS_DESC_MINECART_HOPPER); Item::horseArmorMetal = (new Item(161)) ->setIconName(L"iron_horse_armor") ->setMaxStackSize(1) ->setDescriptionId(IDS_ITEM_IRON_HORSE_ARMOR) ->setUseDescriptionId(IDS_DESC_IRON_HORSE_ARMOR); Item::horseArmorGold = (new Item(162)) ->setIconName(L"gold_horse_armor") ->setMaxStackSize(1) ->setDescriptionId(IDS_ITEM_GOLD_HORSE_ARMOR) ->setUseDescriptionId(IDS_DESC_GOLD_HORSE_ARMOR); Item::horseArmorDiamond = (new Item(163)) ->setIconName(L"diamond_horse_armor") ->setMaxStackSize(1) ->setDescriptionId(IDS_ITEM_DIAMOND_HORSE_ARMOR) ->setUseDescriptionId(IDS_DESC_DIAMOND_HORSE_ARMOR); Item::lead = (new LeashItem(164)) ->setBaseItemTypeAndMaterial(eBaseItemType_pockettool, eMaterial_undefined) ->setIconName(L"lead") ->setDescriptionId(IDS_ITEM_LEAD) ->setUseDescriptionId(IDS_DESC_LEAD); Item::nameTag = (new NameTagItem(165)) ->setIconName(L"name_tag") ->setDescriptionId(IDS_ITEM_NAME_TAG) ->setUseDescriptionId(IDS_DESC_NAME_TAG); } // 4J Stu - We need to do this after the staticCtor AND after staticCtors for // other class eg Recipes void Item::staticInit() { Stats::buildItemStats(); } _Tier::Tier(int level, int uses, float speed, float damage, int enchantmentValue) : level(level), uses(uses), speed(speed), damage(damage), enchantmentValue(enchantmentValue) {} int _Tier::getUses() const { return uses; } float _Tier::getSpeed() const { return speed; } float _Tier::getAttackDamageBonus() const { return damage; } int _Tier::getLevel() const { return level; } int _Tier::getEnchantmentValue() const { return enchantmentValue; } int _Tier::getTierItemId() const { if (this == Tier::WOOD) { return Tile::wood_Id; } else if (this == Tier::STONE) { return Tile::cobblestone_Id; } else if (this == Tier::GOLD) { return Item::goldIngot_Id; } else if (this == Tier::IRON) { return Item::ironIngot_Id; } else if (this == Tier::DIAMOND) { return Item::diamond_Id; } return 0; } Item::Item(int id) : id(256 + id) { maxStackSize = Item::MAX_STACK_SIZE; maxDamage = 0; icon = NULL; m_handEquipped = false; m_isStackedByData = false; craftingRemainingItem = NULL; potionBrewingFormula = L""; m_iMaterial = eMaterial_undefined; m_iBaseItemType = eBaseItemType_undefined; m_textureName = L""; // TODO Init this string // string descriptionId; // this->id = 256 + id; if (items[256 + id] != NULL) { app.DebugPrintf("CONFLICT @ %d", id); } items[256 + id] = this; } // 4J-PB - adding so we can class different items together for the new crafting // menu so pickaxe_stone would get tagged with pickaxe and stone Item* Item::setBaseItemTypeAndMaterial(int iType, int iMaterial) { this->m_iBaseItemType = iType; this->m_iMaterial = iMaterial; return this; } int Item::getBaseItemType() { return this->m_iBaseItemType; } int Item::getMaterial() { return this->m_iMaterial; } Item* Item::setIconName(const std::wstring& name) { m_textureName = name; return this; } std::wstring Item::getIconName() { return m_textureName; } Item* Item::setMaxStackSize(int max) { maxStackSize = max; return this; } int Item::getIconType() { return Icon::TYPE_ITEM; } Icon* Item::getIcon(int auxValue) { return icon; } Icon* Item::getIcon(std::shared_ptr itemInstance) { return getIcon(itemInstance->getAuxValue()); } bool Item::useOn(std::shared_ptr itemInstance, std::shared_ptr player, Level* level, int x, int y, int z, int face, float clickX, float clickY, float clickZ, bool bTestUseOnOnly) { return false; } float Item::getDestroySpeed(std::shared_ptr itemInstance, Tile* tile) { return 1; } bool Item::TestUse(std::shared_ptr itemInstance, Level* level, std::shared_ptr player) { return false; } std::shared_ptr Item::use( std::shared_ptr itemInstance, Level* level, std::shared_ptr player) { return itemInstance; } std::shared_ptr Item::useTimeDepleted( std::shared_ptr itemInstance, Level* level, std::shared_ptr player) { return itemInstance; } int Item::getMaxStackSize() { return maxStackSize; } int Item::getLevelDataForAuxValue(int auxValue) { return 0; } bool Item::isStackedByData() { return m_isStackedByData; } Item* Item::setStackedByData(bool isStackedByData) { this->m_isStackedByData = isStackedByData; return this; } int Item::getMaxDamage() { return maxDamage; } Item* Item::setMaxDamage(int maxDamage) { this->maxDamage = maxDamage; return this; } bool Item::canBeDepleted() { return maxDamage > 0 && !m_isStackedByData; } /** * Returns true when the item was used to deal more than default damage * * @param itemInstance * @param mob * @param attacker * @return */ bool Item::hurtEnemy(std::shared_ptr itemInstance, std::shared_ptr mob, std::shared_ptr attacker) { return false; } /** * Returns true when the item was used to mine more efficiently * * @param itemInstance * @param tile * @param x * @param y * @param z * @param owner * @return */ bool Item::mineBlock(std::shared_ptr itemInstance, Level* level, int tile, int x, int y, int z, std::shared_ptr owner) { return false; } int Item::getAttackDamage(std::shared_ptr entity) { return 1; } bool Item::canDestroySpecial(Tile* tile) { return false; } bool Item::interactEnemy(std::shared_ptr itemInstance, std::shared_ptr player, std::shared_ptr mob) { return false; } Item* Item::handEquipped() { m_handEquipped = true; return this; } bool Item::isHandEquipped() { return m_handEquipped; } bool Item::isMirroredArt() { return false; } Item* Item::setDescriptionId(unsigned int id) { this->descriptionId = id; return this; } LPCWSTR Item::getDescription() { return app.GetString(getDescriptionId()); // return I18n::get(getDescriptionId()); } LPCWSTR Item::getDescription(std::shared_ptr instance) { return app.GetString(getDescriptionId(instance)); // return I18n::get(getDescriptionId(instance)); } unsigned int Item::getDescriptionId(int iData /*= -1*/) { return descriptionId; } unsigned int Item::getDescriptionId(std::shared_ptr instance) { return descriptionId; } Item* Item::setUseDescriptionId(unsigned int id) { this->useDescriptionId = id; return this; } unsigned int Item::getUseDescriptionId() { return useDescriptionId; } unsigned int Item::getUseDescriptionId(std::shared_ptr instance) { return useDescriptionId; } Item* Item::setCraftingRemainingItem(Item* craftingRemainingItem) { this->craftingRemainingItem = craftingRemainingItem; return this; } bool Item::shouldMoveCraftingResultToInventory( std::shared_ptr instance) { // Default is good for the vast majority of items return true; } bool Item::shouldOverrideMultiplayerNBT() { return true; } Item* Item::getCraftingRemainingItem() { return craftingRemainingItem; } bool Item::hasCraftingRemainingItem() { return craftingRemainingItem != NULL; } std::wstring Item::getName() { return L""; // I18n::get(getDescriptionId() + L".name"); } int Item::getColor(std::shared_ptr item, int spriteLayer) { return 0xffffff; } void Item::inventoryTick(std::shared_ptr itemInstance, Level* level, std::shared_ptr owner, int slot, bool selected) {} void Item::onCraftedBy(std::shared_ptr itemInstance, Level* level, std::shared_ptr player) {} bool Item::isComplex() { return false; } UseAnim Item::getUseAnimation(std::shared_ptr itemInstance) { return UseAnim_none; } int Item::getUseDuration(std::shared_ptr itemInstance) { return 0; } void Item::releaseUsing(std::shared_ptr itemInstance, Level* level, std::shared_ptr player, int durationLeft) {} Item* Item::setPotionBrewingFormula(const std::wstring& potionBrewingFormula) { this->potionBrewingFormula = potionBrewingFormula; return this; } std::wstring Item::getPotionBrewingFormula() { return potionBrewingFormula; } bool Item::hasPotionBrewingFormula() { return !potionBrewingFormula.empty(); } // 4jcraft: re-added old TU18 overload for java gui void Item::appendHoverText(std::shared_ptr itemInstance, std::shared_ptr player, std::vector* lines, bool advanced, std::vector& unformattedStrings) {} void Item::appendHoverText(std::shared_ptr itemInstance, std::shared_ptr player, std::vector* lines, bool advanced) {} std::wstring Item::getHoverName(std::shared_ptr itemInstance) { // String elementName = ("" + // Language.getInstance().getElementName(getDescription(itemInstance))).trim(); // return elementName; return app.GetString(getDescriptionId(itemInstance)); } bool Item::isFoil(std::shared_ptr itemInstance) { if (itemInstance->isEnchanted()) return true; return false; } const Rarity* Item::getRarity(std::shared_ptr itemInstance) { if (itemInstance->isEnchanted()) return Rarity::rare; return Rarity::common; } bool Item::isEnchantable(std::shared_ptr itemInstance) { return getMaxStackSize() == 1 && canBeDepleted(); } HitResult* Item::getPlayerPOVHitResult(Level* level, std::shared_ptr player, bool alsoPickLiquid) { float a = 1; float xRot = player->xRotO + (player->xRot - player->xRotO) * a; float yRot = player->yRotO + (player->yRot - player->yRotO) * a; double x = player->xo + (player->x - player->xo) * a; double y = player->yo + (player->y - player->yo) * a + 1.62 - player->heightOffset; double z = player->zo + (player->z - player->zo) * a; Vec3* from = Vec3::newTemp(x, y, z); float yCos = (float)cos(-yRot * Mth::RAD_TO_GRAD - PI); float ySin = (float)sin(-yRot * Mth::RAD_TO_GRAD - PI); float xCos = (float)-cos(-xRot * Mth::RAD_TO_GRAD); float xSin = (float)sin(-xRot * Mth::RAD_TO_GRAD); float xa = ySin * xCos; float ya = xSin; float za = yCos * xCos; double range = 5; Vec3* to = from->add(xa * range, ya * range, za * range); return level->clip(from, to, alsoPickLiquid, !alsoPickLiquid); } int Item::getEnchantmentValue() { return 0; } bool Item::hasMultipleSpriteLayers() { return false; } Icon* Item::getLayerIcon(int auxValue, int spriteLayer) { return getIcon(auxValue); } bool Item::mayBePlacedInAdventureMode() { return true; } bool Item::isValidRepairItem(std::shared_ptr source, std::shared_ptr repairItem) { return false; } void Item::registerIcons(IconRegister* iconRegister) { icon = iconRegister->registerIcon(m_textureName); } attrAttrModMap* Item::getDefaultAttributeModifiers() { return new attrAttrModMap(); } /* 4J: These are necesary on the PS3. (and 4 and Vita). */ #if (defined __PS3__ || defined __ORBIS__ || defined __PSVITA__ || \ defined __linux__) const int Item::shovel_iron_Id; const int Item::pickAxe_iron_Id; const int Item::hatchet_iron_Id; const int Item::flintAndSteel_Id; const int Item::apple_Id; const int Item::bow_Id; const int Item::arrow_Id; const int Item::coal_Id; const int Item::diamond_Id; const int Item::ironIngot_Id; const int Item::goldIngot_Id; const int Item::sword_iron_Id; const int Item::sword_wood_Id; const int Item::shovel_wood_Id; const int Item::pickAxe_wood_Id; const int Item::hatchet_wood_Id; const int Item::sword_stone_Id; const int Item::shovel_stone_Id; const int Item::pickAxe_stone_Id; const int Item::hatchet_stone_Id; const int Item::sword_diamond_Id; const int Item::shovel_diamond_Id; const int Item::pickAxe_diamond_Id; const int Item::hatchet_diamond_Id; const int Item::stick_Id; const int Item::bowl_Id; const int Item::mushroomStew_Id; const int Item::sword_gold_Id; const int Item::shovel_gold_Id; const int Item::pickAxe_gold_Id; const int Item::hatchet_gold_Id; const int Item::string_Id; const int Item::feather_Id; const int Item::gunpowder_Id; const int Item::hoe_wood_Id; const int Item::hoe_stone_Id; const int Item::hoe_iron_Id; const int Item::hoe_diamond_Id; const int Item::hoe_gold_Id; const int Item::seeds_wheat_Id; const int Item::wheat_Id; const int Item::bread_Id; const int Item::helmet_leather_Id; const int Item::chestplate_leather_Id; const int Item::leggings_leather_Id; const int Item::boots_leather_Id; const int Item::helmet_chain_Id; const int Item::chestplate_chain_Id; const int Item::leggings_chain_Id; const int Item::boots_chain_Id; const int Item::helmet_iron_Id; const int Item::chestplate_iron_Id; const int Item::leggings_iron_Id; const int Item::boots_iron_Id; const int Item::helmet_diamond_Id; const int Item::chestplate_diamond_Id; const int Item::leggings_diamond_Id; const int Item::boots_diamond_Id; const int Item::helmet_gold_Id; const int Item::chestplate_gold_Id; const int Item::leggings_gold_Id; const int Item::boots_gold_Id; const int Item::flint_Id; const int Item::porkChop_raw_Id; const int Item::porkChop_cooked_Id; const int Item::painting_Id; const int Item::apple_gold_Id; const int Item::sign_Id; const int Item::door_wood_Id; const int Item::bucket_empty_Id; const int Item::bucket_water_Id; const int Item::bucket_lava_Id; const int Item::minecart_Id; const int Item::saddle_Id; const int Item::door_iron_Id; const int Item::redStone_Id; const int Item::snowBall_Id; const int Item::boat_Id; const int Item::leather_Id; const int Item::bucket_milk_Id; const int Item::brick_Id; const int Item::clay_Id; const int Item::reeds_Id; const int Item::paper_Id; const int Item::book_Id; const int Item::slimeBall_Id; const int Item::minecart_chest_Id; const int Item::minecart_furnace_Id; const int Item::egg_Id; const int Item::compass_Id; const int Item::fishingRod_Id; const int Item::clock_Id; const int Item::yellowDust_Id; const int Item::fish_raw_Id; const int Item::fish_cooked_Id; const int Item::dye_powder_Id; const int Item::bone_Id; const int Item::sugar_Id; const int Item::cake_Id; const int Item::bed_Id; const int Item::repeater_Id; const int Item::cookie_Id; const int Item::map_Id; const int Item::shears_Id; const int Item::melon_Id; const int Item::seeds_pumpkin_Id; const int Item::seeds_melon_Id; const int Item::beef_raw_Id; const int Item::beef_cooked_Id; const int Item::chicken_raw_Id; const int Item::chicken_cooked_Id; const int Item::rotten_flesh_Id; const int Item::enderPearl_Id; const int Item::blazeRod_Id; const int Item::ghastTear_Id; const int Item::goldNugget_Id; const int Item::netherwart_seeds_Id; const int Item::potion_Id; const int Item::glassBottle_Id; const int Item::spiderEye_Id; const int Item::fermentedSpiderEye_Id; const int Item::blazePowder_Id; const int Item::magmaCream_Id; const int Item::brewingStand_Id; const int Item::cauldron_Id; const int Item::eyeOfEnder_Id; const int Item::speckledMelon_Id; const int Item::spawnEgg_Id; const int Item::expBottle_Id; const int Item::skull_Id; const int Item::record_01_Id; const int Item::record_02_Id; const int Item::record_03_Id; const int Item::record_04_Id; const int Item::record_05_Id; const int Item::record_06_Id; const int Item::record_07_Id; const int Item::record_09_Id; const int Item::record_10_Id; const int Item::record_11_Id; const int Item::record_12_Id; const int Item::record_08_Id; const int Item::fireball_Id; const int Item::itemFrame_Id; const int Item::netherbrick_Id; const int Item::emerald_Id; const int Item::flowerPot_Id; const int Item::carrots_Id; const int Item::potato_Id; const int Item::potatoBaked_Id; const int Item::potatoPoisonous_Id; const int Item::carrotGolden_Id; const int Item::carrotOnAStick_Id; const int Item::pumpkinPie_Id; const int Item::enchantedBook_Id; const int Item::netherQuartz_Id; #endif