ModBlocks.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. package me.km.blocks;
  2. import me.km.blocks.cookingpot.BlockCookingPot;
  3. import net.minecraft.block.Block;
  4. import net.minecraft.block.Block.Properties;
  5. import net.minecraft.block.SlabBlock;
  6. import net.minecraft.block.SoundType;
  7. import net.minecraft.block.material.Material;
  8. import net.minecraft.block.material.MaterialColor;
  9. import net.minecraft.block.BlockState;
  10. import net.minecraft.block.Blocks;
  11. import net.minecraft.block.LeavesBlock;
  12. import net.minecraft.item.Item;
  13. import net.minecraft.item.BlockItem;
  14. import net.minecraft.item.ItemGroup;
  15. import net.minecraftforge.registries.IForgeRegistry;
  16. public class ModBlocks
  17. {
  18. // ores + blocks
  19. public static Block copperOre;
  20. public static Block copperBlock;
  21. public static Block tinOre;
  22. public static Block tinBlock;
  23. public static Block bronzeBlock;
  24. public static Block silverOre;
  25. public static Block silverBlock;
  26. // misc
  27. public static Block guildblock;
  28. public static Block artefact;
  29. public static Block realHayBlock;
  30. public static Block realHayBed;
  31. public static Block crateAcacia;
  32. public static Block crateBigOak;
  33. public static Block crateBirch;
  34. public static Block crateJungle;
  35. public static Block crateOak;
  36. public static Block crateSpruce;
  37. public static Block cookingPotCopper;
  38. public static Block lantern;
  39. public static Block tallGrass;
  40. // traps
  41. public static Block spikesCopper;
  42. public static Block spikesBronze;
  43. public static Block spikesGold;
  44. public static Block spikesIron;
  45. // fluids
  46. public static Block poison;
  47. public static Block honey;
  48. // slabs
  49. public static Block gravelSlab;
  50. // leaves
  51. public static Block cherryLeaves;
  52. public static Block apricotLeaves;
  53. public static Block pearLeaves;
  54. public static Block plumLeaves;
  55. // saplings
  56. public static Block cherrySapling;
  57. public static Block apricotSapling;
  58. public static Block pearSapling;
  59. public static Block plumSapling;
  60. private static Block create(String registry, Material m, float hardness, float resistance)
  61. {
  62. Block b = new Block(Properties.create(m).hardnessAndResistance(hardness, resistance));
  63. b.setRegistryName(registry);
  64. return b;
  65. }
  66. private static Block createCrate(String registry)
  67. {
  68. Block b = new Block(Properties.create(Material.WOOD).hardnessAndResistance(2.0f, 5.0f).sound(SoundType.WOOD));
  69. b.setRegistryName(registry);
  70. return b;
  71. }
  72. private static Block createOre(String registry)
  73. {
  74. Block b = new Block(Properties.create(Material.ROCK).hardnessAndResistance(3.0f, 3.0f));
  75. b.setRegistryName(registry);
  76. return b;
  77. }
  78. private static Block createOreBlock(String registry, MaterialColor mc, float hardness, float resistance)
  79. {
  80. Block b = new Block(Properties.create(Material.IRON, mc).hardnessAndResistance(hardness, resistance));
  81. b.setRegistryName(registry);
  82. return b;
  83. }
  84. private static Block createLeaves(String registry)
  85. {
  86. Block b = new LeavesBlock(Block.Properties.create(Material.LEAVES).hardnessAndResistance(0.2F).tickRandomly().sound(SoundType.PLANT));
  87. b.setRegistryName(registry);
  88. return b;
  89. }
  90. private static Block createSapling(String registry, BlockState wood, BlockState leaves)
  91. {
  92. Block b = new BlockModSapling(new ModTree(wood, leaves));
  93. b.setRegistryName(registry);
  94. return b;
  95. }
  96. public static void initBlocks(IForgeRegistry<Block> r)
  97. {
  98. // ores + blocks
  99. copperOre = register(r, createOre("copper_ore"));
  100. tinOre = register(r, createOre("tin_ore"));
  101. silverOre = register(r, createOre("silver_ore"));
  102. copperBlock = register(r, createOreBlock("copper_block", MaterialColor.BROWN, 3.0f, 6.0f));
  103. tinBlock = register(r, createOreBlock("tin_block", MaterialColor.IRON, 3.0f, 6.0f));
  104. silverBlock = register(r, createOreBlock("silver_block", MaterialColor.IRON, 5.0f, 6.0f));
  105. bronzeBlock = register(r, createOreBlock("bronze_block", MaterialColor.YELLOW, 5.0f, 6.0f));
  106. // misc
  107. guildblock = register(r, create("guild_block", Material.IRON, 50.0f, 2000.0f));
  108. artefact = register(r, create("artefact", Material.IRON, 50.0f, 2000.0f));
  109. realHayBlock = register(r, new BlockHay("real_hay_block"));
  110. realHayBed = register(r, new BlockHayBed("real_hay_bed"));
  111. crateAcacia = register(r, createCrate("crate_acacia"));
  112. crateBigOak = register(r, createCrate("crate_big_oak"));
  113. crateBirch = register(r, createCrate("crate_birch"));
  114. crateJungle = register(r, createCrate("crate_jungle"));
  115. crateOak = register(r, createCrate("crate_oak"));
  116. crateSpruce = register(r, createCrate("crate_spruce"));
  117. cookingPotCopper = register(r, new BlockCookingPot("cooking_pot_copper"));
  118. lantern = register(r, new BlockLantern("lantern"));
  119. tallGrass = register(r, new BlockResistantTallGrass("rtall_grass"));
  120. // traps
  121. spikesCopper = register(r, new BlockSpikes("spikes_copper", Properties.create(Material.IRON, MaterialColor.BROWN).hardnessAndResistance(3.0f, 6.0f)));
  122. spikesBronze = register(r, new BlockSpikes("spikes_bronze", Properties.create(Material.IRON, MaterialColor.YELLOW).hardnessAndResistance(5.0f, 6.0f)));
  123. spikesGold = register(r, new BlockSpikes("spikes_gold", Properties.create(Material.IRON, MaterialColor.GOLD).hardnessAndResistance(3.0f, 6.0f)));
  124. spikesIron = register(r, new BlockSpikes("spikes_iron", Properties.create(Material.IRON).hardnessAndResistance(5.0f, 6.0f)));
  125. // fluids
  126. poison = register(r, create("poison", Material.WATER, 0.0f, 0.0f));
  127. honey = register(r, create("honey", Material.WATER, 0.0f, 0.0f));
  128. // slabs
  129. gravelSlab = register(r, new SlabBlock(Properties.create(Material.SAND, MaterialColor.STONE)
  130. .sound(SoundType.GROUND).hardnessAndResistance(0.6f)).setRegistryName("gravel_slab"));
  131. // leaves
  132. cherryLeaves = register(r, createLeaves("cherry_leaves"));
  133. apricotLeaves = register(r, createLeaves("apricot_leaves"));
  134. pearLeaves = register(r, createLeaves("pear_leaves"));
  135. plumLeaves = register(r, createLeaves("plum_leaves"));
  136. // saplings
  137. cherrySapling = register(r, createSapling("cherry_sapling", Blocks.OAK_LOG.getDefaultState(), cherryLeaves.getDefaultState()));
  138. apricotSapling = register(r, createSapling("apricot_sapling", Blocks.OAK_LOG.getDefaultState(), apricotLeaves.getDefaultState()));
  139. pearSapling = register(r, createSapling("pear_sapling", Blocks.OAK_LOG.getDefaultState(), pearLeaves.getDefaultState()));
  140. plumSapling = register(r, createSapling("plum_sapling", Blocks.OAK_LOG.getDefaultState(), plumLeaves.getDefaultState()));
  141. }
  142. public static void initItemBlocks(IForgeRegistry<Item> r)
  143. {
  144. // ores + blocks
  145. register(r, copperOre, getItemBlock(copperOre, ItemGroup.BUILDING_BLOCKS));
  146. register(r, copperBlock, getItemBlock(copperBlock, ItemGroup.BUILDING_BLOCKS));
  147. register(r, tinOre, getItemBlock(tinOre, ItemGroup.BUILDING_BLOCKS));
  148. register(r, tinBlock, getItemBlock(tinBlock, ItemGroup.BUILDING_BLOCKS));
  149. register(r, bronzeBlock, getItemBlock(bronzeBlock, ItemGroup.BUILDING_BLOCKS));
  150. register(r, silverOre, getItemBlock(silverOre, ItemGroup.BUILDING_BLOCKS));
  151. register(r, silverBlock, getItemBlock(silverBlock, ItemGroup.BUILDING_BLOCKS));
  152. // misc
  153. register(r, guildblock, getItemBlock(guildblock, ItemGroup.BUILDING_BLOCKS));
  154. register(r, artefact, getItemBlock(artefact, ItemGroup.BUILDING_BLOCKS));
  155. register(r, realHayBlock, getItemBlock(realHayBlock, ItemGroup.BUILDING_BLOCKS));
  156. register(r, crateAcacia, getItemBlock(crateAcacia, ItemGroup.DECORATIONS));
  157. register(r, crateBigOak, getItemBlock(crateBigOak, ItemGroup.DECORATIONS));
  158. register(r, crateBirch, getItemBlock(crateBirch, ItemGroup.DECORATIONS));
  159. register(r, crateJungle, getItemBlock(crateJungle, ItemGroup.DECORATIONS));
  160. register(r, crateOak, getItemBlock(crateOak, ItemGroup.DECORATIONS));
  161. register(r, crateSpruce, getItemBlock(crateSpruce, ItemGroup.DECORATIONS));
  162. register(r, cookingPotCopper, getItemBlock(cookingPotCopper, ItemGroup.BREWING));
  163. register(r, lantern, getItemBlock(lantern, ItemGroup.DECORATIONS));
  164. register(r, tallGrass, getItemBlock(tallGrass, ItemGroup.DECORATIONS));
  165. // traps
  166. register(r, spikesCopper, getItemBlock(spikesCopper, ItemGroup.DECORATIONS));
  167. register(r, spikesBronze, getItemBlock(spikesBronze, ItemGroup.DECORATIONS));
  168. register(r, spikesGold, getItemBlock(spikesGold, ItemGroup.DECORATIONS));
  169. register(r, spikesIron, getItemBlock(spikesIron, ItemGroup.DECORATIONS));
  170. // fluids
  171. register(r, poison, getItemBlock(poison, ItemGroup.BUILDING_BLOCKS));
  172. register(r, honey, getItemBlock(honey, ItemGroup.BUILDING_BLOCKS));
  173. // slabs
  174. register(r, gravelSlab, getItemBlock(gravelSlab, ItemGroup.BUILDING_BLOCKS));
  175. // leaves
  176. register(r, cherryLeaves, getItemBlock(cherryLeaves, ItemGroup.BUILDING_BLOCKS));
  177. register(r, apricotLeaves, getItemBlock(apricotLeaves, ItemGroup.BUILDING_BLOCKS));
  178. register(r, pearLeaves, getItemBlock(pearLeaves, ItemGroup.BUILDING_BLOCKS));
  179. register(r, plumLeaves, getItemBlock(plumLeaves, ItemGroup.BUILDING_BLOCKS));
  180. // saplings
  181. register(r, cherrySapling, getItemBlock(cherrySapling, ItemGroup.BUILDING_BLOCKS));
  182. register(r, apricotSapling, getItemBlock(apricotSapling, ItemGroup.BUILDING_BLOCKS));
  183. register(r, pearSapling, getItemBlock(pearSapling, ItemGroup.BUILDING_BLOCKS));
  184. register(r, plumSapling, getItemBlock(plumSapling, ItemGroup.BUILDING_BLOCKS));
  185. }
  186. private static void register(IForgeRegistry<Item> r, Block block, Item itemBlock)
  187. {
  188. r.register(itemBlock);
  189. }
  190. private static Block register(IForgeRegistry<Block> r, Block block)
  191. {
  192. r.register(block);
  193. return block;
  194. }
  195. private static BlockItem getItemBlock(Block block, ItemGroup group)
  196. {
  197. BlockItem itemBlock = new BlockItem(block, new Item.Properties().group(group));
  198. itemBlock.setRegistryName(block.getRegistryName());
  199. return itemBlock;
  200. }
  201. }