ModItems.java 20 KB

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