ModBlocks.java 9.9 KB

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