ModItems.java 19 KB

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