ModItems.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. package me.km.items;
  2. import me.km.blocks.ModBlocks;
  3. import net.minecraft.fluid.FlowingFluid;
  4. import net.minecraft.item.Items;
  5. import net.minecraft.inventory.EquipmentSlotType;
  6. import net.minecraft.item.IArmorMaterial;
  7. import net.minecraft.item.IItemTier;
  8. import net.minecraft.item.Item;
  9. import net.minecraft.item.Item.Properties;
  10. import net.minecraft.item.ArmorItem;
  11. import net.minecraft.item.BedItem;
  12. import net.minecraft.item.BucketItem;
  13. import net.minecraft.item.Food;
  14. import net.minecraft.item.ItemGroup;
  15. import net.minecraft.item.HoeItem;
  16. import net.minecraft.item.PotionItem;
  17. import net.minecraft.item.ShovelItem;
  18. import net.minecraft.item.SwordItem;
  19. import net.minecraft.item.ItemTier;
  20. import net.minecraft.potion.Effect;
  21. import net.minecraft.potion.EffectInstance;
  22. import net.minecraft.potion.Effects;
  23. import net.minecraftforge.registries.IForgeRegistry;
  24. public class ModItems
  25. {
  26. // nuggets and ingots
  27. public static Item copperIngot;
  28. public static Item copperNugget;
  29. public static Item tinIngot;
  30. public static Item tinNugget;
  31. public static Item bronzeIngot;
  32. public static Item bronzeNugget;
  33. public static Item silverIngot;
  34. public static Item silverNugget;
  35. // tools and swords
  36. public static Item copperSword;
  37. public static Item copperShovel;
  38. public static Item copperPickaxe;
  39. public static Item copperAxe;
  40. public static Item copperHoe;
  41. public static Item bronzeSword;
  42. public static Item bronzeShovel;
  43. public static Item bronzePickaxe;
  44. public static Item bronzeAxe;
  45. public static Item bronzeHoe;
  46. public static Item sling;
  47. // armor
  48. public static Item copperHelmet;
  49. public static Item copperChestplate;
  50. public static Item copperLeggings;
  51. public static Item copperBoots;
  52. public static Item bronzeHelmet;
  53. public static Item bronzeChestplate;
  54. public static Item bronzeLeggings;
  55. public static Item bronzeBoots;
  56. public static Item cylinder;
  57. public static Item suitChestplate;
  58. public static Item suitLeggings;
  59. public static Item suitBoots;
  60. public static Item strawHat;
  61. // sticks
  62. public static Item woodenStick;
  63. public static Item stoneStick;
  64. public static Item copperStick;
  65. public static Item bronzeStick;
  66. public static Item ironStick;
  67. public static Item goldStick;
  68. public static Item diamondStick;
  69. // scepters
  70. public static Item woodenScepter;
  71. public static Item stoneScepter;
  72. public static Item copperScepter;
  73. public static Item bronzeScepter;
  74. public static Item ironScepter;
  75. public static Item goldScepter;
  76. public static Item diamondScepter;
  77. // dagger
  78. public static Item woodenDagger;
  79. public static Item stoneDagger;
  80. public static Item copperDagger;
  81. public static Item bronzeDagger;
  82. public static Item ironDagger;
  83. public static Item goldDagger;
  84. public static Item diamondDagger;
  85. // hammer
  86. public static Item woodenHammer;
  87. public static Item stoneHammer;
  88. public static Item copperHammer;
  89. public static Item bronzeHammer;
  90. public static Item ironHammer;
  91. public static Item goldHammer;
  92. public static Item diamondHammer;
  93. // battle axe
  94. public static Item woodenBattleAxe;
  95. public static Item stoneBattleAxe;
  96. public static Item copperBattleAxe;
  97. public static Item bronzeBattleAxe;
  98. public static Item ironBattleAxe;
  99. public static Item goldBattleAxe;
  100. public static Item diamondBattleAxe;
  101. // key
  102. public static Item silverKey;
  103. public static Item copperKey;
  104. public static Item bronzeKey;
  105. public static Item ironKey;
  106. public static Item goldKey;
  107. // coins
  108. public static Item copperCoin;
  109. public static Item silverCoin;
  110. public static Item goldCoin;
  111. // misc
  112. public static Item realHayBed;
  113. public static Item hayBundle;
  114. public static Item batWing;
  115. public static Item wolfFur;
  116. public static Item bearBrownFur;
  117. public static Item bearBlackFur;
  118. public static Item bearPolarFur;
  119. public static Item cloth;
  120. public static Item coarseCloth;
  121. public static Item gemStone;
  122. public static Item rawGemStone;
  123. public static Item flawlessGemStone;
  124. public static Item scroll;
  125. public static Item soulStone;
  126. public static Item piercingStone;
  127. // food
  128. public static Item coloredSoup;
  129. public static Item apricot;
  130. public static Item friedEgg;
  131. public static Item mushroomStickRaw;
  132. public static Item mushroomStickCooked;
  133. public static Item pear;
  134. public static Item plum;
  135. // icons
  136. public static Item arrowDown;
  137. public static Item arrowLeft;
  138. public static Item arrowRight;
  139. public static Item arrowUp;
  140. public static Item checkGreen;
  141. public static Item checkRed;
  142. public static Item crossGreen;
  143. public static Item crossRed;
  144. public static Item minusGreen;
  145. public static Item minusRed;
  146. public static Item plusGreen;
  147. public static Item plusRed;
  148. public static Item returnGreen;
  149. public static Item returnRed;
  150. public static Item gear;
  151. // herbs
  152. public static Item herbStrong;
  153. public static Item herbShadow;
  154. public static Item herbXp;
  155. public static Item herbSea;
  156. public static Item herbGold;
  157. public static Item herbBreathing;
  158. public static Item herbFire;
  159. private static Item newSword(IItemTier tier)
  160. {
  161. return new SwordItem(tier, 3, -2.4f, (new Item.Properties()).group(ItemGroup.COMBAT));
  162. }
  163. private static Item newShovel(IItemTier tier)
  164. {
  165. return new ShovelItem(tier, 1.5f, -3.0f, (new Item.Properties()).group(ItemGroup.TOOLS));
  166. }
  167. private static Item newPickaxe(IItemTier tier)
  168. {
  169. return new ModItemPickaxe(tier, 1, -2.8f, (new Item.Properties()).group(ItemGroup.TOOLS));
  170. }
  171. private static Item newAxe(IItemTier tier, int attackDamageIn, float attackSpeedIn)
  172. {
  173. return new ModItemAxe(tier, attackDamageIn, attackSpeedIn, (new Item.Properties()).group(ItemGroup.TOOLS));
  174. }
  175. private static Item newHoe(IItemTier tier, float speed)
  176. {
  177. return new HoeItem(tier, speed, (new Item.Properties()).group(ItemGroup.TOOLS));
  178. }
  179. private static Item newStick(IItemTier tier)
  180. {
  181. return new SwordItem(tier, 0, -2.3f, (new Item.Properties()).group(ItemGroup.COMBAT));
  182. }
  183. private static Item newScepter(IItemTier tier)
  184. {
  185. return new SwordItem(tier, 1, -2.6f, (new Item.Properties()).group(ItemGroup.COMBAT));
  186. }
  187. private static Item newHammer(IItemTier tier)
  188. {
  189. return new SwordItem(tier, 4, -3.0f, (new Item.Properties()).group(ItemGroup.COMBAT));
  190. }
  191. private static Item newDagger(IItemTier tier)
  192. {
  193. return new SwordItem(tier, 1, -2.2f, (new Item.Properties()).group(ItemGroup.COMBAT));
  194. }
  195. private static Item newBattleAxe(IItemTier tier)
  196. {
  197. return new SwordItem(tier, 5, -3.0f, (new Item.Properties()).group(ItemGroup.COMBAT));
  198. }
  199. private static Item newArmor(IArmorMaterial am, EquipmentSlotType slot)
  200. {
  201. return new ArmorItem(am, slot, (new Properties()).group(ItemGroup.COMBAT));
  202. }
  203. private static Item newItem(ItemGroup group)
  204. {
  205. return new Item(new Properties().group(group));
  206. }
  207. private static Item newHerb()
  208. {
  209. return new Item(new Properties().group(ItemGroup.FOOD).food(
  210. new Food.Builder().setAlwaysEdible().fastToEat().build()));
  211. }
  212. private static Item newEffectHerb(Effect effect, int duration, int amplifier)
  213. {
  214. return new Item(new Properties().group(ItemGroup.FOOD).food(
  215. new Food.Builder().setAlwaysEdible().fastToEat()
  216. .effect(new EffectInstance(effect, duration, amplifier), 1.0f)
  217. .build()));
  218. }
  219. private static Item newFood(int food, float saturation)
  220. {
  221. return new Item(new Properties().group(ItemGroup.FOOD).food(
  222. new Food.Builder().hunger(food).saturation(saturation).build()));
  223. }
  224. public static void init(IForgeRegistry<Item> r)
  225. {
  226. // nuggets and ingots
  227. copperIngot = register(r, new Item(new Properties().group(ItemGroup.MATERIALS)), "copper_ingot");
  228. copperNugget = register(r, new Item(new Properties().group(ItemGroup.MATERIALS)), "copper_nugget");
  229. tinIngot = register(r, new Item(new Properties().group(ItemGroup.MATERIALS)), "tin_ingot");
  230. tinNugget = register(r, new Item(new Properties().group(ItemGroup.MATERIALS)), "tin_nugget");
  231. bronzeIngot = register(r, new Item(new Properties().group(ItemGroup.MATERIALS)),"bronze_ingot");
  232. bronzeNugget = register(r, new Item(new Properties().group(ItemGroup.MATERIALS)), "bronze_nugget");
  233. silverIngot = register(r, new Item(new Properties().group(ItemGroup.MATERIALS)), "silver_ingot");
  234. silverNugget = register(r, new Item(new Properties().group(ItemGroup.MATERIALS)), "silver_nugget");
  235. // tools and swords
  236. copperSword = register(r, newSword(ModItemTier.COPPER), "copper_sword");
  237. copperShovel = register(r, newShovel(ModItemTier.COPPER), "copper_shovel");
  238. copperPickaxe = register(r, newPickaxe(ModItemTier.COPPER), "copper_pickaxe");
  239. copperAxe = register(r, newAxe(ModItemTier.COPPER, 7, -3.1f), "copper_axe");
  240. copperHoe = register(r, newHoe(ModItemTier.COPPER, -2.0f), "copper_hoe");
  241. bronzeSword = register(r, newSword(ModItemTier.BRONZE), "bronze_sword");
  242. bronzeShovel = register(r, newShovel(ModItemTier.BRONZE), "bronze_shovel");
  243. bronzePickaxe = register(r, newPickaxe(ModItemTier.BRONZE), "bronze_pickaxe");
  244. bronzeAxe = register(r, newAxe(ModItemTier.BRONZE, 8, -3.0f), "bronze_axe");
  245. bronzeHoe = register(r, newHoe(ModItemTier.BRONZE, -1.0f), "bronze_hoe");
  246. sling = register(r, new ItemSling(192), "sling");
  247. // armor
  248. copperHelmet = register(r, newArmor(ModArmorMaterial.COPPER, EquipmentSlotType.HEAD), "copper_helmet");
  249. copperChestplate = register(r, newArmor(ModArmorMaterial.COPPER, EquipmentSlotType.CHEST), "copper_chestplate");
  250. copperLeggings = register(r, newArmor(ModArmorMaterial.COPPER, EquipmentSlotType.LEGS), "copper_leggings");
  251. copperBoots = register(r, newArmor(ModArmorMaterial.COPPER, EquipmentSlotType.FEET), "copper_boots");
  252. bronzeHelmet = register(r, newArmor(ModArmorMaterial.BRONZE, EquipmentSlotType.HEAD), "bronze_helmet");
  253. bronzeChestplate = register(r, newArmor(ModArmorMaterial.BRONZE, EquipmentSlotType.CHEST), "bronze_chestplate");
  254. bronzeLeggings = register(r, newArmor(ModArmorMaterial.BRONZE, EquipmentSlotType.LEGS), "bronze_leggings");
  255. bronzeBoots = register(r, newArmor(ModArmorMaterial.BRONZE, EquipmentSlotType.FEET), "bronze_boots");
  256. cylinder = register(r, new ItemCylinder(ModArmorMaterial.CYLINDER, new Properties()), "cylinder");
  257. suitChestplate = register(r, newArmor(ModArmorMaterial.SILK, EquipmentSlotType.CHEST), "suit_chestplate");
  258. suitLeggings = register(r, newArmor(ModArmorMaterial.SILK, EquipmentSlotType.LEGS), "suit_leggings");
  259. suitBoots = register(r, newArmor(ModArmorMaterial.SILK, EquipmentSlotType.FEET), "suit_boots");
  260. strawHat = register(r, new ItemHat(ModArmorMaterial.STRAW, new Properties()), "straw_hat");
  261. // sticks
  262. woodenStick = register(r, newStick(ItemTier.WOOD), "wooden_stick");
  263. stoneStick = register(r, newStick(ItemTier.STONE), "stone_stick");
  264. copperStick = register(r, newStick(ModItemTier.COPPER), "copper_stick");
  265. bronzeStick = register(r, newStick(ModItemTier.BRONZE), "bronze_stick");
  266. ironStick = register(r, newStick(ItemTier.IRON), "iron_stick");
  267. goldStick = register(r, newStick(ItemTier.GOLD), "golden_stick");
  268. diamondStick = register(r, newStick(ItemTier.DIAMOND), "diamond_stick");
  269. // scepter
  270. woodenScepter = register(r, newScepter(ItemTier.WOOD), "wooden_scepter");
  271. stoneScepter = register(r, newScepter(ItemTier.STONE), "stone_scepter");
  272. copperScepter = register(r, newScepter(ModItemTier.COPPER), "copper_scepter");
  273. bronzeScepter = register(r, newScepter(ModItemTier.BRONZE), "bronze_scepter");
  274. ironScepter = register(r, newScepter(ItemTier.IRON), "iron_scepter");
  275. goldScepter = register(r, newScepter(ItemTier.GOLD), "golden_scepter");
  276. diamondScepter = register(r, newScepter(ItemTier.DIAMOND), "diamond_scepter");
  277. // dagger
  278. woodenDagger = register(r, newDagger(ItemTier.WOOD), "wooden_dagger");
  279. stoneDagger = register(r, newDagger(ItemTier.STONE), "stone_dagger");
  280. copperDagger = register(r, newDagger(ModItemTier.COPPER), "copper_dagger");
  281. bronzeDagger = register(r, newDagger(ModItemTier.BRONZE), "bronze_dagger");
  282. ironDagger = register(r, newDagger(ItemTier.IRON), "iron_dagger");
  283. goldDagger = register(r, newDagger(ItemTier.GOLD), "golden_dagger");
  284. diamondDagger = register(r, newDagger(ItemTier.DIAMOND), "diamond_dagger");
  285. // hammer
  286. woodenHammer = register(r, newHammer(ItemTier.WOOD), "wooden_hammer");
  287. stoneHammer = register(r, newHammer(ItemTier.STONE), "stone_hammer");
  288. copperHammer = register(r, newHammer(ModItemTier.COPPER), "copper_hammer");
  289. bronzeHammer = register(r, newHammer(ModItemTier.BRONZE), "bronze_hammer");
  290. ironHammer = register(r, newHammer(ItemTier.IRON), "iron_hammer");
  291. goldHammer = register(r, newHammer(ItemTier.GOLD), "golden_hammer");
  292. diamondHammer = register(r, newHammer(ItemTier.DIAMOND), "diamond_hammer");
  293. // battle axe
  294. woodenBattleAxe = register(r, newBattleAxe(ItemTier.WOOD), "wooden_battleaxe");
  295. stoneBattleAxe = register(r, newBattleAxe(ItemTier.STONE), "stone_battleaxe");
  296. copperBattleAxe = register(r, newBattleAxe(ModItemTier.COPPER), "copper_battleaxe");
  297. bronzeBattleAxe = register(r, newBattleAxe(ModItemTier.BRONZE), "bronze_battleaxe");
  298. ironBattleAxe = register(r, newBattleAxe(ItemTier.IRON), "iron_battleaxe");
  299. goldBattleAxe = register(r, newBattleAxe(ItemTier.GOLD), "golden_battleaxe");
  300. diamondBattleAxe = register(r, newBattleAxe(ItemTier.DIAMOND), "diamond_battleaxe");
  301. // key
  302. silverKey = register(r, new ItemKey(ModItemTier.SILVER), "silver_key");
  303. copperKey = register(r, new ItemKey(ModItemTier.COPPER), "copper_key");
  304. bronzeKey = register(r, new ItemKey(ModItemTier.BRONZE), "bronze_key");
  305. ironKey = register(r, new ItemKey(ItemTier.IRON), "iron_key");
  306. goldKey = register(r, new ItemKey(ItemTier.GOLD), "golden_key");
  307. // coins
  308. copperCoin = register(r, newItem(ItemGroup.MISC), "coin_copper");
  309. silverCoin = register(r, newItem(ItemGroup.MISC), "coin_silver");
  310. goldCoin = register(r, newItem(ItemGroup.MISC), "coin_gold");
  311. // misc
  312. realHayBed = register(r, new BedItem(ModBlocks.realHayBed, (new Item.Properties()).maxStackSize(1).group(ItemGroup.DECORATIONS)), "real_hay_bed");
  313. hayBundle = register(r, newItem(ItemGroup.MATERIALS), "hay_bundle");
  314. batWing = register(r, newItem(ItemGroup.MATERIALS), "bat_wing");
  315. wolfFur = register(r, newItem(ItemGroup.MATERIALS), "wolf_fur");
  316. bearBrownFur = register(r, newItem(ItemGroup.MATERIALS), "bear_brown_fur");
  317. bearBlackFur = register(r, newItem(ItemGroup.MATERIALS), "bear_black_fur");
  318. bearPolarFur = register(r, newItem(ItemGroup.MATERIALS), "bear_polar_fur");
  319. cloth = register(r, newItem(ItemGroup.MATERIALS), "cloth");
  320. coarseCloth = register(r, newItem(ItemGroup.MATERIALS), "coarse_cloth");
  321. gemStone = register(r, new ItemGemStone(), "gem_stone");
  322. rawGemStone = register(r, new ItemGemStone(), "raw_gem_stone");
  323. flawlessGemStone = register(r, new ItemGemStone(), "flawless_gem_stone");
  324. scroll = register(r, newItem(ItemGroup.MISC), "scroll");
  325. soulStone = register(r, newItem(ItemGroup.MATERIALS), "soul_stone");
  326. piercingStone = register(r, newItem(ItemGroup.MATERIALS), "piercing_stone");
  327. // food
  328. coloredSoup = register(r, new ItemColoredSoup(), "colored_soup");
  329. friedEgg = register(r, newFood(2, 0.3f), "fried_egg");
  330. mushroomStickRaw = register(r, newItem(ItemGroup.FOOD), "mushroom_stick_raw");
  331. mushroomStickCooked = register(r, newFood(9, 0.9f), "mushroom_stick_cooked");
  332. apricot = register(r, newFood(4, 0.3f), "apricot");
  333. pear = register(r, newFood(4, 0.3f), "pear");
  334. plum = register(r, newFood(4, 0.3f), "plum");
  335. // icons
  336. arrowDown = register(r, newItem(ItemGroup.MISC), "arrow_down");
  337. arrowLeft = register(r, newItem(ItemGroup.MISC), "arrow_left");
  338. arrowRight = register(r, newItem(ItemGroup.MISC), "arrow_right");
  339. arrowUp = register(r, newItem(ItemGroup.MISC), "arrow_up");
  340. checkGreen = register(r, newItem(ItemGroup.MISC), "check_green");
  341. checkRed = register(r, newItem(ItemGroup.MISC), "check_red");
  342. crossGreen = register(r, newItem(ItemGroup.MISC), "cross_green");
  343. crossRed = register(r, newItem(ItemGroup.MISC), "cross_red");
  344. minusGreen = register(r, newItem(ItemGroup.MISC), "minus_green");
  345. minusRed = register(r, newItem(ItemGroup.MISC), "minus_red");
  346. plusGreen = register(r, newItem(ItemGroup.MISC), "plus_green");
  347. plusRed = register(r, newItem(ItemGroup.MISC), "plus_red");
  348. returnGreen = register(r, newItem(ItemGroup.MISC), "return_green");
  349. returnRed = register(r, newItem(ItemGroup.MISC), "return_red");
  350. gear = register(r, newItem(ItemGroup.MISC), "gear");
  351. // herbs
  352. herbStrong = register(r, newEffectHerb(Effects.SPEED, 6000, 1), "herb_strong");
  353. herbShadow = register(r, newEffectHerb(Effects.NIGHT_VISION, 3600, 0), "herb_shadow");
  354. herbXp = register(r, newHerb(), "herb_xp");
  355. herbSea = register(r, newHerb(), "herb_sea");
  356. herbGold = register(r, newHerb(), "herb_gold");
  357. herbBreathing = register(r, newEffectHerb(Effects.WATER_BREATHING, 2400, 0), "herb_breathing");
  358. herbFire = register(r, newEffectHerb(Effects.FIRE_RESISTANCE, 2400, 0), "herb_fire");
  359. // skill icons
  360. for(int i = 1; i <= 57; i++)
  361. {
  362. register(r, newItem(ItemGroup.MISC), "skill" + i);
  363. }
  364. // block overrides
  365. try
  366. {
  367. PotionItem potion = new ItemNoGlintPotion();
  368. register(r, Items.POTION, potion);
  369. PotionItem splashPotion = new ItemNoGlintSplashPotion();
  370. register(r, Items.SPLASH_POTION, splashPotion);
  371. PotionItem lingeringPotion = new ItemNoGlintLingeringPotion();
  372. register(r, Items.LINGERING_POTION, lingeringPotion);
  373. }
  374. catch(Exception ex)
  375. {
  376. ex.printStackTrace();
  377. }
  378. }
  379. private static Item register(IForgeRegistry<Item> r, Item item, String registry)
  380. {
  381. item.setRegistryName(registry);
  382. r.register(item);
  383. return item;
  384. }
  385. private static void register(IForgeRegistry<Item> r, Item old, Item newItem)
  386. {
  387. newItem.setRegistryName(old.getRegistryName());
  388. r.register(newItem);
  389. }
  390. }