Yes, now it's working Thanks for help
package com.crashcz.minerals.world;
import java.util.Random;
import com.crashcz.minerals.init.ModBlocks;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.IChunkGenerator;
import net.minecraft.world.gen.feature.WorldGenMinable;
import net.minecraftforge.fml.common.IWorldGenerator;
public class ModWorldGen implements IWorldGenerator
{
@Override
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
{
if(world.provider.getDimension() == 0)
{
generateOverworld(random, chunkX, chunkZ, world, chunkGenerator, chunkProvider);
}
}
private void generateOverworld(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
{
generateOre(ModBlocks.RUBY_ORE.getDefaultState(), world, random, chunkX * 16, chunkZ *16, 5, 12, random.nextInt(6) + 1, 4);
generateOre(Blocks.IRON_ORE.getDefaultState(), world, random, chunkX * 16, chunkZ * 16, 5, 12, random.nextInt(6) + 1, 4);
}
private void generateOre(IBlockState ore, World world, Random random, int x, int z, int minY, int maxY, int size, int chances)
{
int deltaY = maxY - minY;
for(int i = 0; i < chances; i++)
{
BlockPos pos = new BlockPos(x + random.nextInt(16), minY + random.nextInt(deltaY), z + random.nextInt(16));
WorldGenMinable generator = new WorldGenMinable(ore, size);
generator.generate(world, random, pos);
}
}
}
package com.crashcz.minerals.util.handlers;
import com.crashcz.minerals.init.ModBlocks;
import com.crashcz.minerals.init.ModItems;
import com.crashcz.minerals.util.IHasModel;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.terraingen.OreGenEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.eventhandler.Event.Result;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@EventBusSubscriber
public class RegistryHandler
{
@SubscribeEvent
public static void onItemRegister(RegistryEvent.Register<Item> event)
{
event.getRegistry().registerAll(ModItems.ITEMS.toArray(new Item[0]));
}
@SubscribeEvent
public static void onBlockRegister(RegistryEvent.Register<Block> event)
{
event.getRegistry().registerAll(ModBlocks.BLOCKS.toArray(new Block[0]));
}
@SubscribeEvent
public static void onModelRegister(ModelRegistryEvent event)
{
for(Item item : ModItems.ITEMS)
{
if(item instanceof IHasModel)
{
((IHasModel)item).registerModels();
}
}
for(Block block : ModBlocks.BLOCKS)
{
if(block instanceof IHasModel)
{
((IHasModel)block).registerModels();
}
}
}
@SubscribeEvent
public static void GenerateMinable(OreGenEvent event)
{
event.setResult(Result.DENY);
}
}
@EventHandler
public static void Init(FMLInitializationEvent event)
{
ModRecipes.init();
Blocks.IRON_ORE.setHarvestLevel("pickaxe", 3);
MinecraftForge.ORE_GEN_BUS.register(RegistryHandler.class);
GameRegistry.registerWorldGenerator(new ModWorldGen(), 3);
}