package me.km.blocks; import me.km.fluids.BlockFluidBase; import me.km.fluids.BlockFluidHoney; import me.km.fluids.BlockFluidPoison; import me.km.fluids.ModFluids; import me.km.items.ItemMetal; import net.minecraft.block.Block; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraftforge.registries.IForgeRegistry; public class ModBlocks { // ores + blocks public static BlockOre copperOre; public static BlockBase copperBlock; public static BlockOre tinOre; public static BlockBase tinBlock; public static BlockBase bronzeBlock; public static BlockOre silverOre; public static BlockBase silverBlock; // misc public static BlockBase guildblock; public static BlockBase artefact; public static BlockHay realHayBlock; public static BlockHayBed realHayBed; // traps public static BlockSpikeTrap spikes; // fluids public static BlockFluidPoison poison; public static BlockFluidHoney honey; public static void initBlocks(IForgeRegistry r) { // ores + blocks copperOre = register(r, new BlockOre("copper_ore", "oreCopper")); copperBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "copper_block", "blockCopper") .setMapColor(MapColor.BROWN).setHardness(3).setResistance(10)); tinOre = register(r, new BlockOre("tin_ore", "oreTin")); tinBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "tin_block", "blockTin") .setMapColor(MapColor.IRON).setHardness(3).setResistance(5)); bronzeBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "bronze_block", "blockBronze") .setMapColor(MapColor.YELLOW).setHardness(5).setResistance(10)); silverOre = register(r, new BlockOre("silver_ore", "oreSilver")); silverBlock = register(r, (BlockBase) new BlockBase(Material.IRON, "silver_block", "blockSilver") .setMapColor(MapColor.IRON).setHardness(5).setResistance(10)); // misc guildblock = register(r, (BlockBase) new BlockBase(Material.IRON, "guild_block", "blockGuild") .setHardness(50.0F).setResistance(2000.0F)); artefact = register(r, (BlockBase) new BlockBase(Material.IRON, "artefact", "artefact") .setHardness(50.0F).setResistance(2000.0F)); realHayBlock = register(r, new BlockHay("real_hay_block", "realHayBlock")); realHayBed = register(r, new BlockHayBed("real_hay_bed", "realHayBlock")); // traps spikes = register(r, new BlockSpikeTrap(Material.IRON, "spikes", "spikes")); // fluids poison = register(r, new BlockFluidPoison(ModFluids.poison, Material.WATER)); honey = register(r, new BlockFluidHoney(ModFluids.honey, Material.WATER)); } public static void initItemBlocks(IForgeRegistry r) { // ores + blocks register(r, copperOre, getItemBlock(copperOre)); register(r, copperBlock, getItemBlock(copperBlock)); register(r, tinOre, getItemBlock(tinOre)); register(r, tinBlock, getItemBlock(tinBlock)); register(r, bronzeBlock, getItemBlock(bronzeBlock)); register(r, silverOre, getItemBlock(silverOre)); register(r, silverBlock, getItemBlock(silverBlock)); // misc register(r, guildblock, getItemBlock(guildblock)); register(r, artefact, getItemBlock(artefact)); register(r, realHayBlock, getItemBlock(realHayBlock)); // traps register(r, spikes, getItemMetal(spikes)); // fluids register(r, poison, getItemBlock(poison)); register(r, honey, getItemBlock(honey)); } // THIS IS ONLY FOR REPLACING VANILLA BLOCKS public static void initReplacementBlocks(IForgeRegistry r) { BlockTallGrass grass = new BlockTallGrass(); overwriteBlock(r, Blocks.TALLGRASS, grass); } @SuppressWarnings("") private static void overwriteBlock(IForgeRegistry r, Block old, Block block) { /*try {*/ block.setRegistryName(old.getRegistryName().getResourcePath()); block.setUnlocalizedName(old.getUnlocalizedName().substring(5)); r.register(block); /*GameRegistry.addSubstitutionAlias(old.getRegistryName().toString(), GameRegistry.Type.BLOCK, block.setRegistryName(old.getRegistryName().getResourcePath()).setUnlocalizedName(old.getUnlocalizedName().substring(5))); } catch(ExistingSubstitutionException | NullPointerException ex) { System.out.println(ex); }*/ } //END OF REPLACING VANILLA BLOCKS private static void register(IForgeRegistry r, Block block, ItemBlock itemBlock) { r.register(itemBlock); if(block instanceof IBlockBase) { ((IBlockBase) block).registerItemModel(itemBlock); } if(block instanceof BlockFluidBase) { ((BlockFluidBase) block).registerBlockModel(); } } private static T register(IForgeRegistry r, T block) { r.register(block); return block; } private static ItemBlock getItemBlock(Block block) { ItemBlock itemBlock = new ItemBlock(block); itemBlock.setRegistryName(block.getRegistryName()); return itemBlock; } private static ItemMetal getItemMetal(Block block) { ItemMetal itemBlock = new ItemMetal(block); itemBlock.setRegistryName(block.getRegistryName()); return itemBlock; } }