ModBlocks.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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.SoundType;
  9. import net.minecraft.block.material.MapColor;
  10. import net.minecraft.block.material.Material;
  11. import net.minecraft.creativetab.CreativeTabs;
  12. import net.minecraft.init.Blocks;
  13. import net.minecraft.item.Item;
  14. import net.minecraft.item.ItemBlock;
  15. import net.minecraftforge.fml.common.registry.GameRegistry;
  16. import net.minecraftforge.registries.IForgeRegistry;
  17. public class ModBlocks
  18. {
  19. // ores + blocks
  20. public static BlockOre copperOre;
  21. public static BlockBase copperBlock;
  22. public static BlockOre tinOre;
  23. public static BlockBase tinBlock;
  24. public static BlockBase bronzeBlock;
  25. public static BlockOre silverOre;
  26. public static BlockBase silverBlock;
  27. // misc
  28. public static BlockBase guildblock;
  29. public static BlockBase artefact;
  30. public static BlockHay realHayBlock;
  31. public static BlockHayBed realHayBed;
  32. public static BlockBase crateAcacia;
  33. public static BlockBase crateBigOak;
  34. public static BlockBase crateBirch;
  35. public static BlockBase crateJungle;
  36. public static BlockBase crateOak;
  37. public static BlockBase crateSpruce;
  38. public static BlockWoodCauldron cauldronOak;
  39. public static BlockWoodCauldron cauldronBirch;
  40. public static BlockWoodCauldron cauldronAcacia;
  41. public static BlockWoodCauldron cauldronJungle;
  42. public static BlockWoodCauldron cauldronSpruce;
  43. public static BlockWoodCauldron cauldronBigOak;
  44. public static BlockBarrel barrelOak;
  45. public static BlockBarrel barrelBirch;
  46. public static BlockBarrel barrelAcacia;
  47. public static BlockBarrel barrelJungle;
  48. public static BlockBarrel barrelSpruce;
  49. public static BlockBarrel barrelBigOak;
  50. public static BlockCampFire campFire;
  51. public static BlockCampFireBurning campFireBurning;
  52. public static BlockCampFireBurnt campFireBurnt;
  53. public static BlockLantern lantern;
  54. // traps
  55. public static BlockSpikeTrap spikes;
  56. // fluids
  57. public static BlockFluidPoison poison;
  58. public static BlockFluidHoney honey;
  59. // slabs
  60. public static BlockModSlab gravelSlab;
  61. public static void initBlocks(IForgeRegistry<Block> r)
  62. {
  63. // ores + blocks
  64. copperOre = register(r, new BlockOre("copper_ore", "oreCopper"));
  65. copperBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "copper_block", "blockCopper")
  66. .setMapColor(MapColor.BROWN).setHardness(3).setResistance(10));
  67. tinOre = register(r, new BlockOre("tin_ore", "oreTin"));
  68. tinBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "tin_block", "blockTin")
  69. .setMapColor(MapColor.IRON).setHardness(3).setResistance(5));
  70. bronzeBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "bronze_block", "blockBronze")
  71. .setMapColor(MapColor.YELLOW).setHardness(5).setResistance(10));
  72. silverOre = register(r, new BlockOre("silver_ore", "oreSilver"));
  73. silverBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "silver_block", "blockSilver")
  74. .setMapColor(MapColor.IRON).setHardness(5).setResistance(10));
  75. // misc
  76. guildblock = register(r, (BlockBase) new BlockBase(Material.IRON, "guild_block", "blockGuild")
  77. .setHardness(50.0F).setResistance(2000.0F));
  78. artefact = register(r, (BlockBase) new BlockBase(Material.IRON, "artefact", "artefact")
  79. .setHardness(50.0F).setResistance(2000.0F));
  80. realHayBlock = register(r, new BlockHay("real_hay_block", "realHayBlock"));
  81. realHayBed = register(r, new BlockHayBed("real_hay_bed", "realHayBed"));
  82. crateAcacia = register(r, new BlockBase(Material.WOOD, "crate_acacia", "crateAcacia").setCreativeTab(CreativeTabs.DECORATIONS));
  83. crateBigOak = register(r, new BlockBase(Material.WOOD, "crate_big_oak", "crateBigOak").setCreativeTab(CreativeTabs.DECORATIONS));
  84. crateBirch = register(r, new BlockBase(Material.WOOD, "crate_birch", "crateBirch").setCreativeTab(CreativeTabs.DECORATIONS));
  85. crateJungle = register(r, new BlockBase(Material.WOOD, "crate_jungle", "crateJungle").setCreativeTab(CreativeTabs.DECORATIONS));
  86. crateOak = register(r, new BlockBase(Material.WOOD, "crate_oak", "crateOak").setCreativeTab(CreativeTabs.DECORATIONS));
  87. crateSpruce = register(r, new BlockBase(Material.WOOD, "crate_spruce", "crateSpruce").setCreativeTab(CreativeTabs.DECORATIONS));
  88. cauldronOak = register(r, new BlockWoodCauldron("cauldron_oak", "cauldronOak"));
  89. cauldronBirch = register(r, new BlockWoodCauldron("cauldron_birch", "cauldronBirch"));
  90. cauldronAcacia = register(r, new BlockWoodCauldron("cauldron_acacia", "cauldronAcacia"));
  91. cauldronJungle = register(r, new BlockWoodCauldron("cauldron_jungle", "cauldronJungle"));
  92. cauldronSpruce = register(r, new BlockWoodCauldron("cauldron_spruce", "cauldronSpruce"));
  93. cauldronBigOak = register(r, new BlockWoodCauldron("cauldron_big_oak", "cauldronBigOak"));
  94. GameRegistry.registerTileEntity(TileEntityCauldron.class, "km:cauldron");
  95. barrelOak = register(r, new BlockBarrel("barrel_oak", "barrelOak"));
  96. barrelBirch = register(r, new BlockBarrel("barrel_birch", "barrelBirch"));
  97. barrelAcacia = register(r, new BlockBarrel("barrel_acacia", "barrelAcacia"));
  98. barrelJungle = register(r, new BlockBarrel("barrel_jungle", "barrelJungle"));
  99. barrelSpruce = register(r, new BlockBarrel("barrel_spruce", "barrelSpruce"));
  100. barrelBigOak = register(r, new BlockBarrel("barrel_big_oak", "barrelBigOak"));
  101. campFire = register(r, new BlockCampFire("camp_fire", "campFire"));
  102. campFireBurning = (BlockCampFireBurning) register(r, new BlockCampFireBurning("camp_fire_burning", "campFireBurning")).setLightLevel(1);
  103. campFireBurnt = register(r, new BlockCampFireBurnt("camp_fire_burnt", "campFireBurnt"));
  104. GameRegistry.registerTileEntity(TileEntityCampFire.class, campFireBurning.getRegistryName().toString());
  105. lantern = register(r, new BlockLantern("lantern", "lantern"));
  106. // traps
  107. spikes = register(r, new BlockSpikeTrap(Material.IRON, "spikes", "spikes"));
  108. // fluids
  109. poison = register(r, new BlockFluidPoison(ModFluids.poison, Material.WATER));
  110. honey = register(r, new BlockFluidHoney(ModFluids.honey, Material.WATER));
  111. // slabs
  112. gravelSlab = register(r, (BlockModSlab) new BlockModSlab(Material.SAND, "gravel_slab", "gravelSlab").setSoundType(SoundType.GROUND).setHardness(0.6F));
  113. // overwrites
  114. register(r, Blocks.FARMLAND, new BlockNoTrampleFarmland());
  115. }
  116. private static void register(IForgeRegistry<Block> r, Block old, Block newBlock)
  117. {
  118. newBlock.setRegistryName(old.getRegistryName());
  119. r.register(newBlock);
  120. }
  121. public static void initItemBlocks(IForgeRegistry<Item> r)
  122. {
  123. // ores + blocks
  124. register(r, copperOre, getItemBlock(copperOre));
  125. register(r, copperBlock, getItemBlock(copperBlock));
  126. register(r, tinOre, getItemBlock(tinOre));
  127. register(r, tinBlock, getItemBlock(tinBlock));
  128. register(r, bronzeBlock, getItemBlock(bronzeBlock));
  129. register(r, silverOre, getItemBlock(silverOre));
  130. register(r, silverBlock, getItemBlock(silverBlock));
  131. // misc
  132. register(r, guildblock, getItemBlock(guildblock));
  133. register(r, artefact, getItemBlock(artefact));
  134. register(r, realHayBlock, getItemBlock(realHayBlock));
  135. register(r, crateAcacia, getItemBlock(crateAcacia));
  136. register(r, crateBigOak, getItemBlock(crateBigOak));
  137. register(r, crateBirch, getItemBlock(crateBirch));
  138. register(r, crateJungle, getItemBlock(crateJungle));
  139. register(r, crateOak, getItemBlock(crateOak));
  140. register(r, crateSpruce, getItemBlock(crateSpruce));
  141. register(r, cauldronAcacia, getItemBlock(cauldronAcacia));
  142. register(r, cauldronBigOak, getItemBlock(cauldronBigOak));
  143. register(r, cauldronBirch, getItemBlock(cauldronBirch));
  144. register(r, cauldronJungle, getItemBlock(cauldronJungle));
  145. register(r, cauldronOak, getItemBlock(cauldronOak));
  146. register(r, cauldronSpruce, getItemBlock(cauldronSpruce));
  147. register(r, barrelAcacia, getItemBlock(barrelAcacia));
  148. register(r, barrelBigOak, getItemBlock(barrelBigOak));
  149. register(r, barrelBirch, getItemBlock(barrelBirch));
  150. register(r, barrelJungle, getItemBlock(barrelJungle));
  151. register(r, barrelOak, getItemBlock(barrelOak));
  152. register(r, barrelSpruce, getItemBlock(barrelSpruce));
  153. register(r, lantern, getItemBlock(lantern));
  154. // traps
  155. register(r, spikes, getItemMetal(spikes));
  156. // fluids
  157. register(r, poison, getItemBlock(poison));
  158. register(r, honey, getItemBlock(honey));
  159. // slabs
  160. register(r, gravelSlab, getItemBlock(gravelSlab));
  161. }
  162. private static void register(IForgeRegistry<Item> r, Block block, Item itemBlock)
  163. {
  164. r.register(itemBlock);
  165. if(block instanceof IBlockBase)
  166. {
  167. ((IBlockBase) block).registerItemModel(itemBlock);
  168. }
  169. if(block instanceof BlockFluidBase)
  170. {
  171. ((BlockFluidBase) block).registerBlockModel();
  172. }
  173. }
  174. private static <T extends Block> T register(IForgeRegistry<Block> r, T block)
  175. {
  176. r.register(block);
  177. return block;
  178. }
  179. private static ItemBlock getItemBlock(Block block)
  180. {
  181. ItemBlock itemBlock = new ItemBlock(block);
  182. itemBlock.setRegistryName(block.getRegistryName());
  183. return itemBlock;
  184. }
  185. private static ItemMetal getItemMetal(Block block)
  186. {
  187. ItemMetal itemBlock = new ItemMetal(block);
  188. itemBlock.setRegistryName(block.getRegistryName());
  189. return itemBlock;
  190. }
  191. }