ModItems.java 20 KB

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