2026-03-01 12:16:08 +08:00
# include "stdafx.h"
# include "net.minecraft.locale.h"
# include "net.minecraft.world.h"
# include "net.minecraft.world.entity.h"
# include "net.minecraft.world.entity.item.h"
# include "net.minecraft.world.level.h"
# include "net.minecraft.world.level.tile.h"
# include "net.minecraft.world.item.h"
# include "net.minecraft.world.item.alchemy.h"
# include "net.minecraft.world.food.h"
# include "net.minecraft.world.effect.h"
# include "net.minecraft.stats.h"
# include "MapItem.h"
# include "Item.h"
# include "HangingEntityItem.h"
typedef Item : : Tier _Tier ;
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 : : sulphur = 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_cloth = NULL ;
ArmorItem * Item : : chestplate_cloth = NULL ;
ArmorItem * Item : : leggings_cloth = NULL ;
ArmorItem * Item : : boots_cloth = 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 : : 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 : : diode = 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 : : netherStalkSeeds = 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 : : monsterPlacer = NULL ;
Item * Item : : expBottle = NULL ;
// TU9
Item * Item : : fireball = NULL ;
Item * Item : : frame = NULL ;
Item * Item : : netherbrick = 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 ;
Item * Item : : carrotGolden = NULL ;
Item * Item : : carrotOnAStick = NULL ;
Item * Item : : pumpkinPie = NULL ;
EnchantedBookItem * Item : : enchantedBook = NULL ;
Item * Item : : netherQuartz = NULL ;
void Item : : staticCtor ( )
{
Item : : sword_wood = ( new WeaponItem ( 12 , _Tier : : WOOD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_sword , eMaterial_wood ) - > setTextureName ( L " swordWood " ) - > setDescriptionId ( IDS_ITEM_SWORD_WOOD ) - > setUseDescriptionId ( IDS_DESC_SWORD ) ;
Item : : sword_stone = ( new WeaponItem ( 16 , _Tier : : STONE ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_sword , eMaterial_stone ) - > setTextureName ( L " swordStone " ) - > setDescriptionId ( IDS_ITEM_SWORD_STONE ) - > setUseDescriptionId ( IDS_DESC_SWORD ) ;
Item : : sword_iron = ( new WeaponItem ( 11 , _Tier : : IRON ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_sword , eMaterial_iron ) - > setTextureName ( L " swordIron " ) - > setDescriptionId ( IDS_ITEM_SWORD_IRON ) - > setUseDescriptionId ( IDS_DESC_SWORD ) ;
Item : : sword_diamond = ( new WeaponItem ( 20 , _Tier : : DIAMOND ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_sword , eMaterial_diamond ) - > setTextureName ( L " swordDiamond " ) - > setDescriptionId ( IDS_ITEM_SWORD_DIAMOND ) - > setUseDescriptionId ( IDS_DESC_SWORD ) ;
Item : : sword_gold = ( new WeaponItem ( 27 , _Tier : : GOLD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_sword , eMaterial_gold ) - > setTextureName ( L " swordGold " ) - > setDescriptionId ( IDS_ITEM_SWORD_GOLD ) - > setUseDescriptionId ( IDS_DESC_SWORD ) ;
Item : : shovel_wood = ( new ShovelItem ( 13 , _Tier : : WOOD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_shovel , eMaterial_wood ) - > setTextureName ( L " shovelWood " ) - > setDescriptionId ( IDS_ITEM_SHOVEL_WOOD ) - > setUseDescriptionId ( IDS_DESC_SHOVEL ) ;
Item : : shovel_stone = ( new ShovelItem ( 17 , _Tier : : STONE ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_shovel , eMaterial_stone ) - > setTextureName ( L " shovelStone " ) - > setDescriptionId ( IDS_ITEM_SHOVEL_STONE ) - > setUseDescriptionId ( IDS_DESC_SHOVEL ) ;
Item : : shovel_iron = ( new ShovelItem ( 0 , _Tier : : IRON ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_shovel , eMaterial_iron ) - > setTextureName ( L " shovelIron " ) - > setDescriptionId ( IDS_ITEM_SHOVEL_IRON ) - > setUseDescriptionId ( IDS_DESC_SHOVEL ) ;
Item : : shovel_diamond = ( new ShovelItem ( 21 , _Tier : : DIAMOND ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_shovel , eMaterial_diamond ) - > setTextureName ( L " shovelDiamond " ) - > setDescriptionId ( IDS_ITEM_SHOVEL_DIAMOND ) - > setUseDescriptionId ( IDS_DESC_SHOVEL ) ;
Item : : shovel_gold = ( new ShovelItem ( 28 , _Tier : : GOLD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_shovel , eMaterial_gold ) - > setTextureName ( L " shovelGold " ) - > setDescriptionId ( IDS_ITEM_SHOVEL_GOLD ) - > setUseDescriptionId ( IDS_DESC_SHOVEL ) ;
Item : : pickAxe_wood = ( new PickaxeItem ( 14 , _Tier : : WOOD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_pickaxe , eMaterial_wood ) - > setTextureName ( L " pickaxeWood " ) - > setDescriptionId ( IDS_ITEM_PICKAXE_WOOD ) - > setUseDescriptionId ( IDS_DESC_PICKAXE ) ;
Item : : pickAxe_stone = ( new PickaxeItem ( 18 , _Tier : : STONE ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_pickaxe , eMaterial_stone ) - > setTextureName ( L " pickaxeStone " ) - > setDescriptionId ( IDS_ITEM_PICKAXE_STONE ) - > setUseDescriptionId ( IDS_DESC_PICKAXE ) ;
Item : : pickAxe_iron = ( new PickaxeItem ( 1 , _Tier : : IRON ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_pickaxe , eMaterial_iron ) - > setTextureName ( L " pickaxeIron " ) - > setDescriptionId ( IDS_ITEM_PICKAXE_IRON ) - > setUseDescriptionId ( IDS_DESC_PICKAXE ) ;
Item : : pickAxe_diamond = ( new PickaxeItem ( 22 , _Tier : : DIAMOND ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_pickaxe , eMaterial_diamond ) - > setTextureName ( L " pickaxeDiamond " ) - > setDescriptionId ( IDS_ITEM_PICKAXE_DIAMOND ) - > setUseDescriptionId ( IDS_DESC_PICKAXE ) ;
Item : : pickAxe_gold = ( new PickaxeItem ( 29 , _Tier : : GOLD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_pickaxe , eMaterial_gold ) - > setTextureName ( L " pickaxeGold " ) - > setDescriptionId ( IDS_ITEM_PICKAXE_GOLD ) - > setUseDescriptionId ( IDS_DESC_PICKAXE ) ;
Item : : hatchet_wood = ( new HatchetItem ( 15 , _Tier : : WOOD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hatchet , eMaterial_wood ) - > setTextureName ( L " hatchetWood " ) - > setDescriptionId ( IDS_ITEM_HATCHET_WOOD ) - > setUseDescriptionId ( IDS_DESC_HATCHET ) ;
Item : : hatchet_stone = ( new HatchetItem ( 19 , _Tier : : STONE ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hatchet , eMaterial_stone ) - > setTextureName ( L " hatchetStone " ) - > setDescriptionId ( IDS_ITEM_HATCHET_STONE ) - > setUseDescriptionId ( IDS_DESC_HATCHET ) ;
Item : : hatchet_iron = ( new HatchetItem ( 2 , _Tier : : IRON ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hatchet , eMaterial_iron ) - > setTextureName ( L " hatchetIron " ) - > setDescriptionId ( IDS_ITEM_HATCHET_IRON ) - > setUseDescriptionId ( IDS_DESC_HATCHET ) ;
Item : : hatchet_diamond = ( new HatchetItem ( 23 , _Tier : : DIAMOND ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hatchet , eMaterial_diamond ) - > setTextureName ( L " hatchetDiamond " ) - > setDescriptionId ( IDS_ITEM_HATCHET_DIAMOND ) - > setUseDescriptionId ( IDS_DESC_HATCHET ) ;
Item : : hatchet_gold = ( new HatchetItem ( 30 , _Tier : : GOLD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hatchet , eMaterial_gold ) - > setTextureName ( L " hatchetGold " ) - > setDescriptionId ( IDS_ITEM_HATCHET_GOLD ) - > setUseDescriptionId ( IDS_DESC_HATCHET ) ;
Item : : hoe_wood = ( new HoeItem ( 34 , _Tier : : WOOD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hoe , eMaterial_wood ) - > setTextureName ( L " hoeWood " ) - > setDescriptionId ( IDS_ITEM_HOE_WOOD ) - > setUseDescriptionId ( IDS_DESC_HOE ) ;
Item : : hoe_stone = ( new HoeItem ( 35 , _Tier : : STONE ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hoe , eMaterial_stone ) - > setTextureName ( L " hoeStone " ) - > setDescriptionId ( IDS_ITEM_HOE_STONE ) - > setUseDescriptionId ( IDS_DESC_HOE ) ;
Item : : hoe_iron = ( new HoeItem ( 36 , _Tier : : IRON ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hoe , eMaterial_iron ) - > setTextureName ( L " hoeIron " ) - > setDescriptionId ( IDS_ITEM_HOE_IRON ) - > setUseDescriptionId ( IDS_DESC_HOE ) ;
Item : : hoe_diamond = ( new HoeItem ( 37 , _Tier : : DIAMOND ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hoe , eMaterial_diamond ) - > setTextureName ( L " hoeDiamond " ) - > setDescriptionId ( IDS_ITEM_HOE_DIAMOND ) - > setUseDescriptionId ( IDS_DESC_HOE ) ;
Item : : hoe_gold = ( new HoeItem ( 38 , _Tier : : GOLD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_hoe , eMaterial_gold ) - > setTextureName ( L " hoeGold " ) - > setDescriptionId ( IDS_ITEM_HOE_GOLD ) - > setUseDescriptionId ( IDS_DESC_HOE ) ;
Item : : door_wood = ( new DoorItem ( 68 , Material : : wood ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_door , eMaterial_wood ) - > setTextureName ( 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 ) - > setTextureName ( L " doorIron " ) - > setDescriptionId ( IDS_ITEM_DOOR_IRON ) - > setUseDescriptionId ( IDS_DESC_DOOR_IRON ) ;
Item : : helmet_cloth = ( ArmorItem * ) ( ( new ArmorItem ( 42 , ArmorItem : : ArmorMaterial : : CLOTH , 0 , ArmorItem : : SLOT_HEAD ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_helmet , eMaterial_cloth ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( L " helmetGold " ) - > setDescriptionId ( IDS_ITEM_HELMET_GOLD ) - > setUseDescriptionId ( IDS_DESC_HELMET_GOLD ) ) ;
2026-03-02 15:58:20 +07:00
2026-03-01 12:16:08 +08:00
Item : : chestplate_cloth = ( ArmorItem * ) ( ( new ArmorItem ( 43 , ArmorItem : : ArmorMaterial : : CLOTH , 0 , ArmorItem : : SLOT_TORSO ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_chestplate , eMaterial_cloth ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( L " chestplateGold " ) - > setDescriptionId ( IDS_ITEM_CHESTPLATE_GOLD ) - > setUseDescriptionId ( IDS_DESC_CHESTPLATE_GOLD ) ) ;
2026-03-02 15:58:20 +07:00
2026-03-01 12:16:08 +08:00
Item : : leggings_cloth = ( ArmorItem * ) ( ( new ArmorItem ( 44 , ArmorItem : : ArmorMaterial : : CLOTH , 0 , ArmorItem : : SLOT_LEGS ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_leggings , eMaterial_cloth ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( L " bootsChain " ) - > setDescriptionId ( IDS_ITEM_BOOTS_CHAIN ) - > setUseDescriptionId ( IDS_DESC_BOOTS_CHAIN ) ) ;
Item : : boots_cloth = ( ArmorItem * ) ( ( new ArmorItem ( 45 , ArmorItem : : ArmorMaterial : : CLOTH , 0 , ArmorItem : : SLOT_FEET ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_boots , eMaterial_cloth ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( 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 ) - > setTextureName ( L " bootsGold " ) - > setDescriptionId ( IDS_ITEM_BOOTS_GOLD ) - > setUseDescriptionId ( IDS_DESC_BOOTS_GOLD ) ) ;
Item : : ironIngot = ( new Item ( 9 ) ) - > setTextureName ( L " ingotIron " ) - > setBaseItemTypeAndMaterial ( eBaseItemType_treasure , eMaterial_iron ) - > setDescriptionId ( IDS_ITEM_INGOT_IRON ) - > setUseDescriptionId ( IDS_DESC_INGOT ) ;
Item : : goldIngot = ( new Item ( 10 ) ) - > setTextureName ( 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 ) - > setTextureName ( L " bucket " ) - > setDescriptionId ( IDS_ITEM_BUCKET ) - > setUseDescriptionId ( IDS_DESC_BUCKET ) - > setMaxStackSize ( 16 ) ;
Item : : bowl = ( new Item ( 25 ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_utensil , eMaterial_wood ) - > setTextureName ( L " bowl " ) - > setDescriptionId ( IDS_ITEM_BOWL ) - > setUseDescriptionId ( IDS_DESC_BOWL ) - > setMaxStackSize ( 64 ) ;
2026-03-02 15:58:20 +07:00
2026-03-01 12:16:08 +08:00
Item : : bucket_water = ( new BucketItem ( 70 , Tile : : water_Id ) ) - > setTextureName ( 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 ) ) - > setTextureName ( L " bucketLava " ) - > setDescriptionId ( IDS_ITEM_BUCKET_LAVA ) - > setCraftingRemainingItem ( Item : : bucket_empty ) - > setUseDescriptionId ( IDS_DESC_BUCKET_LAVA ) ;
Item : : milk = ( new MilkBucketItem ( 79 ) ) - > setTextureName ( L " milk " ) - > setDescriptionId ( IDS_ITEM_BUCKET_MILK ) - > setCraftingRemainingItem ( Item : : bucket_empty ) - > setUseDescriptionId ( IDS_DESC_BUCKET_MILK ) ;
Item : : bow = ( BowItem * ) ( new BowItem ( 5 ) ) - > setTextureName ( L " bow " ) - > setBaseItemTypeAndMaterial ( eBaseItemType_bow , eMaterial_bow ) - > setDescriptionId ( IDS_ITEM_BOW ) - > setUseDescriptionId ( IDS_DESC_BOW ) ;
Item : : arrow = ( new Item ( 6 ) ) - > setTextureName ( L " arrow " ) - > setBaseItemTypeAndMaterial ( eBaseItemType_bow , eMaterial_arrow ) - > setDescriptionId ( IDS_ITEM_ARROW ) - > setUseDescriptionId ( IDS_DESC_ARROW ) ;
2026-03-02 15:58:20 +07:00
2026-03-01 12:16:08 +08:00
Item : : compass = ( new CompassItem ( 89 ) ) - > setTextureName ( L " compass " ) - > setBaseItemTypeAndMaterial ( eBaseItemType_pockettool , eMaterial_compass ) - > setDescriptionId ( IDS_ITEM_COMPASS ) - > setUseDescriptionId ( IDS_DESC_COMPASS ) ;
Item : : clock = ( new ClockItem ( 91 ) ) - > setTextureName ( L " clock " ) - > setBaseItemTypeAndMaterial ( eBaseItemType_pockettool , eMaterial_clock ) - > setDescriptionId ( IDS_ITEM_CLOCK ) - > setUseDescriptionId ( IDS_DESC_CLOCK ) ;
Item : : map = ( MapItem * ) ( new MapItem ( 102 ) ) - > setTextureName ( L " map " ) - > setBaseItemTypeAndMaterial ( eBaseItemType_pockettool , eMaterial_map ) - > setDescriptionId ( IDS_ITEM_MAP ) - > setUseDescriptionId ( IDS_DESC_MAP ) ;
Item : : flintAndSteel = ( new FlintAndSteelItem ( 3 ) ) - > setTextureName ( 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 ) ) - > setTextureName ( L " apple " ) - > setDescriptionId ( IDS_ITEM_APPLE ) - > setUseDescriptionId ( IDS_DESC_APPLE ) ;
Item : : coal = ( new CoalItem ( 7 ) ) - > setTextureName ( L " coal " ) - > setDescriptionId ( IDS_ITEM_COAL ) - > setUseDescriptionId ( IDS_DESC_COAL ) ;
Item : : diamond = ( new Item ( 8 ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_treasure , eMaterial_diamond ) - > setTextureName ( L " diamond " ) - > setDescriptionId ( IDS_ITEM_DIAMOND ) - > setUseDescriptionId ( IDS_DESC_DIAMONDS ) ;
Item : : stick = ( new Item ( 24 ) ) - > setTextureName ( L " stick " ) - > handEquipped ( ) - > setDescriptionId ( IDS_ITEM_STICK ) - > setUseDescriptionId ( IDS_DESC_STICK ) ;
Item : : mushroomStew = ( new BowlFoodItem ( 26 , 6 ) ) - > setTextureName ( L " mushroomStew " ) - > setDescriptionId ( IDS_ITEM_MUSHROOM_STEW ) - > setUseDescriptionId ( IDS_DESC_MUSHROOMSTEW ) ;
Item : : string = ( new TilePlanterItem ( 31 , Tile : : tripWire ) ) - > setTextureName ( L " string " ) - > setDescriptionId ( IDS_ITEM_STRING ) - > setUseDescriptionId ( IDS_DESC_STRING ) ;
Item : : feather = ( new Item ( 32 ) ) - > setTextureName ( L " feather " ) - > setDescriptionId ( IDS_ITEM_FEATHER ) - > setUseDescriptionId ( IDS_DESC_FEATHER ) ;
Item : : sulphur = ( new Item ( 33 ) ) - > setTextureName ( L " sulphur " ) - > setDescriptionId ( IDS_ITEM_SULPHUR ) - > setUseDescriptionId ( IDS_DESC_SULPHUR ) - > setPotionBrewingFormula ( PotionBrewing : : MOD_GUNPOWDER ) ;
Item : : seeds_wheat = ( new SeedItem ( 39 , Tile : : crops_Id , Tile : : farmland_Id ) ) - > setTextureName ( L " seeds " ) - > setDescriptionId ( IDS_ITEM_WHEAT_SEEDS ) - > setUseDescriptionId ( IDS_DESC_WHEAT_SEEDS ) ;
Item : : wheat = ( new Item ( 40 ) ) - > setTextureName ( L " wheat " ) - > setDescriptionId ( IDS_ITEM_WHEAT ) - > setUseDescriptionId ( IDS_DESC_WHEAT ) ;
Item : : bread = ( new FoodItem ( 41 , 5 , FoodConstants : : FOOD_SATURATION_NORMAL , false ) ) - > setTextureName ( L " bread " ) - > setDescriptionId ( IDS_ITEM_BREAD ) - > setUseDescriptionId ( IDS_DESC_BREAD ) ;
Item : : flint = ( new Item ( 62 ) ) - > setTextureName ( L " flint " ) - > setDescriptionId ( IDS_ITEM_FLINT ) - > setUseDescriptionId ( IDS_DESC_FLINT ) ;
Item : : porkChop_raw = ( new FoodItem ( 63 , 3 , FoodConstants : : FOOD_SATURATION_LOW , true ) ) - > setTextureName ( L " porkchopRaw " ) - > setDescriptionId ( IDS_ITEM_PORKCHOP_RAW ) - > setUseDescriptionId ( IDS_DESC_PORKCHOP_RAW ) ;
Item : : porkChop_cooked = ( new FoodItem ( 64 , 8 , FoodConstants : : FOOD_SATURATION_GOOD , true ) ) - > setTextureName ( L " porkchopCooked " ) - > setDescriptionId ( IDS_ITEM_PORKCHOP_COOKED ) - > setUseDescriptionId ( IDS_DESC_PORKCHOP_COOKED ) ;
Item : : painting = ( new HangingEntityItem ( 65 , eTYPE_PAINTING ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_HangingItem , eMaterial_cloth ) - > setTextureName ( 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 , 0 , 1.0f )
- > setBaseItemTypeAndMaterial ( eBaseItemType_giltFruit , eMaterial_apple ) - > setTextureName ( L " appleGold " ) - > setDescriptionId ( IDS_ITEM_APPLE_GOLD ) ; //->setUseDescriptionId(IDS_DESC_GOLDENAPPLE);
Item : : sign = ( new SignItem ( 67 ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_HangingItem , eMaterial_wood ) - > setTextureName ( L " sign " ) - > setDescriptionId ( IDS_ITEM_SIGN ) - > setUseDescriptionId ( IDS_DESC_SIGN ) ;
2026-03-02 15:58:20 +07:00
2026-03-01 12:16:08 +08:00
Item : : minecart = ( new MinecartItem ( 72 , Minecart : : RIDEABLE ) ) - > setTextureName ( L " minecart " ) - > setDescriptionId ( IDS_ITEM_MINECART ) - > setUseDescriptionId ( IDS_DESC_MINECART ) ;
Item : : saddle = ( new SaddleItem ( 73 ) ) - > setTextureName ( L " saddle " ) - > setDescriptionId ( IDS_ITEM_SADDLE ) - > setUseDescriptionId ( IDS_DESC_SADDLE ) ;
Item : : redStone = ( new RedStoneItem ( 75 ) ) - > setTextureName ( L " redstone " ) - > setDescriptionId ( IDS_ITEM_REDSTONE ) - > setUseDescriptionId ( IDS_DESC_REDSTONE_DUST ) - > setPotionBrewingFormula ( PotionBrewing : : MOD_REDSTONE ) ;
Item : : snowBall = ( new SnowballItem ( 76 ) ) - > setTextureName ( L " snowball " ) - > setDescriptionId ( IDS_ITEM_SNOWBALL ) - > setUseDescriptionId ( IDS_DESC_SNOWBALL ) ;
Item : : boat = ( new BoatItem ( 77 ) ) - > setTextureName ( L " boat " ) - > setDescriptionId ( IDS_ITEM_BOAT ) - > setUseDescriptionId ( IDS_DESC_BOAT ) ;
Item : : leather = ( new Item ( 78 ) ) - > setTextureName ( L " leather " ) - > setDescriptionId ( IDS_ITEM_LEATHER ) - > setUseDescriptionId ( IDS_DESC_LEATHER ) ;
Item : : brick = ( new Item ( 80 ) ) - > setTextureName ( L " brick " ) - > setDescriptionId ( IDS_ITEM_BRICK ) - > setUseDescriptionId ( IDS_DESC_BRICK ) ;
Item : : clay = ( new Item ( 81 ) ) - > setTextureName ( L " clay " ) - > setDescriptionId ( IDS_ITEM_CLAY ) - > setUseDescriptionId ( IDS_DESC_CLAY ) ;
Item : : reeds = ( new TilePlanterItem ( 82 , Tile : : reeds ) ) - > setTextureName ( L " reeds " ) - > setDescriptionId ( IDS_ITEM_REEDS ) - > setUseDescriptionId ( IDS_DESC_REEDS ) ;
Item : : paper = ( new Item ( 83 ) ) - > setTextureName ( L " paper " ) - > setDescriptionId ( IDS_ITEM_PAPER ) - > setUseDescriptionId ( IDS_DESC_PAPER ) ;
Item : : book = ( new BookItem ( 84 ) ) - > setTextureName ( L " book " ) - > setDescriptionId ( IDS_ITEM_BOOK ) - > setUseDescriptionId ( IDS_DESC_BOOK ) ;
Item : : slimeBall = ( new Item ( 85 ) ) - > setTextureName ( L " slimeball " ) - > setDescriptionId ( IDS_ITEM_SLIMEBALL ) - > setUseDescriptionId ( IDS_DESC_SLIMEBALL ) ;
Item : : minecart_chest = ( new MinecartItem ( 86 , Minecart : : CHEST ) ) - > setTextureName ( L " minecartChest " ) - > setDescriptionId ( IDS_ITEM_MINECART_CHEST ) - > setUseDescriptionId ( IDS_DESC_MINECARTWITHCHEST ) ;
Item : : minecart_furnace = ( new MinecartItem ( 87 , Minecart : : FURNACE ) ) - > setTextureName ( L " minecartFurnace " ) - > setDescriptionId ( IDS_ITEM_MINECART_FURNACE ) - > setUseDescriptionId ( IDS_DESC_MINECARTWITHFURNACE ) ;
Item : : egg = ( new EggItem ( 88 ) ) - > setTextureName ( L " egg " ) - > setDescriptionId ( IDS_ITEM_EGG ) - > setUseDescriptionId ( IDS_DESC_EGG ) ;
Item : : fishingRod = ( FishingRodItem * ) ( new FishingRodItem ( 90 ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_rod , eMaterial_wood ) - > setTextureName ( L " fishingRod " ) - > setDescriptionId ( IDS_ITEM_FISHING_ROD ) - > setUseDescriptionId ( IDS_DESC_FISHINGROD ) ;
Item : : yellowDust = ( new Item ( 92 ) ) - > setTextureName ( 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 ) ) - > setTextureName ( L " fishRaw " ) - > setDescriptionId ( IDS_ITEM_FISH_RAW ) - > setUseDescriptionId ( IDS_DESC_FISH_RAW ) ;
Item : : fish_cooked = ( new FoodItem ( 94 , 5 , FoodConstants : : FOOD_SATURATION_NORMAL , false ) ) - > setTextureName ( L " fishCooked " ) - > setDescriptionId ( IDS_ITEM_FISH_COOKED ) - > setUseDescriptionId ( IDS_DESC_FISH_COOKED ) ;
Item : : dye_powder = ( new DyePowderItem ( 95 ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_dyepowder , eMaterial_dye ) - > setTextureName ( L " dyePowder " ) - > setDescriptionId ( IDS_ITEM_DYE_POWDER ) - > setUseDescriptionId ( - 1 ) ;
Item : : bone = ( new Item ( 96 ) ) - > setTextureName ( L " bone " ) - > setDescriptionId ( IDS_ITEM_BONE ) - > handEquipped ( ) - > setUseDescriptionId ( IDS_DESC_BONE ) ;
Item : : sugar = ( new Item ( 97 ) ) - > setTextureName ( 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 ) ) - > setTextureName ( L " cake " ) - > setDescriptionId ( IDS_ITEM_CAKE ) - > setUseDescriptionId ( IDS_DESC_CAKE ) ;
Item : : bed = ( new BedItem ( 99 ) ) - > setMaxStackSize ( 1 ) - > setTextureName ( L " bed " ) - > setDescriptionId ( IDS_ITEM_BED ) - > setUseDescriptionId ( IDS_DESC_BED ) ;
Item : : diode = ( new TilePlanterItem ( 100 , ( Tile * ) Tile : : diode_off ) ) - > setTextureName ( L " diode " ) - > setDescriptionId ( IDS_ITEM_DIODE ) - > setUseDescriptionId ( IDS_DESC_REDSTONEREPEATER ) ;
Item : : cookie = ( new FoodItem ( 101 , 2 , FoodConstants : : FOOD_SATURATION_POOR , false ) ) - > setTextureName ( L " cookie " ) - > setDescriptionId ( IDS_ITEM_COOKIE ) - > setUseDescriptionId ( IDS_DESC_COOKIE ) ;
2026-03-02 15:58:20 +07:00
Item : : shears = ( ShearsItem * ) ( new ShearsItem ( 103 ) ) - > setTextureName ( L " shears " ) - > setBaseItemTypeAndMaterial ( eBaseItemType_devicetool , eMaterial_shears ) - > setDescriptionId ( IDS_ITEM_SHEARS ) - > setUseDescriptionId ( IDS_DESC_SHEARS ) ;
2026-03-01 12:16:08 +08:00
Item : : melon = ( new FoodItem ( 104 , 2 , FoodConstants : : FOOD_SATURATION_LOW , false ) ) - > setTextureName ( L " melon " ) - > setDescriptionId ( IDS_ITEM_MELON_SLICE ) - > setUseDescriptionId ( IDS_DESC_MELON_SLICE ) ;
Item : : seeds_pumpkin = ( new SeedItem ( 105 , Tile : : pumpkinStem_Id , Tile : : farmland_Id ) ) - > setTextureName ( 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 ) ) - > setTextureName ( 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 ) ) - > setTextureName ( L " beefRaw " ) - > setDescriptionId ( IDS_ITEM_BEEF_RAW ) - > setUseDescriptionId ( IDS_DESC_BEEF_RAW ) ;
Item : : beef_cooked = ( new FoodItem ( 108 , 8 , FoodConstants : : FOOD_SATURATION_GOOD , true ) ) - > setTextureName ( 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 ) - > setTextureName ( L " chickenRaw " ) - > setDescriptionId ( IDS_ITEM_CHICKEN_RAW ) - > setUseDescriptionId ( IDS_DESC_CHICKEN_RAW ) ;
Item : : chicken_cooked = ( new FoodItem ( 110 , 6 , FoodConstants : : FOOD_SATURATION_NORMAL , true ) ) - > setTextureName ( 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 ) - > setTextureName ( L " rottenFlesh " ) - > setDescriptionId ( IDS_ITEM_ROTTEN_FLESH ) - > setUseDescriptionId ( IDS_DESC_ROTTEN_FLESH ) ;
Item : : enderPearl = ( new EnderpearlItem ( 112 ) ) - > setTextureName ( L " enderPearl " ) - > setDescriptionId ( IDS_ITEM_ENDER_PEARL ) - > setUseDescriptionId ( IDS_DESC_ENDER_PEARL ) ;
Item : : blazeRod = ( new Item ( 113 ) ) - > setTextureName ( L " blazeRod " ) - > setDescriptionId ( IDS_ITEM_BLAZE_ROD ) - > setUseDescriptionId ( IDS_DESC_BLAZE_ROD ) - > handEquipped ( ) ;
Item : : ghastTear = ( new Item ( 114 ) ) - > setTextureName ( 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 ) - > setTextureName ( L " goldNugget " ) - > setDescriptionId ( IDS_ITEM_GOLD_NUGGET ) - > setUseDescriptionId ( IDS_DESC_GOLD_NUGGET ) ;
Item : : netherStalkSeeds = ( new SeedItem ( 116 , Tile : : netherStalk_Id , Tile : : hellSand_Id ) ) - > setTextureName ( L " netherStalkSeeds " ) - > setDescriptionId ( IDS_ITEM_NETHER_STALK_SEEDS ) - > setUseDescriptionId ( IDS_DESC_NETHER_STALK_SEEDS ) - > setPotionBrewingFormula ( PotionBrewing : : MOD_NETHERWART ) ;
Item : : potion = ( PotionItem * ) ( ( new PotionItem ( 117 ) ) - > setTextureName ( L " potion " ) - > setDescriptionId ( IDS_ITEM_POTION ) - > setUseDescriptionId ( IDS_DESC_POTION ) ) ;
Item : : glassBottle = ( new BottleItem ( 118 ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_utensil , eMaterial_glass ) - > setTextureName ( 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 ) - > setTextureName ( L " spiderEye " ) - > setDescriptionId ( IDS_ITEM_SPIDER_EYE ) - > setUseDescriptionId ( IDS_DESC_SPIDER_EYE ) - > setPotionBrewingFormula ( PotionBrewing : : MOD_SPIDEREYE ) ;
Item : : fermentedSpiderEye = ( new Item ( 120 ) ) - > setTextureName ( L " fermentedSpiderEye " ) - > setDescriptionId ( IDS_ITEM_FERMENTED_SPIDER_EYE ) - > setUseDescriptionId ( IDS_DESC_FERMENTED_SPIDER_EYE ) - > setPotionBrewingFormula ( PotionBrewing : : MOD_FERMENTEDEYE ) ;
Item : : blazePowder = ( new Item ( 121 ) ) - > setTextureName ( L " blazePowder " ) - > setDescriptionId ( IDS_ITEM_BLAZE_POWDER ) - > setUseDescriptionId ( IDS_DESC_BLAZE_POWDER ) - > setPotionBrewingFormula ( PotionBrewing : : MOD_BLAZEPOWDER ) ;
Item : : magmaCream = ( new Item ( 122 ) ) - > setTextureName ( 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 ) - > setTextureName ( L " brewingStand " ) - > setDescriptionId ( IDS_ITEM_BREWING_STAND ) - > setUseDescriptionId ( IDS_DESC_BREWING_STAND ) ;
Item : : cauldron = ( new TilePlanterItem ( 124 , Tile : : cauldron ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_utensil , eMaterial_iron ) - > setTextureName ( L " cauldron " ) - > setDescriptionId ( IDS_ITEM_CAULDRON ) - > setUseDescriptionId ( IDS_DESC_CAULDRON ) ;
Item : : eyeOfEnder = ( new EnderEyeItem ( 125 ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_pockettool , eMaterial_ender ) - > setTextureName ( L " eyeOfEnder " ) - > setDescriptionId ( IDS_ITEM_EYE_OF_ENDER ) - > setUseDescriptionId ( IDS_DESC_EYE_OF_ENDER ) ;
Item : : speckledMelon = ( new Item ( 126 ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_giltFruit , eMaterial_melon ) - > setTextureName ( L " speckledMelon " ) - > setDescriptionId ( IDS_ITEM_SPECKLED_MELON ) - > setUseDescriptionId ( IDS_DESC_SPECKLED_MELON ) - > setPotionBrewingFormula ( PotionBrewing : : MOD_SPECKLEDMELON ) ;
Item : : monsterPlacer = ( new MonsterPlacerItem ( 127 ) ) - > setTextureName ( L " monsterPlacer " ) - > setDescriptionId ( IDS_ITEM_MONSTER_SPAWNER ) - > setUseDescriptionId ( IDS_DESC_MONSTER_SPAWNER ) ;
// 4J Stu - Brought this forward
Item : : expBottle = ( new ExperienceItem ( 128 ) ) - > setTextureName ( L " expBottle " ) - > setDescriptionId ( IDS_ITEM_EXP_BOTTLE ) - > setUseDescriptionId ( IDS_DESC_EXP_BOTTLE ) ;
Item : : record_01 = ( new RecordingItem ( 2000 , L " 13 " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_01 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_02 = ( new RecordingItem ( 2001 , L " cat " ) ) - > setTextureName ( 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 " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_03 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_04 = ( new RecordingItem ( 2003 , L " chirp " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_04 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_05 = ( new RecordingItem ( 2004 , L " far " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_05 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_06 = ( new RecordingItem ( 2005 , L " mall " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_06 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_07 = ( new RecordingItem ( 2006 , L " mellohi " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_07 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_09 = ( new RecordingItem ( 2007 , L " stal " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_08 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_10 = ( new RecordingItem ( 2008 , L " strad " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_09 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_11 = ( new RecordingItem ( 2009 , L " ward " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_10 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_12 = ( new RecordingItem ( 2010 , L " 11 " ) ) - > setTextureName ( L " record " ) - > setDescriptionId ( IDS_ITEM_RECORD_11 ) - > setUseDescriptionId ( IDS_DESC_RECORD ) ;
Item : : record_08 = ( new RecordingItem ( 2011 , L " where are we now " ) ) - > setTextureName ( 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 ) - > setTextureName ( L " fireball " ) - > setDescriptionId ( IDS_ITEM_FIREBALL ) - > setUseDescriptionId ( IDS_DESC_FIREBALL ) ;
Item : : frame = ( new HangingEntityItem ( 133 , eTYPE_ITEM_FRAME ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_HangingItem , eMaterial_glass ) - > setTextureName ( L " frame " ) - > setDescriptionId ( IDS_ITEM_ITEMFRAME ) - > setUseDescriptionId ( IDS_DESC_ITEMFRAME ) ;
Item : : netherbrick = ( new Item ( 149 ) ) - > setTextureName ( L " netherbrick " ) - > setDescriptionId ( IDS_ITEM_NETHERBRICK ) - > setUseDescriptionId ( IDS_DESC_ITEM_NETHERBRICK ) ;
// TU12
Item : : skull = ( new SkullItem ( 141 ) ) - > setTextureName ( 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 ) - > setTextureName ( L " emerald " ) - > setDescriptionId ( IDS_ITEM_EMERALD ) - > setUseDescriptionId ( IDS_DESC_EMERALD ) ;
Item : : flowerPot = ( new TilePlanterItem ( 134 , Tile : : flowerPot ) ) - > setTextureName ( 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 ) ) - > setTextureName ( 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 ) ) - > setTextureName ( L " potato " ) - > setDescriptionId ( IDS_POTATO ) - > setUseDescriptionId ( IDS_DESC_POTATO ) ;
Item : : potatoBaked = ( new FoodItem ( 137 , 6 , FoodConstants : : FOOD_SATURATION_NORMAL , false ) ) - > setTextureName ( 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 ) - > setTextureName ( L " potatoPoisonous " ) - > setDescriptionId ( IDS_ITEM_POTATO_POISONOUS ) - > setUseDescriptionId ( IDS_DESC_POTATO_POISONOUS ) ;
Item : : carrotGolden = ( new FoodItem ( 140 , 6 , FoodConstants : : FOOD_SATURATION_SUPERNATURAL , false ) ) - > setBaseItemTypeAndMaterial ( eBaseItemType_giltFruit , eMaterial_carrot ) - > setTextureName ( 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 ) - > setTextureName ( L " carrotOnAStick " ) - > setDescriptionId ( IDS_ITEM_CARROT_ON_A_STICK ) - > setUseDescriptionId ( IDS_DESC_CARROT_ON_A_STICK ) ;
Item : : pumpkinPie = ( new FoodItem ( 144 , 8 , FoodConstants : : FOOD_SATURATION_LOW , false ) ) - > setTextureName ( L " pumpkinPie " ) - > setDescriptionId ( IDS_ITEM_PUMPKIN_PIE ) - > setUseDescriptionId ( IDS_DESC_PUMPKIN_PIE ) ;
EnchantedBookItem : : enchantedBook = ( EnchantedBookItem * ) ( new EnchantedBookItem ( 147 ) ) - > setMaxStackSize ( 1 ) - > setTextureName ( L " enchantedBook " ) - > setDescriptionId ( IDS_ITEM_ENCHANTED_BOOK ) - > setUseDescriptionId ( IDS_DESC_ENCHANTED_BOOK ) ;
Item : : netherQuartz = ( new Item ( 150 ) ) - > setTextureName ( L " netherquartz " ) - > setDescriptionId ( IDS_ITEM_NETHER_QUARTZ ) - > setUseDescriptionId ( IDS_DESC_NETHER_QUARTZ ) ;
}
// 4J Stu - We need to do this after the staticCtor AND after staticCtors for other class
// eg Recipes
void Item : : staticInit ( )
{
Stats : : buildItemStats ( ) ;
2026-03-02 15:58:20 +07:00
}
2026-03-01 12:16:08 +08:00
_Tier : : Tier ( int level , int uses , float speed , int 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 ;
}
int _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 : : stoneBrick_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 : : setTextureName ( const wstring & name )
{
m_textureName = name ;
return this ;
}
Item * Item : : setMaxStackSize ( int max )
{
maxStackSize = max ;
return this ;
}
int Item : : getIconType ( )
{
return Icon : : TYPE_ITEM ;
}
Icon * Item : : getIcon ( int auxValue )
{
return icon ;
}
2026-03-02 15:58:20 +07:00
Icon * Item : : getIcon ( std : : shared_ptr < ItemInstance > itemInstance )
2026-03-01 12:16:08 +08:00
{
return getIcon ( itemInstance - > getAuxValue ( ) ) ;
}
2026-03-02 15:58:20 +07:00
const bool Item : : useOn ( std : : shared_ptr < ItemInstance > itemInstance , Level * level , int x , int y , int z , int face , bool bTestUseOnOnly )
2026-03-01 12:16:08 +08:00
{
return false ;
}
2026-03-02 15:58:20 +07:00
bool Item : : useOn ( std : : shared_ptr < ItemInstance > itemInstance , std : : shared_ptr < Player > player , Level * level , int x , int y , int z , int face , float clickX , float clickY , float clickZ , bool bTestUseOnOnly )
2026-03-01 12:16:08 +08:00
{
return false ;
}
2026-03-02 15:58:20 +07:00
float Item : : getDestroySpeed ( std : : shared_ptr < ItemInstance > itemInstance , Tile * tile )
2026-03-01 12:16:08 +08:00
{
return 1 ;
}
2026-03-02 15:58:20 +07:00
bool Item : : TestUse ( Level * level , std : : shared_ptr < Player > player )
2026-03-01 12:16:08 +08:00
{
return false ;
}
2026-03-02 15:58:20 +07:00
std : : shared_ptr < ItemInstance > Item : : use ( std : : shared_ptr < ItemInstance > itemInstance , Level * level , std : : shared_ptr < Player > player )
2026-03-01 12:16:08 +08:00
{
return itemInstance ;
}
2026-03-02 15:58:20 +07:00
std : : shared_ptr < ItemInstance > Item : : useTimeDepleted ( std : : shared_ptr < ItemInstance > itemInstance , Level * level , std : : shared_ptr < Player > player )
2026-03-01 12:16:08 +08:00
{
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
2026-03-02 15:58:20 +07:00
*
2026-03-01 12:16:08 +08:00
* @ param itemInstance
* @ param mob
* @ param attacker
* @ return
*/
2026-03-02 15:58:20 +07:00
bool Item : : hurtEnemy ( std : : shared_ptr < ItemInstance > itemInstance , std : : shared_ptr < Mob > mob , std : : shared_ptr < Mob > attacker )
2026-03-01 12:16:08 +08:00
{
return false ;
}
/**
* Returns true when the item was used to mine more efficiently
2026-03-02 15:58:20 +07:00
*
2026-03-01 12:16:08 +08:00
* @ param itemInstance
* @ param tile
* @ param x
* @ param y
* @ param z
* @ param owner
* @ return
*/
2026-03-02 15:58:20 +07:00
bool Item : : mineBlock ( std : : shared_ptr < ItemInstance > itemInstance , Level * level , int tile , int x , int y , int z , std : : shared_ptr < Mob > owner )
2026-03-01 12:16:08 +08:00
{
return false ;
}
2026-03-02 15:58:20 +07:00
int Item : : getAttackDamage ( std : : shared_ptr < Entity > entity )
2026-03-01 12:16:08 +08:00
{
return 1 ;
}
bool Item : : canDestroySpecial ( Tile * tile )
{
return false ;
}
2026-03-02 15:58:20 +07:00
bool Item : : interactEnemy ( std : : shared_ptr < ItemInstance > itemInstance , std : : shared_ptr < Mob > mob )
2026-03-01 12:16:08 +08:00
{
return false ;
}
Item * Item : : handEquipped ( )
{
this - > 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());
}
2026-03-02 15:58:20 +07:00
LPCWSTR Item : : getDescription ( std : : shared_ptr < ItemInstance > instance )
2026-03-01 12:16:08 +08:00
{
return app . GetString ( getDescriptionId ( instance ) ) ;
//return I18n::get(getDescriptionId(instance));
}
unsigned int Item : : getDescriptionId ( int iData /*= -1*/ )
{
return descriptionId ;
}
2026-03-02 15:58:20 +07:00
unsigned int Item : : getDescriptionId ( std : : shared_ptr < ItemInstance > instance )
2026-03-01 12:16:08 +08:00
{
return descriptionId ;
}
Item * Item : : setUseDescriptionId ( unsigned int id )
{
this - > useDescriptionId = id ;
return this ;
}
unsigned int Item : : getUseDescriptionId ( )
{
return useDescriptionId ;
}
2026-03-02 15:58:20 +07:00
unsigned int Item : : getUseDescriptionId ( std : : shared_ptr < ItemInstance > instance )
2026-03-01 12:16:08 +08:00
{
return useDescriptionId ;
}
Item * Item : : setCraftingRemainingItem ( Item * craftingRemainingItem )
{
this - > craftingRemainingItem = craftingRemainingItem ;
return this ;
}
2026-03-02 15:58:20 +07:00
bool Item : : shouldMoveCraftingResultToInventory ( std : : shared_ptr < ItemInstance > instance )
2026-03-01 12:16:08 +08:00
{
// 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 ;
}
wstring Item : : getName ( )
{
return L " " ; //I18n::get(getDescriptionId() + L".name");
}
2026-03-02 15:58:20 +07:00
int Item : : getColor ( std : : shared_ptr < ItemInstance > item , int spriteLayer )
2026-03-01 12:16:08 +08:00
{
return 0xffffff ;
}
2026-03-02 15:58:20 +07:00
void Item : : inventoryTick ( std : : shared_ptr < ItemInstance > itemInstance , Level * level , std : : shared_ptr < Entity > owner , int slot , bool selected ) {
2026-03-01 12:16:08 +08:00
}
2026-03-02 15:58:20 +07:00
void Item : : onCraftedBy ( std : : shared_ptr < ItemInstance > itemInstance , Level * level , std : : shared_ptr < Player > player )
2026-03-01 12:16:08 +08:00
{
}
bool Item : : isComplex ( )
{
return false ;
}
2026-03-02 15:58:20 +07:00
UseAnim Item : : getUseAnimation ( std : : shared_ptr < ItemInstance > itemInstance )
2026-03-01 12:16:08 +08:00
{
return UseAnim_none ;
}
2026-03-02 15:58:20 +07:00
int Item : : getUseDuration ( std : : shared_ptr < ItemInstance > itemInstance )
2026-03-01 12:16:08 +08:00
{
return 0 ;
}
2026-03-02 15:58:20 +07:00
void Item : : releaseUsing ( std : : shared_ptr < ItemInstance > itemInstance , Level * level , std : : shared_ptr < Player > player , int durationLeft )
2026-03-01 12:16:08 +08:00
{
}
Item * Item : : setPotionBrewingFormula ( const wstring & potionBrewingFormula )
{
this - > potionBrewingFormula = potionBrewingFormula ;
return this ;
}
wstring Item : : getPotionBrewingFormula ( )
{
return potionBrewingFormula ;
}
bool Item : : hasPotionBrewingFormula ( )
{
return ! potionBrewingFormula . empty ( ) ;
}
2026-03-02 15:58:20 +07:00
void Item : : appendHoverText ( std : : shared_ptr < ItemInstance > itemInstance , std : : shared_ptr < Player > player , vector < wstring > * lines , bool advanced , vector < wstring > & unformattedStrings )
2026-03-01 12:16:08 +08:00
{
}
2026-03-02 15:58:20 +07:00
wstring Item : : getHoverName ( std : : shared_ptr < ItemInstance > itemInstance )
2026-03-01 12:16:08 +08:00
{
//String elementName = ("" + Language.getInstance().getElementName(getDescription(itemInstance))).trim();
//return elementName;
return app . GetString ( getDescriptionId ( itemInstance ) ) ;
}
2026-03-02 15:58:20 +07:00
bool Item : : isFoil ( std : : shared_ptr < ItemInstance > itemInstance )
2026-03-01 12:16:08 +08:00
{
if ( itemInstance - > isEnchanted ( ) ) return true ;
return false ;
}
2026-03-02 15:58:20 +07:00
const Rarity * Item : : getRarity ( std : : shared_ptr < ItemInstance > itemInstance )
2026-03-01 12:16:08 +08:00
{
if ( itemInstance - > isEnchanted ( ) ) return Rarity : : rare ;
return Rarity : : common ;
}
2026-03-02 15:58:20 +07:00
bool Item : : isEnchantable ( std : : shared_ptr < ItemInstance > itemInstance )
2026-03-01 12:16:08 +08:00
{
return getMaxStackSize ( ) = = 1 & & canBeDepleted ( ) ;
}
2026-03-02 15:58:20 +07:00
HitResult * Item : : getPlayerPOVHitResult ( Level * level , std : : shared_ptr < Player > player , bool alsoPickLiquid )
2026-03-01 12:16:08 +08:00
{
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 ) ;
}
2026-03-02 15:58:20 +07:00
bool Item : : isValidRepairItem ( std : : shared_ptr < ItemInstance > source , std : : shared_ptr < ItemInstance > repairItem )
2026-03-01 12:16:08 +08:00
{
return false ;
}
void Item : : registerIcons ( IconRegister * iconRegister )
{
icon = iconRegister - > registerIcon ( m_textureName ) ;
}
/*
4 J : These are necesary on the PS3 .
( and 4 and Vita ) .
*/
# if (defined __PS3__ || defined __ORBIS__ || defined __PSVITA__)
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 : : sulphur_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_cloth_Id ;
const int Item : : chestplate_cloth_Id ;
const int Item : : leggings_cloth_Id ;
const int Item : : boots_cloth_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 : : 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 : : diode_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 : : netherStalkSeeds_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 : : monsterPlacer_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