package net.paladrill.paladrillmod.block; import net.paladrill.paladrillmod.creativetab.TabPalaDrillMod; import net.paladrill.paladrillmod.ElementsPaladrillmodMod; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraft.world.gen.IChunkGenerator; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.World; import net.minecraft.world.IBlockAccess; import net.minecraft.util.math.BlockPos; import net.minecraft.util.NonNullList; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemBlock; import net.minecraft.item.Item; import net.minecraft.init.Blocks; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.block.state.IBlockState; import net.minecraft.block.material.Material; import net.minecraft.block.SoundType; import net.minecraft.block.Block; import java.util.Random; @ElementsPaladrillmodMod.ModElement.Tag public class BlockKisakayOre extends ElementsPaladrillmodMod.ModElement { @GameRegistry.ObjectHolder("paladrillmod:kisakayore") public static final Block block = null; public BlockKisakayOre(ElementsPaladrillmodMod instance) { super(instance, 280); } @Override public void initElements() { elements.blocks.add(() -> new BlockCustom().setRegistryName("kisakayore")); elements.items.add(() -> new ItemBlock(block).setRegistryName(block.getRegistryName())); } @SideOnly(Side.CLIENT) @Override public void registerModels(ModelRegistryEvent event) { ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation("paladrillmod:kisakayore", "inventory")); } @Override public void generateWorld(Random random, int chunkX, int chunkZ, World world, int dimID, IChunkGenerator cg, IChunkProvider cp) { boolean dimensionCriteria = false; if (dimID == 0) dimensionCriteria = true; if (!dimensionCriteria) return; for (int i = 0; i < 2; i++) { int x = chunkX + random.nextInt(16); int y = random.nextInt(15) + 1; int z = chunkZ + random.nextInt(16); (new WorldGenMinable(block.getDefaultState(), 1, new com.google.common.base.Predicate() { public boolean apply(IBlockState blockAt) { boolean blockCriteria = false; IBlockState require; if (blockAt.getBlock() == Blocks.STONE.getDefaultState().getBlock()) blockCriteria = true; return blockCriteria; } })).generate(world, random, new BlockPos(x, y, z)); } } public static class BlockCustom extends Block { public BlockCustom() { super(Material.ROCK); setUnlocalizedName("kisakayore"); setSoundType(SoundType.STONE); setHarvestLevel("pickaxe", 4); setHardness(6F); setResistance(12F); setLightLevel(0F); setLightOpacity(0); setCreativeTab(TabPalaDrillMod.tab); } @Override public void getDrops(NonNullList drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { drops.add(new ItemStack(BlockKisakayOre.block, (int) (1))); } } }