Génération Minerais 1.12.2



  • Vous allez me prendre pour un débile en postant ça mais j'ai suivis tout les tutoriel sur la génération de minerais qui étaient disponibles mais aucun ne marche, celui que j'ai utilisé était fait pour la 1.6.4 je pense qu'il n'est donc pas compatible avec la 1.12.2. Il y a t il un tuto pour la génération de minerais en 1.12.2 ?

    Voila mon code :

    package fr.gregoirelpv.gmv1.gen;
    
    import java.util.Random;
    
    import fr.gregoirelpv.gmv1.init.ModBlocks;
    import fr.gregoirelpv.gmv1.init.ModItems;
    import net.minecraft.block.Block;
    import net.minecraft.init.Blocks;
    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 WorldGenerator implements IWorldGenerator {
    
    	@Override
    	public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) {
    		switch(world.provider.dimensionId)
    		{
    		    case -1:
    		    this.generateNether(world, chunkX * 16, chunkZ * 16, random);
    		    break;
    		    case 0:
    		    this.generateSurface(world, chunkX * 16, chunkZ * 16, random);
    		    break;
    		    case 1:
    		    this.generateEnd(world, chunkX * 16, chunkZ * 16, random);
    		    break;
    		}
    	}
    	
    	private void generateSurface(World world, int x, int z, Random rand){
    		for(int i = 0; i < 1; i++){
    		    (new WorldGenMinable(ModBlocks.ruby_ore, 0, 2, Blocks.STONE)).generate(world, rand, x + rand.nextInt(16), rand.nextInt(16), z + rand.nextInt(16));
    		}
    	}
    	 
    	private void generateEnd(World world, int x, int z, Random rand){
    	}
    	 
    	private void generateNether(World world, int x, int z, Random rand){
    	}
    	
    	public void addOreSpawn(Block block, int metadata, Block target, World world, Random random, int blockXPos, int blockZPos, int maxX, int maxZ, int maxVeinSize, int chancesToSpawn, int minY, int maxY) {
    		 
    	    assert maxY > minY : "La position Y maximum doit être supérieure à la position Y minimum.";
    	    assert maxX > 0 && maxX <= 16 : "X doit se trouver entre 0 et 16.";
    	    assert minY > 0 : "La position Y minimum doit être supérieure à 0.";
    	    assert maxY < 256 && maxY > 0 : "La position Y maximum doit se trouver entre 0 et 256.";
    	    assert maxZ > 0 && maxZ <= 16 : "Z doit se trouver entre 0 et 16.";
    	 
    	    for(int i = 0; i < chancesToSpawn; i++)
    	    {
    	        int posY = random.nextInt(128);
    	 
    	        if((posY <= maxY) && (posY >= minY))
    	        {
    	 
    	        (new WorldGenMinable(block, metadata, maxVeinSize, target)).generate(world, random, blockXPos + random.nextInt(16), posY, blockZPos + random.nextInt(16));
    	 
    	        }
    	    }
    	}
    
    }
    
    
    

    J'ai une erreur sur "dimensionId" qui n'a l'air de ne pas exister ou je n'est pas du importer un truc. Une erreur aussi sur le "WorldGenMinable" et le ".generate". Et enfin dans ma class principale le "registerWorldGenerator" me demande un paramètre int du nom de "modGenerationWeight" et dans le tuto ce paramètre n'est pas mentionner

    Merci


  • Administrateurs

    Salut,
    dimensionId doit être remplacé par le getter getDimentionId()

    WorldGenMinable prend désormais en argument un BlockState et plus un bloc.

    Pour la fonction registerWorldGenerator mets simplement 0 comme valeur pour le paramètre modGenerationWeight.


Log in to reply