ModBlocks.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package me.km.blocks;
  2. import me.km.fluids.BlockFluidBase;
  3. import me.km.fluids.BlockFluidHoney;
  4. import me.km.fluids.BlockFluidPoison;
  5. import me.km.fluids.ModFluids;
  6. import me.km.items.ItemMetal;
  7. import net.minecraft.block.Block;
  8. import net.minecraft.block.material.MapColor;
  9. import net.minecraft.block.material.Material;
  10. import net.minecraft.init.Blocks;
  11. import net.minecraft.item.Item;
  12. import net.minecraft.item.ItemBlock;
  13. import net.minecraftforge.registries.IForgeRegistry;
  14. public class ModBlocks
  15. {
  16. // ores + blocks
  17. public static BlockOre copperOre;
  18. public static BlockBase copperBlock;
  19. public static BlockOre tinOre;
  20. public static BlockBase tinBlock;
  21. public static BlockBase bronzeBlock;
  22. public static BlockOre silverOre;
  23. public static BlockBase silverBlock;
  24. // misc
  25. public static BlockBase guildblock;
  26. public static BlockBase artefact;
  27. public static BlockHay realHayBlock;
  28. public static BlockHayBed realHayBed;
  29. // traps
  30. public static BlockSpikeTrap spikes;
  31. // fluids
  32. public static BlockFluidPoison poison;
  33. public static BlockFluidHoney honey;
  34. public static void initBlocks(IForgeRegistry<Block> r)
  35. {
  36. // ores + blocks
  37. copperOre = register(r, new BlockOre("copper_ore", "oreCopper"));
  38. copperBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "copper_block", "blockCopper")
  39. .setMapColor(MapColor.BROWN).setHardness(3).setResistance(10));
  40. tinOre = register(r, new BlockOre("tin_ore", "oreTin"));
  41. tinBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "tin_block", "blockTin")
  42. .setMapColor(MapColor.IRON).setHardness(3).setResistance(5));
  43. bronzeBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "bronze_block", "blockBronze")
  44. .setMapColor(MapColor.YELLOW).setHardness(5).setResistance(10));
  45. silverOre = register(r, new BlockOre("silver_ore", "oreSilver"));
  46. silverBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "silver_block", "blockSilver")
  47. .setMapColor(MapColor.IRON).setHardness(5).setResistance(10));
  48. // misc
  49. guildblock = register(r, (BlockBase) new BlockBase(Material.IRON, "guild_block", "blockGuild")
  50. .setHardness(50.0F).setResistance(2000.0F));
  51. artefact = register(r, (BlockBase) new BlockBase(Material.IRON, "artefact", "artefact")
  52. .setHardness(50.0F).setResistance(2000.0F));
  53. realHayBlock = register(r, new BlockHay("real_hay_block", "realHayBlock"));
  54. realHayBed = register(r, new BlockHayBed("real_hay_bed", "realHayBlock"));
  55. // traps
  56. spikes = register(r, new BlockSpikeTrap(Material.IRON, "spikes", "spikes"));
  57. // fluids
  58. poison = register(r, new BlockFluidPoison(ModFluids.poison, Material.WATER));
  59. honey = register(r, new BlockFluidHoney(ModFluids.honey, Material.WATER));
  60. }
  61. public static void initItemBlocks(IForgeRegistry<Item> r)
  62. {
  63. // ores + blocks
  64. register(r, copperOre, getItemBlock(copperOre));
  65. register(r, copperBlock, getItemBlock(copperBlock));
  66. register(r, tinOre, getItemBlock(tinOre));
  67. register(r, tinBlock, getItemBlock(tinBlock));
  68. register(r, bronzeBlock, getItemBlock(bronzeBlock));
  69. register(r, silverOre, getItemBlock(silverOre));
  70. register(r, silverBlock, getItemBlock(silverBlock));
  71. // misc
  72. register(r, guildblock, getItemBlock(guildblock));
  73. register(r, artefact, getItemBlock(artefact));
  74. register(r, realHayBlock, getItemBlock(realHayBlock));
  75. // traps
  76. register(r, spikes, getItemMetal(spikes));
  77. // fluids
  78. register(r, poison, getItemBlock(poison));
  79. register(r, honey, getItemBlock(honey));
  80. }
  81. // THIS IS ONLY FOR REPLACING VANILLA BLOCKS
  82. public static void initReplacementBlocks(IForgeRegistry<Block> r)
  83. {
  84. BlockTallGrass grass = new BlockTallGrass();
  85. overwriteBlock(r, Blocks.TALLGRASS, grass);
  86. }
  87. @SuppressWarnings("")
  88. private static void overwriteBlock(IForgeRegistry<Block> r, Block old, Block block)
  89. {
  90. /*try
  91. {*/
  92. block.setRegistryName(old.getRegistryName().getResourcePath());
  93. block.setUnlocalizedName(old.getUnlocalizedName().substring(5));
  94. r.register(block);
  95. /*GameRegistry.addSubstitutionAlias(old.getRegistryName().toString(),
  96. GameRegistry.Type.BLOCK,
  97. block.setRegistryName(old.getRegistryName().getResourcePath()).setUnlocalizedName(old.getUnlocalizedName().substring(5)));
  98. }
  99. catch(ExistingSubstitutionException | NullPointerException ex)
  100. {
  101. System.out.println(ex);
  102. }*/
  103. }
  104. //END OF REPLACING VANILLA BLOCKS
  105. private static void register(IForgeRegistry<Item> r, Block block, ItemBlock itemBlock)
  106. {
  107. r.register(itemBlock);
  108. if(block instanceof IBlockBase)
  109. {
  110. ((IBlockBase) block).registerItemModel(itemBlock);
  111. }
  112. if(block instanceof BlockFluidBase)
  113. {
  114. ((BlockFluidBase) block).registerBlockModel();
  115. }
  116. }
  117. private static <T extends Block> T register(IForgeRegistry<Block> r, T block)
  118. {
  119. r.register(block);
  120. return block;
  121. }
  122. private static ItemBlock getItemBlock(Block block)
  123. {
  124. ItemBlock itemBlock = new ItemBlock(block);
  125. itemBlock.setRegistryName(block.getRegistryName());
  126. return itemBlock;
  127. }
  128. private static ItemMetal getItemMetal(Block block)
  129. {
  130. ItemMetal itemBlock = new ItemMetal(block);
  131. itemBlock.setRegistryName(block.getRegistryName());
  132. return itemBlock;
  133. }
  134. }