package me.km.blocks; import me.km.blocks.cookingpot.BlockCookingPot; import net.minecraft.block.Block; import net.minecraft.block.Block.Properties; import net.minecraft.block.SlabBlock; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.material.MaterialColor; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.LeavesBlock; import net.minecraft.item.Item; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemGroup; import net.minecraftforge.registries.IForgeRegistry; public class ModBlocks { // ores + blocks public static Block copperOre; public static Block copperBlock; public static Block tinOre; public static Block tinBlock; public static Block bronzeBlock; public static Block silverOre; public static Block silverBlock; // misc public static Block guildblock; public static Block artefact; public static Block realHayBlock; public static Block realHayBed; public static Block crateAcacia; public static Block crateBigOak; public static Block crateBirch; public static Block crateJungle; public static Block crateOak; public static Block crateSpruce; public static Block cookingPotCopper; public static Block lantern; public static Block tallGrass; // traps public static Block spikesCopper; public static Block spikesBronze; public static Block spikesGold; public static Block spikesIron; // fluids public static Block poison; public static Block honey; // slabs public static Block gravelSlab; // leaves public static Block cherryLeaves; public static Block apricotLeaves; public static Block pearLeaves; public static Block plumLeaves; // saplings public static Block cherrySapling; public static Block apricotSapling; public static Block pearSapling; public static Block plumSapling; private static Block create(String registry, Material m, float hardness, float resistance) { Block b = new Block(Properties.create(m).hardnessAndResistance(hardness, resistance)); b.setRegistryName(registry); return b; } private static Block createCrate(String registry) { Block b = new Block(Properties.create(Material.WOOD).hardnessAndResistance(2.0f, 5.0f).sound(SoundType.WOOD)); b.setRegistryName(registry); return b; } private static Block createOre(String registry) { Block b = new Block(Properties.create(Material.ROCK).hardnessAndResistance(3.0f, 3.0f)); b.setRegistryName(registry); return b; } private static Block createOreBlock(String registry, MaterialColor mc, float hardness, float resistance) { Block b = new Block(Properties.create(Material.IRON, mc).hardnessAndResistance(hardness, resistance)); b.setRegistryName(registry); return b; } private static Block createLeaves(String registry) { Block b = new LeavesBlock(Block.Properties.create(Material.LEAVES).hardnessAndResistance(0.2F).tickRandomly().sound(SoundType.PLANT)); b.setRegistryName(registry); return b; } private static Block createSapling(String registry, BlockState wood, BlockState leaves) { Block b = new BlockModSapling(new ModTree(wood, leaves)); b.setRegistryName(registry); return b; } public static void initBlocks(IForgeRegistry r) { // ores + blocks copperOre = register(r, createOre("copper_ore")); tinOre = register(r, createOre("tin_ore")); silverOre = register(r, createOre("silver_ore")); copperBlock = register(r, createOreBlock("copper_block", MaterialColor.BROWN, 3.0f, 6.0f)); tinBlock = register(r, createOreBlock("tin_block", MaterialColor.IRON, 3.0f, 6.0f)); silverBlock = register(r, createOreBlock("silver_block", MaterialColor.IRON, 5.0f, 6.0f)); bronzeBlock = register(r, createOreBlock("bronze_block", MaterialColor.YELLOW, 5.0f, 6.0f)); // misc guildblock = register(r, create("guild_block", Material.IRON, 50.0f, 2000.0f)); artefact = register(r, create("artefact", Material.IRON, 50.0f, 2000.0f)); realHayBlock = register(r, new BlockHay("real_hay_block")); realHayBed = register(r, new BlockHayBed("real_hay_bed")); crateAcacia = register(r, createCrate("crate_acacia")); crateBigOak = register(r, createCrate("crate_big_oak")); crateBirch = register(r, createCrate("crate_birch")); crateJungle = register(r, createCrate("crate_jungle")); crateOak = register(r, createCrate("crate_oak")); crateSpruce = register(r, createCrate("crate_spruce")); cookingPotCopper = register(r, new BlockCookingPot("cooking_pot_copper")); lantern = register(r, new BlockLantern("lantern")); tallGrass = register(r, new BlockResistantTallGrass("rtall_grass")); // traps spikesCopper = register(r, new BlockSpikes("spikes_copper", Properties.create(Material.IRON, MaterialColor.BROWN).hardnessAndResistance(3.0f, 6.0f))); spikesBronze = register(r, new BlockSpikes("spikes_bronze", Properties.create(Material.IRON, MaterialColor.YELLOW).hardnessAndResistance(5.0f, 6.0f))); spikesGold = register(r, new BlockSpikes("spikes_gold", Properties.create(Material.IRON, MaterialColor.GOLD).hardnessAndResistance(3.0f, 6.0f))); spikesIron = register(r, new BlockSpikes("spikes_iron", Properties.create(Material.IRON).hardnessAndResistance(5.0f, 6.0f))); // fluids poison = register(r, create("poison", Material.WATER, 0.0f, 0.0f)); honey = register(r, create("honey", Material.WATER, 0.0f, 0.0f)); // slabs gravelSlab = register(r, new SlabBlock(Properties.create(Material.SAND, MaterialColor.STONE) .sound(SoundType.GROUND).hardnessAndResistance(0.6f)).setRegistryName("gravel_slab")); // leaves cherryLeaves = register(r, createLeaves("cherry_leaves")); apricotLeaves = register(r, createLeaves("apricot_leaves")); pearLeaves = register(r, createLeaves("pear_leaves")); plumLeaves = register(r, createLeaves("plum_leaves")); // saplings cherrySapling = register(r, createSapling("cherry_sapling", Blocks.OAK_LOG.getDefaultState(), cherryLeaves.getDefaultState())); apricotSapling = register(r, createSapling("apricot_sapling", Blocks.OAK_LOG.getDefaultState(), apricotLeaves.getDefaultState())); pearSapling = register(r, createSapling("pear_sapling", Blocks.OAK_LOG.getDefaultState(), pearLeaves.getDefaultState())); plumSapling = register(r, createSapling("plum_sapling", Blocks.OAK_LOG.getDefaultState(), plumLeaves.getDefaultState())); } public static void initItemBlocks(IForgeRegistry r) { // ores + blocks register(r, copperOre, getItemBlock(copperOre, ItemGroup.BUILDING_BLOCKS)); register(r, copperBlock, getItemBlock(copperBlock, ItemGroup.BUILDING_BLOCKS)); register(r, tinOre, getItemBlock(tinOre, ItemGroup.BUILDING_BLOCKS)); register(r, tinBlock, getItemBlock(tinBlock, ItemGroup.BUILDING_BLOCKS)); register(r, bronzeBlock, getItemBlock(bronzeBlock, ItemGroup.BUILDING_BLOCKS)); register(r, silverOre, getItemBlock(silverOre, ItemGroup.BUILDING_BLOCKS)); register(r, silverBlock, getItemBlock(silverBlock, ItemGroup.BUILDING_BLOCKS)); // misc register(r, guildblock, getItemBlock(guildblock, ItemGroup.BUILDING_BLOCKS)); register(r, artefact, getItemBlock(artefact, ItemGroup.BUILDING_BLOCKS)); register(r, realHayBlock, getItemBlock(realHayBlock, ItemGroup.BUILDING_BLOCKS)); register(r, crateAcacia, getItemBlock(crateAcacia, ItemGroup.DECORATIONS)); register(r, crateBigOak, getItemBlock(crateBigOak, ItemGroup.DECORATIONS)); register(r, crateBirch, getItemBlock(crateBirch, ItemGroup.DECORATIONS)); register(r, crateJungle, getItemBlock(crateJungle, ItemGroup.DECORATIONS)); register(r, crateOak, getItemBlock(crateOak, ItemGroup.DECORATIONS)); register(r, crateSpruce, getItemBlock(crateSpruce, ItemGroup.DECORATIONS)); register(r, cookingPotCopper, getItemBlock(cookingPotCopper, ItemGroup.BREWING)); register(r, lantern, getItemBlock(lantern, ItemGroup.DECORATIONS)); register(r, tallGrass, getItemBlock(tallGrass, ItemGroup.DECORATIONS)); // traps register(r, spikesCopper, getItemBlock(spikesCopper, ItemGroup.DECORATIONS)); register(r, spikesBronze, getItemBlock(spikesBronze, ItemGroup.DECORATIONS)); register(r, spikesGold, getItemBlock(spikesGold, ItemGroup.DECORATIONS)); register(r, spikesIron, getItemBlock(spikesIron, ItemGroup.DECORATIONS)); // fluids register(r, poison, getItemBlock(poison, ItemGroup.BUILDING_BLOCKS)); register(r, honey, getItemBlock(honey, ItemGroup.BUILDING_BLOCKS)); // slabs register(r, gravelSlab, getItemBlock(gravelSlab, ItemGroup.BUILDING_BLOCKS)); // leaves register(r, cherryLeaves, getItemBlock(cherryLeaves, ItemGroup.BUILDING_BLOCKS)); register(r, apricotLeaves, getItemBlock(apricotLeaves, ItemGroup.BUILDING_BLOCKS)); register(r, pearLeaves, getItemBlock(pearLeaves, ItemGroup.BUILDING_BLOCKS)); register(r, plumLeaves, getItemBlock(plumLeaves, ItemGroup.BUILDING_BLOCKS)); // saplings register(r, cherrySapling, getItemBlock(cherrySapling, ItemGroup.BUILDING_BLOCKS)); register(r, apricotSapling, getItemBlock(apricotSapling, ItemGroup.BUILDING_BLOCKS)); register(r, pearSapling, getItemBlock(pearSapling, ItemGroup.BUILDING_BLOCKS)); register(r, plumSapling, getItemBlock(plumSapling, ItemGroup.BUILDING_BLOCKS)); } private static void register(IForgeRegistry r, Block block, Item itemBlock) { r.register(itemBlock); } private static Block register(IForgeRegistry r, Block block) { r.register(block); return block; } private static BlockItem getItemBlock(Block block, ItemGroup group) { BlockItem itemBlock = new BlockItem(block, new Item.Properties().group(group)); itemBlock.setRegistryName(block.getRegistryName()); return itemBlock; } }