MFF

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

    Générations de minerais

    Planifier Épinglé Verrouillé Déplacé La génération & les dimensions
    1.6.x
    69 Messages 17 Publieurs 28.6k 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.
    • FlowF Hors-ligne
      Flow
      dernière édition par

      @‘gagoi’:

      Normalement c’est bon, mais pour le nom des Items et des blocs tu devrais utiliser les fichiers lang, c’est plus efficace et ça permet de clarifier le code.

      Oké je retiens 🙂 Merci , tout marche les crafts sont devenu opérationnel par la suite ainsi que le génération de monde maintenant je mine en créa a la couche 16 et je n’ai pas vu mon minerai , qu’est-ce qui pourrait causer sa ?

      EDIT : Je n’ai riens dit mon minerai est générer MERCI BEAUCOUP ! 😄

      Oui ce gif est drôle.

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

        De rien. 🙂

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

          Salut j’aimerais générer dans l’end mon minerai mais sur la surface de l’end donc la ou on marche si vous préférer , mais comment faire ?

          Oui ce gif est drôle.

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

            Tu fait une condition pour vérifier si il y a un bloc d’air au-dessus du bloc de pierre de l’end.

            1 réponse Dernière réponse Répondre Citer 0
            • robin4002R Hors-ligne
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs
              dernière édition par

              for(int i = 0; i < probabilité; i++)
              {
              int targetX = x + rand.nextInt(16);
              int targetY = rand.nextInt(192);
              int targetZ = z + rand.nextInt(16);
              if(world.isAirBlock(targetZ, targetY, targetZ)
              {
              (new WorldGenMinable(id du bloc à générer, metadata du bloc à générer, taille maximum d un filon, Block.whiteStone.blockID)).generate(world, rand, targetX, targetY, targetZ);
              }
              }
              

              Parcontre monte bien la prob, sinon il se généra que très rarement.

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

                Merci beaucoup à vous deux ! 😄

                Oui ce gif est drôle.

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

                  A croire que je ne suis pas très intelligent j’ai une question à chaque fois que je veut génerger un minerai je dois refaire un classe ou je l’ajoute simplement dans la case correspondant ? Car le minerai de néphrite ne se génère pas dans l’end ! Sad

                  Oui ce gif est drôle.

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002R Hors-ligne
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                    dernière édition par

                    Il faut mettre dans la même classe. Envoie ton code.

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

                      Voici mon code : j’ai un deuxième soucis mon generateNether se souligne en rouge comme si il avais été supprimer normal ?

                      
                      package chinesemod;
                      
                      import java.util.Random;
                      
                      import net.minecraft.block.Block;
                      import net.minecraft.world.World;
                      import net.minecraft.world.chunk.IChunkProvider;
                      import net.minecraft.world.gen.feature.WorldGenMinable;
                      import cpw.mods.fml.common.IWorldGenerator;
                      
                      public class WorldGeneratorTutoriel implements IWorldGenerator {
                      
                      @Override
                      public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
                      {
                      switch(world.provider.dimensionId)
                      {
                      case -1:
                      this.generateEnd(world, chunkX * 16, chunkZ * 16, random);
                      case 0:
                      this.generateSurface(world, chunkX * 16, chunkZ * 16, random);
                      case 1:
                      //*this.generateNether(world, chunkX * 16, chunkZ * 16, random);*//
                      }
                      }
                      
                      private void generateSurface(World world, int x, int z, Random rand)
                      {
                      for(int i = 0; i < 14; i++)
                      {
                      (new WorldGenMinable(chinesemodmain.oretopaze.blockID, 0, 6, Block.stone.blockID)).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)
                      {
                      for(int i = 0; i < 100; i++)
                      {
                      int targetX = x + rand.nextInt(16);
                      int targetY = rand.nextInt(192);
                      int targetZ = z + rand.nextInt(16);
                      if(world.isAirBlock(targetZ, targetY, targetZ))
                      {
                      (new WorldGenMinable(chinesemodmain.orenephrite.blockID, 0, 6, Block.whiteStone.blockID)).generate(world, rand, targetX, targetY, targetZ);
                      }
                      }
                      
                      }
                      
                      }
                      
                      

                      Oui ce gif est drôle.

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

                        Faut pas @Override ?

                        Vérifie tes params aussi

                        "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                        ― Jordan B. Peterson

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

                          Le @Override y est , mes paramètres sont bon normalement . . . 😕

                          Oui ce gif est drôle.

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

                            Screen l’erreur eclipse et envoie le

                            "If you have a comprehensive explanation for everything then it decreases uncertainty and anxiety and reduces your cognitive load. And if you can use that simplifying algorithm to put yourself on the side of moral virtue then you’re constantly a good person with a minimum of effort."
                            ― Jordan B. Peterson

                            1 réponse Dernière réponse Répondre Citer 0
                            • FlowF Hors-ligne
                              Flow
                              dernière édition par robin4002

                              0_1537565556918_probleme1.png Voici

                              Oui ce gif est drôle.

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002R Hors-ligne
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                dernière édition par

                                Il créer une méthode generateNether comme pour l’end et l’overworld :

                                private void generateNether(World world, int x, int z, Random rand)
                                {
                                }
                                
                                1 réponse Dernière réponse Répondre Citer 0
                                • FlowF Hors-ligne
                                  Flow
                                  dernière édition par

                                  Super sa à régler le problème mais mon minerai dans l’end n’est toujours pas génerer ! 😞

                                  Oui ce gif est drôle.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • robin4002R Hors-ligne
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                    dernière édition par

                                    Je suis vraiment désolé 😕
                                    Je suis parti faire des tests sur eclipse, et je viens de me rendre compte qu’il y a une grosse faute dans le tutoriel.
                                    -1 = Nether et 1 = end, et non l’inverse :/. Je viens d’éditer le tutoriel.

                                    On a donc :

                                    switch(world.provider.dimensionId)
                                    {
                                    case -1:
                                    this.generateNether(world, chunkX * 16, chunkZ * 16, random);
                                    case 0:
                                    this.generateSurface(world, chunkX * 16, chunkZ * 16, random);
                                    case 1:
                                    this.generateEnd(world, chunkX * 16, chunkZ * 16, random);
                                    }
                                    

                                    Ensuite pour la génération seulement en surface, le problème du code que je t’ai donné, c’est qu’il va que générer si le random tombe sur un cas où le bloc juste au dessus est de l’air, ce qui est très rare.

                                    Donc je te propose une meilleur solution, si le bloc au dessus du minerai n’est pas de l’air, il monte de 1 la coordonné y où il doit se générer. Ainsi les minerais ne se génèrent que en surface.

                                    private void generateEnd(World world, int x, int z, Random rand)
                                    {
                                    for(int i = 0; i < 4; i++)
                                    {
                                    (new WorldGenSurfaceMinable(ModTutoriel.BlockTutorial.blockID, 0, 12, Block.whiteStone.blockID)).generate(world, rand, x + rand.nextInt(16), rand.nextInt(128), z + rand.nextInt(16));
                                    }
                                    }
                                    

                                    Et la classe WorldGenSurfaceMinable :

                                    package tutoriel.common;
                                    
                                    import java.util.Random;
                                    
                                    import net.minecraft.block.Block;
                                    import net.minecraft.util.MathHelper;
                                    import net.minecraft.world.World;
                                    import net.minecraft.world.gen.feature.WorldGenerator;
                                    
                                    public class WorldGenSurfaceMinable extends WorldGenerator
                                    {
                                    private int minableBlockId;
                                    private int minableBlockMeta = 0;
                                    
                                    private int numberOfBlocks;
                                    
                                    private int blockToReplace;
                                    
                                    public WorldGenSurfaceMinable(int id, int number)
                                    {
                                    this(id, number, Block.whiteStone.blockID);
                                    }
                                    
                                    public WorldGenSurfaceMinable(int id, int number, int target)
                                    {
                                    this.minableBlockId = id;
                                    this.numberOfBlocks = number;
                                    this.blockToReplace = target;
                                    }
                                    
                                    public WorldGenSurfaceMinable(int id, int meta, int number, int target)
                                    {
                                    this(id, number, target);
                                    this.minableBlockMeta = meta;
                                    }
                                    
                                    public boolean generate(World world, Random rand, int x, int y, int z)
                                    {
                                    float f = rand.nextFloat() * (float)Math.PI;
                                    double d0 = (double)((float)(x + 8) + MathHelper.sin(f) * (float)this.numberOfBlocks / 8.0F);
                                    double d1 = (double)((float)(x + 8) - MathHelper.sin(f) * (float)this.numberOfBlocks / 8.0F);
                                    double d2 = (double)((float)(z + 8) + MathHelper.cos(f) * (float)this.numberOfBlocks / 8.0F);
                                    double d3 = (double)((float)(z + 8) - MathHelper.cos(f) * (float)this.numberOfBlocks / 8.0F);
                                    double d4 = (double)(y + rand.nextInt(3) - 2);
                                    double d5 = (double)(y + rand.nextInt(3) - 2);
                                    
                                    for (int l = 0; l <= this.numberOfBlocks; ++l)
                                    {
                                    double d6 = d0 + (d1 - d0) * (double)l / (double)this.numberOfBlocks;
                                    double d7 = d4 + (d5 - d4) * (double)l / (double)this.numberOfBlocks;
                                    double d8 = d2 + (d3 - d2) * (double)l / (double)this.numberOfBlocks;
                                    double d9 = rand.nextDouble() * (double)this.numberOfBlocks / 16.0D;
                                    double d10 = (double)(MathHelper.sin((float)l * (float)Math.PI / (float)this.numberOfBlocks) + 1.0F) * d9 + 1.0D;
                                    double d11 = (double)(MathHelper.sin((float)l * (float)Math.PI / (float)this.numberOfBlocks) + 1.0F) * d9 + 1.0D;
                                    int i1 = MathHelper.floor_double(d6 - d10 / 2.0D);
                                    int j1 = MathHelper.floor_double(d7 - d11 / 2.0D);
                                    int k1 = MathHelper.floor_double(d8 - d10 / 2.0D);
                                    int l1 = MathHelper.floor_double(d6 + d10 / 2.0D);
                                    int i2 = MathHelper.floor_double(d7 + d11 / 2.0D);
                                    int j2 = MathHelper.floor_double(d8 + d10 / 2.0D);
                                    
                                    while(!world.isAirBlock(i1, j1 + 2, k1))
                                    {
                                    j1++;
                                    }
                                    for (int k2 = i1; k2 <= l1; ++k2)
                                    {
                                    double d12 = ((double)k2 + 0.5D - d6) / (d10 / 2.0D);
                                    
                                    if (d12 * d12 < 1.0D)
                                    {
                                    for (int l2 = j1; l2 <= i2; ++l2)
                                    {
                                    double d13 = ((double)l2 + 0.5D - d7) / (d11 / 2.0D);
                                    
                                    if (d12 * d12 + d13 * d13 < 1.0D)
                                    {
                                    for (int i3 = k1; i3 <= j2; ++i3)
                                    {
                                    double d14 = ((double)i3 + 0.5D - d8) / (d10 / 2.0D);
                                    
                                    Block block = Block.blocksList[world.getBlockId(k2, l2, i3)];
                                    if (d12 * d12 + d13 * d13 + d14 * d14 < 1.0D && (block != null && block.isGenMineableReplaceable(world, k2, l2, i3, this.blockToReplace)))
                                    {
                                    world.setBlock(k2, l2, i3, this.minableBlockId, minableBlockMeta, 2);
                                    }
                                    }
                                    }
                                    }
                                    }
                                    }
                                    }
                                    return true;
                                    }
                                    }
                                    
                                    1 réponse Dernière réponse Répondre Citer 0
                                    • FlowF Hors-ligne
                                      Flow
                                      dernière édition par

                                      Merci sa marche !! J’ai un soucis hors-sujet , j’ai parfois mes images de blocs et d’item qui disparaisse 😞

                                      Oui ce gif est drôle.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002R Hors-ligne
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                        dernière édition par

                                        Créer un nouveau poste ici : http://www.minecraftforgefrance.fr/forumdisplay.php?fid=34
                                        Et soit plus précis, les images qui disparaît c’est trop vague :s

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

                                          Bonjours, je ne sais pas si cela a été écrit dans les questions, mais je n’arrive pas a faire générer des minerais dans le nether j’ai essayer beaucoup de chose en changeant le “WorldGenMinable” en “WorldGenMinableNether” en modifiant des ligne, mais je n’y arrive pas, si quelqu’un peut m’aider je lui en serai extrêmement reconnaissant. Si vous pouvez m’aidez à en faire générer aussi dans l’End se serai génial merci encore

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • robin4002R Hors-ligne
                                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                            dernière édition par

                                            for(int i = 0; i < probabilité; i++)
                                            {
                                            (new WorldGenMinable(id du bloc à générer, metadata du bloc à générer, taille maximum d un filon, id du bloc qui va être remplacé)).generate(world, rand, x + rand.nextInt(16), rand.nextInt(hauteur maximum), z + rand.nextInt(16));
                                            }
                                            

                                            id du bloc qui va être remplacé
                                            Il faut que tu mettes la nether rack ici ou la soul sand, et pour l’end l’endstone.

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB