ModBlocks.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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.fml.common.registry.GameRegistry;
  14. import net.minecraftforge.registries.IForgeRegistry;
  15. public class ModBlocks
  16. {
  17. // ores + blocks
  18. public static BlockOre copperOre;
  19. public static BlockBase copperBlock;
  20. public static BlockOre tinOre;
  21. public static BlockBase tinBlock;
  22. public static BlockBase bronzeBlock;
  23. public static BlockOre silverOre;
  24. public static BlockBase silverBlock;
  25. // misc
  26. public static BlockBase guildblock;
  27. public static BlockBase artefact;
  28. public static BlockHay realHayBlock;
  29. public static BlockHayBed realHayBed;
  30. public static BlockCampFire campFire;
  31. public static BlockCampFireBurning campFireBurning;
  32. public static BlockCampFireBurnt campFireBurnt;
  33. // traps
  34. public static BlockSpikeTrap spikes;
  35. // fluids
  36. public static BlockFluidPoison poison;
  37. public static BlockFluidHoney honey;
  38. public static void initBlocks(IForgeRegistry<Block> r)
  39. {
  40. // ores + blocks
  41. copperOre = register(r, new BlockOre("copper_ore", "oreCopper"));
  42. copperBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "copper_block", "blockCopper")
  43. .setMapColor(MapColor.BROWN).setHardness(3).setResistance(10));
  44. tinOre = register(r, new BlockOre("tin_ore", "oreTin"));
  45. tinBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "tin_block", "blockTin")
  46. .setMapColor(MapColor.IRON).setHardness(3).setResistance(5));
  47. bronzeBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "bronze_block", "blockBronze")
  48. .setMapColor(MapColor.YELLOW).setHardness(5).setResistance(10));
  49. silverOre = register(r, new BlockOre("silver_ore", "oreSilver"));
  50. silverBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "silver_block", "blockSilver")
  51. .setMapColor(MapColor.IRON).setHardness(5).setResistance(10));
  52. // misc
  53. guildblock = register(r, (BlockBase) new BlockBase(Material.IRON, "guild_block", "blockGuild")
  54. .setHardness(50.0F).setResistance(2000.0F));
  55. artefact = register(r, (BlockBase) new BlockBase(Material.IRON, "artefact", "artefact")
  56. .setHardness(50.0F).setResistance(2000.0F));
  57. realHayBlock = register(r, new BlockHay("real_hay_block", "realHayBlock"));
  58. realHayBed = register(r, new BlockHayBed("real_hay_bed", "realHayBlock"));
  59. campFire = register(r, new BlockCampFire("camp_fire", "campFire"));
  60. campFireBurning = (BlockCampFireBurning) register(r, new BlockCampFireBurning("camp_fire_burning", "campFireBurning")).setLightLevel(1);
  61. campFireBurnt = register(r, new BlockCampFireBurnt("camp_fire_burnt", "campFireBurnt"));
  62. GameRegistry.registerTileEntity(TileEntityCampFire.class, campFireBurning.getRegistryName().toString());
  63. // traps
  64. spikes = register(r, new BlockSpikeTrap(Material.IRON, "spikes", "spikes"));
  65. // fluids
  66. poison = register(r, new BlockFluidPoison(ModFluids.poison, Material.WATER));
  67. honey = register(r, new BlockFluidHoney(ModFluids.honey, Material.WATER));
  68. // overwrites
  69. register(r, Blocks.FARMLAND, new BlockNoTrampleFarmland());
  70. }
  71. private static void register(IForgeRegistry<Block> r, Block old, Block newBlock)
  72. {
  73. newBlock.setRegistryName(old.getRegistryName());
  74. r.register(newBlock);
  75. }
  76. public static void initItemBlocks(IForgeRegistry<Item> r)
  77. {
  78. // ores + blocks
  79. register(r, copperOre, getItemBlock(copperOre));
  80. register(r, copperBlock, getItemBlock(copperBlock));
  81. register(r, tinOre, getItemBlock(tinOre));
  82. register(r, tinBlock, getItemBlock(tinBlock));
  83. register(r, bronzeBlock, getItemBlock(bronzeBlock));
  84. register(r, silverOre, getItemBlock(silverOre));
  85. register(r, silverBlock, getItemBlock(silverBlock));
  86. // misc
  87. register(r, guildblock, getItemBlock(guildblock));
  88. register(r, artefact, getItemBlock(artefact));
  89. register(r, realHayBlock, getItemBlock(realHayBlock));
  90. // traps
  91. register(r, spikes, getItemMetal(spikes));
  92. // fluids
  93. register(r, poison, getItemBlock(poison));
  94. register(r, honey, getItemBlock(honey));
  95. }
  96. private static void register(IForgeRegistry<Item> r, Block block, Item itemBlock)
  97. {
  98. r.register(itemBlock);
  99. if(block instanceof IBlockBase)
  100. {
  101. ((IBlockBase) block).registerItemModel(itemBlock);
  102. }
  103. if(block instanceof BlockFluidBase)
  104. {
  105. ((BlockFluidBase) block).registerBlockModel();
  106. }
  107. }
  108. private static <T extends Block> T register(IForgeRegistry<Block> r, T block)
  109. {
  110. r.register(block);
  111. return block;
  112. }
  113. private static ItemBlock getItemBlock(Block block)
  114. {
  115. ItemBlock itemBlock = new ItemBlock(block);
  116. itemBlock.setRegistryName(block.getRegistryName());
  117. return itemBlock;
  118. }
  119. private static ItemMetal getItemMetal(Block block)
  120. {
  121. ItemMetal itemBlock = new ItemMetal(block);
  122. itemBlock.setRegistryName(block.getRegistryName());
  123. return itemBlock;
  124. }
  125. }