Не работает генератор руды

Версия Minecraft
1.12.2
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) {

    }
    
}
 
Последнее редактирование:
5,018
47
783
Java:
public class CopperOreWorldGenerator implements IWorldGenerator {

    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) {
        
        switch(world.provider.getDimension()) {
          
        genSurface(world,random,chunkX,chunkZ)
          
          }
          
        }
    private  void  genSurface ( World world , Random random ,  int chunkX ,  int chunkZ ) {
         addOreSpawn (BlocksRegister.COPPER_ORE.getDefaultState(), world, random, chunkX, chunkZ, 16, 16, 50, 20, 10, 100, 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));
          }
         }

}
 
1,031
19
87
Java:
public class CopperOreWorldGenerator implements IWorldGenerator {

    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) {
       
        switch(world.provider.getDimension()) {
         
        genSurface(world,random,chunkX,chunkZ)
         
          }
         
        }
    private  void  genSurface ( World world , Random random ,  int chunkX ,  int chunkZ ) {
         addOreSpawn (BlocksRegister.COPPER_ORE.getDefaultState(), world, random, chunkX, chunkZ, 16, 16, 50, 20, 10, 100, 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));
          }
         }

}
У меня сработало вот так:
Java:
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 0: genSurface(world, random, chunkX * 16, chunkZ * 16); break;
          
          }
          
        }
    private  void  genSurface ( World world , Random random ,  int chunkX ,  int chunkZ ) {
         addOreSpawn (BlocksRegister.COPPER_ORE.getDefaultState(), world, random, chunkX, chunkZ, 16, 16, 50, 20, 10, 100, 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));
          }
         }

}
Но теперь не пойму где какой параметр изменить на число, тип макс высота и концентрацмя в жиле
 

Icosider

Kotliner
Администратор
3,603
99
664
Java:
public class CopperOreWorldGenerator implements IWorldGenerator {

    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) {
       
        switch(world.provider.getDimension()) {
         
        genSurface(world,random,chunkX,chunkZ)
         
          }
         
        }
    private  void  genSurface ( World world , Random random ,  int chunkX ,  int chunkZ ) {
         addOreSpawn (BlocksRegister.COPPER_ORE.getDefaultState(), world, random, chunkX, chunkZ, 16, 16, 50, 20, 10, 100, 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));
          }
         }

}
Java:
switch(world.provider.getDimension()) {
          
        genSurface(world,random,chunkX,chunkZ)
          
          }
Facepalm...
Java:
if (world.provider.getDimension() == 0)
{
    genSurface(world, random, chunkX, chunkZ)
}
Быстрее будет...
 
5,018
47
783
Сверху