MFF

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

    Génération

    Planifier Épinglé Verrouillé Déplacé Résolu 1.9.x et 1.10.x
    1.10.x
    16 Messages 4 Publieurs 2.4k Vues 1 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.
    • G Hors-ligne
      Galwed
      dernière édition par

      Bonsoir tous le monde je viens de reussir grâce à vous a supprimer tous les bugs mais né s’en moins j’ai un problème lors de la génération le bloc n’apparait à aucun endroit dans le monde.

      package fr.topycraft.ModPackTopyCraft.worldgeneration;
      
      import net.minecraft.block.Block;
      import net.minecraft.init.Blocks;
      import net.minecraft.util.math.BlockPos;
      import net.minecraft.world.World;
      import net.minecraft.world.chunk.IChunkGenerator;
      import net.minecraft.world.chunk.IChunkProvider;
      import net.minecraft.world.gen.feature.WorldGenMinable;
      import java.util.Random;
      import fr.topycraft.ModPackTopyCraft.blocks.ModPackTopyCraftBlocks;
      import joptsimple.internal.Classes;
      
      public class WorldGeneration implements net.minecraftforge.fml.common.IWorldGenerator
      {
         @Override
         public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
         {
             switch(world.provider.getDimension())
             {
             case -1:
                 generateNether(world, random, chunkX * 16, chunkZ * 16);
                 break;
      
             case 0:
                 generateSurface(world, random, chunkX * 16, chunkZ * 16);
                 break;
      
             case 1:
                 generateEnd(world, random, chunkX * 16, chunkZ * 16);
                 break;
             }
         }
      
         private void generateEnd(World world, Random random, int x, int z) {
      
         }
      
         private void generateSurface(World world, Random random, int x, int z) {
      
         }
      
         private void generateNether(World world, Random random, int x, int z) {
      
             this.addOreSpawn(ModPackTopyCraftBlocks.TOPYDUIM_MINERAIS, 0, Blocks.STONE, world, random, x, z, 16, 16, 8, 20, 6, 12);
         }
      
         public void addOreSpawn(Block block, int metadata, Block target, World world1, Random random1, 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 i1 = 0; i1 < chancesToSpawn; i1++)
             {
                 int posY = random1.nextInt(128);
      
                 if((posY <= maxY) && (posY >= minY))
                 {
                  new WorldGenMinable(ModPackTopyCraftBlocks.TOPYDUIM_MINERAIS.getDefaultState() ,maxVeinSize);
                     generate(world1, random1, blockXPos + random1.nextInt(16), posY, blockZPos + random1.nextInt(16));
                 }
             }
        }
      
      private void generate(World world1, Random random1, int x, int posY, int z) {
      
      }
      }
      

      Voici le code ci-dessus bonne soirée à tous

      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

        Sachant que tu essaies de générer le bloc dans la dimension -1 (nether), le résultat n’est pas étonnant.

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

          Il me suffit de changer les world1 par world0 pour faire générer dans le monde normal ?

          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

            Non, il faut mettre la ligne :
            this.addOreSpawn(ModPackTopyCraftBlocks.TOPYDUIM_MINERAIS, 0, Blocks.STONE, world, random, x, z, 16, 16, 8, 20, 6, 12);
            Dans generateSurface au lieu de generateNether.

            Et d’ailleurs dans ta fonction addOreSpawn faudrait mettre block.getDefaultState() au lieu de ModPackTopyCraftBlocks.TOPYDUIM_MINERAIS.getDefaultState()

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

              Après avoir réaliser tous sa les blocks n’apparaisse pas quand meme .

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

                Tu peux m’expliquer pourquoi, après avoir fait new WorldGenMinable tu appelles une fonction generate vide au lieu d’appeler la fonction du WorldGenMinable ? En tous cas c’est ça le dernier problème.

                Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                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

                  Ho, je n’avais même pas remarqué x)

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

                    En faite cette ligne de code me demande de crée la méthode generate

                                new WorldGenMinable(block.getDefaultState() ,maxVeinSize);
                                   generate(world1, random1, blockXPos + random1.nextInt(16), posY, blockZPos + random1.nextInt(16));
                    

                    Donc je crée sa méthode et sa me donne cela

                    private void generate(World world1, Random random1, int i, int posY, int j)
                    
                    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

                      new WorldGenMinable(block.getDefaultState() ,maxVeinSize).generate(world1, random1, blockXPos + random1.nextInt(16), posY, blockZPos + random1.nextInt(16));
                      Il faut un . et non un ;

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

                        Voila si je met un point le problème. 

                        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

                          On ne voit pas tout le message d’erreur.

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

                            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

                              Replaces par :
                              generate(world1, random1, new BlockPos(blockXPos + random1.nextInt(16), posY, blockZPos + random1.nextInt(16)));

                              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