- 1,031
- 19
- 87
Сделал генератор, вроде ошибок нету, но при заходе в новый мир руда так и не генерируется. Почему?
Java:
import java.util.Random;
import com.google.common.base.Predicate;
import net.minecraft.block.state.IBlockState;
import net.minecraft.block.state.pattern.BlockMatcher;
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;
import net.sorenleyxor.industria.register.BlocksRegister;
public class CopperOreWorldGenerator implements IWorldGenerator {
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) {
switch(world.provider.getDimension()) {
case -1: genNether(world,random,chunkX,chunkZ); break;
case 0: genSurface(world,random,chunkX,chunkZ); break;
case 1: genEnd(world,random,chunkX,chunkZ); break;
}
}
private void genEnd(World world, Random random, int chunkX, int chunkZ) {
}
private void genNether(World world, Random random, int chunkX, int chunkZ) {
}
private void genSurface ( World world , Random random , int chunkX , int chunkZ ) {
this.addOreSpawn (BlocksRegister.COPPER_ORE.getDefaultState(), world, random, chunkX, chunkZ, 16, 16, 8, 20, 20, 150, BlockMatcher.forBlock (Blocks.STONE));
}
private void addOreSpawn(IBlockState block, World world, Random random, int blockXPos, int blockZPos, int maxX, int maxZ, int maxVeinSize, int chance, int minY, int maxY, Predicate<IBlockState> blockToSpawnIn){
int diffMinMaxY =maxY - minY;
for(int x = 0; x < chance; x++){
int posX = blockXPos + random.nextInt(maxX);
int posY = minY + random.nextInt(diffMinMaxY);
int posZ = blockZPos + random.nextInt(maxZ);
(new WorldGenMinable(block, maxVeinSize, blockToSpawnIn)).generate(world, random, new BlockPos(posX, posY, posZ));
}
}
}
Код:
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.sorenleyxor.industria.register.BlocksRegister;
import net.sorenleyxor.industria.world.CopperOreWorldGenerator;
public class CommonProxy {
public void preInit(FMLPreInitializationEvent event) {
BlocksRegister.register();
GameRegistry.registerWorldGenerator(new CopperOreWorldGenerator(), 0);
}
public void init(FMLInitializationEvent event) {
}
public void postInit(FMLPostInitializationEvent event) {
}
}
Последнее редактирование: