MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Problème Génération de minerai 1.12.2

    Planifier Épinglé Verrouillé Déplacé Résolu Support pour les utilisateurs
    7 Messages 2 Publieurs 347 Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • P Hors-ligne
      Prutix
      dernière édition par

      Bonjour,
      je suis en train de développer un mod et j’ai un petit problème : les minerais ne se génèrent pas.
      J’espère que vous pourrez m’aider.
      Merci d’avance

      public class ExaWorldGen implements IWorldGenerator
      {	
      	@Override
      	public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
      	{
      		switch(world.provider.getDimension())
      		{
      			case -1:
      				generateEnd(world, random, chunkZ * 16, chunkX * 16);
      				break;
      			
      			case 0:
      				generateOverWorld(world, random, chunkZ * 16, chunkX * 16);
      				break;
      				
      			case 1:
      				generateNether(world, random, chunkZ * 16, chunkX * 16);
      				break;
      		}
      	}
      	
      
      	private void generateEnd(World world, Random random, int x, int z)
      	{
      		
      	}
      
      	private void generateOverWorld(World world, Random random, int x, int z)
      	{
      		this.addOreSpawn(ExaBlocksMods.hyperlum_ore, '0', Blocks.STONE, world, random, x, z, 16, 16, 5, 3, 6, 20);
      		this.addOreSpawn(ExaBlocksMods.oyate_ore, '0', Blocks.STONE, world, random, x, z, 16, 16, 5, 3, 6, 20);
      		this.addOreSpawn(ExaBlocksMods.exate_ore, '0', Blocks.STONE, world, random, x, z, 16, 16, 5, 3, 6, 20);
      		this.addOreSpawn(ExaBlocksMods.orium_ore, '0', Blocks.STONE, world, random, x, z, 16, 16, 5, 3, 6, 20);
      	}
      
      	private void generateNether(World world, Random random, int x, int z)
      	{
      		
      	}
      	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 ;
      	    assert maxX > 0 && maxX <= 16 ;
      	    assert minY > 0 ;
      	    assert maxY < 256 && maxY > 0 ;
      	    assert maxZ > 0 && maxZ <= 16 ;
      	 
      	    for(int i = 0; i < chancesToSpawn; i++)
      	    {
      	        int posY = random.nextInt(128);
      	 
      	        if((posY <= maxY) && (posY >= minY))
      	        {
      	 
      
      				WorldGenerator generator = new WorldGenMinable(block.getDefaultState(), maxVeinSize, BlockMatcher.forBlock(block));
      	 
      	        }
      	    }
      	}
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • John_71J Hors-ligne
        John_71
        dernière édition par

        Salut, j’ai remarqué deux “petits” trucs dans ton code :

        • Inversion des coordonnées x et z dans l’appel et la déclaration des generate<dimension>
        • addOreSpawn requiert un entier en ‘metadata’, or tu lui donnes un caractère

        En espérant que cela puisse t’aider

        • Maintient des mods et modpacks en `1.18.2`
        • Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 points de réputation.

        1 réponse Dernière réponse Répondre Citer 0
        • P Hors-ligne
          Prutix
          dernière édition par

          je test en ce moment même et je te dis

          1 réponse Dernière réponse Répondre Citer 0
          • P Hors-ligne
            Prutix
            dernière édition par

            Toujours pas de génération avec ce que tu m’as dsi de changer le code ressemble a ça mtn

            package fr.exatium.examod.exainit;
            
            import java.util.Random;
            
            import net.minecraft.block.Block;
            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.minecraft.world.gen.feature.WorldGenerator;
            import net.minecraftforge.fml.common.IWorldGenerator;
            
            public class ExaWorldGen implements IWorldGenerator
            {	
            	@Override
            	public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
            	{
            		switch(world.provider.getDimension())
            		{
            			case -1:
            				generateEnd(world, random, chunkZ * 16, chunkX * 16);
            				break;
            			
            			case 0:
            				generateOverWorld(world, random, chunkZ * 16, chunkX * 16);
            				break;
            				
            			case 1:
            				generateNether(world, random, chunkZ * 16, chunkX * 16);
            				break;
            		}
            	}
            	
            
            	private void generateEnd(World world, Random random, int x, int z)
            	{
            		
            	}
            
            	private void generateOverWorld(World world, Random random, int x, int z)
            	{
            		this.addOreSpawn(ExaBlocksMods.hyperlum_ore, 0, Blocks.STONE, world, random, z, x, 16, 16, 5, 3, 6, 20);
            		this.addOreSpawn(ExaBlocksMods.oyate_ore, 0, Blocks.STONE, world, random, z, x, 16, 16, 5, 3, 6, 20);
            		this.addOreSpawn(ExaBlocksMods.exate_ore, 0, Blocks.STONE, world, random, z, x, 16, 16, 5, 3, 6, 20);
            		this.addOreSpawn(ExaBlocksMods.orium_ore, 0, Blocks.STONE, world, random, z, x, 16, 16, 5, 3, 6, 20);
            	}
            
            	private void generateNether(World world, Random random, int x, int z)
            	{
            		
            	}
            	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 ;
            	    assert maxX > 0 && maxX <= 16 ;
            	    assert minY > 0 ;
            	    assert maxY < 256 && maxY > 0 ;
            	    assert maxZ > 0 && maxZ <= 16 ;
            	 
            	    for(int i = 0; i < chancesToSpawn; i++)
            	    {
            	        int posY = random.nextInt(128);
            	 
            	        if((posY <= maxY) && (posY >= minY))
            	        {
            	 
            
            				WorldGenerator generator = new WorldGenMinable(block.getDefaultState(), maxVeinSize, BlockMatcher.forBlock(block));
            	 
            	        }
            	    }
            	}
            }
            
            
            1 réponse Dernière réponse Répondre Citer 0
            • P Hors-ligne
              Prutix
              dernière édition par

              Finalement j’ai trouvé le problème merci pour tout!!!

              1 réponse Dernière réponse Répondre Citer 0
              • John_71J Hors-ligne
                John_71
                dernière édition par

                Peux-tu l’expliquer ?

                • Maintient des mods et modpacks en `1.18.2`
                • Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 points de réputation.

                1 réponse Dernière réponse Répondre Citer 0
                • P Hors-ligne
                  Prutix
                  dernière édition par

                  j’avais mis dans le mauvaise ordre : je devais mettre dans l’ordre 6 20 5 3

                  1 réponse Dernière réponse Répondre Citer 0
                  • 1 / 1
                  • Premier message
                    Dernier message
                  Design by Woryk
                  ContactMentions Légales

                  MINECRAFT FORGE FRANCE © 2024

                  Powered by NodeBB