• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Problème Génération

    1.9.x et 1.10.x
    1.9.4
    5
    22
    3724
    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.
    • jules552
      jules552 dernière édition par

      Bonjour,

      Je suis en train de mettre mon mod à jour de la 1.8.9 vers la 1.9, la seul vrai difficulté que j’ai est celle de la class qui gère la génération. Je n’arrive pas à trouver l’erreur, malgres un poste sur le forum officiel de Forge une personne a pu me guider mais sans succès.

      Je vous donne les 2 class qui gère la génération:

      package fr.jules552.mod.WorldGeneration;
      
      import java.util.Random;
      
      import fr.jules552.mod.Structures.Structure1;
      import fr.jules552.mod.init.BlocksMod;
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockDirt;
      import net.minecraft.block.BlockStone;
      import net.minecraft.block.state.IBlockState;
      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 net.minecraftforge.fml.common.IWorldGenerator;
      
      public class WorldGenAd implements IWorldGenerator
      {
         public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
         {
             switch(world.provider.getDimension())
             {
                 case -1:
                     GenerateNether(world, chunkX * 16, chunkZ * 16, random);
                     break;
      
                 case 0:
                     GenerateOverworld(world, chunkX * 16, chunkZ * 16, random);
                     break;
      
                 case 1:
                     GenerateEnd(world, chunkX * 16, chunkZ * 16, random);
             }
         }
      
         private void addOre(Block block, Block blockSpawn, Random random, World world, int posX, int posZ, int minY, int maxY, int minV, int maxV, int spawnChance)
         {
             for(int i = 0; i < spawnChance; i++)
             {
                 int defaultChunkSize = 16;
                 int Xpos = posX + random.nextInt(defaultChunkSize);
                 int Ypos = minY + random.nextInt(maxY - minY);
                 int Zpos = posZ + random.nextInt(defaultChunkSize);
      
                 IBlockState state = block.getDefaultState();
                 BlockPos blockPos = new BlockPos(Xpos, Ypos, Zpos);
      
                 new WorldGenMinable(state, maxV).generate(world, random, blockPos);
             }
         }
      
         private void GenerateNether(World world, int i, int j, Random random)
         {
      
         }
      
         private void GenerateOverworld(World world, int i, int j, Random random)
         {
             // Minerais
             addOre(BlocksMod.AdamantiumOre, Blocks.stone, random, world, i, j, 4, 16, 1, 3, 10);
             addOre(BlocksMod.SilverOre, Blocks.stone, random, world, i, j, 4, 48, 3, 4, 18);
             addOre(BlocksMod.AluminiumOre, Blocks.stone, random, world, i, j, 4, 48, 3, 6, 18);
      
             // Structures
             int Xpos = i + random.nextInt(16);
             int Ypos = random.nextInt(128);
             int Zpos = j + random.nextInt(16);
      
             for(int x = 0; x < 500; x++)
             {
                 new Structure1().genrate(world, random, new BlockPos(Xpos, Ypos, Zpos));
             }
         }
      
         private void GenerateEnd(World world, int i, int j, Random random)
         {
      
         }
      
         @Override
         public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider)
         {
      
         }
      }
      

      et la deuxième

      package fr.jules552.mod.WorldGeneration;
      
      import net.minecraftforge.fml.common.IWorldGenerator;
      import net.minecraftforge.fml.common.registry.GameRegistry;
      
      public class WorldRegisterAd
      {
         public static void MainRegistry()
         {
             regsiterWorldGen(new WorldGenAd(), -1);
             regsiterWorldGen(new WorldGenAd(), 0);
             regsiterWorldGen(new WorldGenAd(), 1);
         }
      
         private static void regsiterWorldGen(IWorldGenerator iGenerator, int weightProbability)
         {
             GameRegistry.registerWorldGenerator(iGenerator, weightProbability);
      
         }
      }
      

      En espérant que vous puissiez m’aider à régler ce problème, je précise que je ne suis qu’un simple amateur, donc une petit indication sur les choses à faire avec une explication serait grandement acceptée ^^
      Merci d’avance

      1 réponse Dernière réponse Répondre Citer 0
      • SCAREX
        SCAREX dernière édition par

        1- Mauvaise section
        2- Mets ton code dans des balises java
        3- Tu as quoi comme erreur dans ton IDE ?

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

        1 réponse Dernière réponse Répondre Citer 0
        • jules552
          jules552 dernière édition par

          Bonsoir, excuse moi pour l’erreur de Topic, ça prouve bien que je ne suis pas très doué ^^,
          je vois le code dans les balises java moi 🙂

          et voici les messages dans mon IDE mit sur un pastebin

          http://pastebin.com/z10CSc57

          Je te remercie de ta réponse très rapide 🙂

          1 réponse Dernière réponse Répondre Citer 0
          • SCAREX
            SCAREX dernière édition par

            Effectivement, la coloration syntaxique ne marche pas apparemment, désolé.

            Ce que tu as envoyé ce sont les logs, or il n’y a aucune erreur, en revanche ton ordinateur n’a pas l’air d’arriver à suivre

            Site web contenant mes scripts : http://SCAREXgaming.github.io

            Pas de demandes de support par MP ni par skype SVP.
            Je n'accepte sur skype que l…

            1 réponse Dernière réponse Répondre Citer 0
            • jules552
              jules552 dernière édition par

              @‘SCAREX’:

              Effectivement, la coloration syntaxique ne marche pas apparemment, désolé.

              Ce que tu as envoyé ce sont les logs, or il n’y a aucune erreur, en revanche ton ordinateur n’a pas l’air d’arriver à suivre

              Effectivement il possède quelque ralentissement mais ça ne change rien à la génération, il possédait les mêmes quand le mod était en 1.8.9 et la génération allait très bien ^^ (les ralentissements sont dû à des problèmes de drivers graphiques, petite précision inutile 🙂 )

              1 réponse Dernière réponse Répondre Citer 0
              • SCAREX
                SCAREX dernière édition par

                Ton IDE n’affiche pas d’erreurs ?

                Site web contenant mes scripts : http://SCAREXgaming.github.io

                Pas de demandes de support par MP ni par skype SVP.
                Je n'accepte sur skype que l…

                1 réponse Dernière réponse Répondre Citer 0
                • jules552
                  jules552 dernière édition par

                  @‘SCAREX’:

                  Ton IDE n’affiche pas d’erreurs ?

                  Non aucune erreur, c’est ça qui me surprend le plus d’ailleurs

                  1 réponse Dernière réponse Répondre Citer 0
                  • SCAREX
                    SCAREX dernière édition par

                    Rajoute un System.out.println(“quelque chose”) quand tu génères un minerai

                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                    Pas de demandes de support par MP ni par skype SVP.
                    Je n'accepte sur skype que l…

                    1 réponse Dernière réponse Répondre Citer 0
                    • jules552
                      jules552 dernière édition par

                      @‘SCAREX’:

                      Rajoute un System.out.println(“quelque chose”) quand tu génères un minerai

                      je le met ou le prinln ? (oui je suis assez doué pour ne pas savoir où se charge le minerai, c’est ça de suivre des tutos ^^ )

                      1 réponse Dernière réponse Répondre Citer 0
                      • SCAREX
                        SCAREX dernière édition par

                        Après ça : new WorldGenMinable(state, maxV).generate(world, random, blockPos);

                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                        Pas de demandes de support par MP ni par skype SVP.
                        Je n'accepte sur skype que l…

                        1 réponse Dernière réponse Répondre Citer 0
                        • jules552
                          jules552 dernière édition par

                          @‘SCAREX’:

                          Après ça : new WorldGenMinable(state, maxV).generate(world, random, blockPos);

                          Bon d’après ce que j’ai pu voir il n’y a aucun message, donc la génération n’est pas pris en compte, tient voilà la log si tu veux jeter un œil

                          http://pastebin.com/q04jhwfC

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

                            regsiterWorldGen(new WorldGenAd(), -1);
                                   regsiterWorldGen(new WorldGenAd(), 0);
                                   regsiterWorldGen(new WorldGenAd(), 1);
                            -> inutile.
                            Un seul suffit.
                            Le dernier nombre n’est pas l’id de génération mais un poids.

                            Vérifies que ta fonction MainRegistry est bien appelé.

                            (balise java corrigé + discussion déplacé dans la bonne section).

                            1 réponse Dernière réponse Répondre Citer 0
                            • jules552
                              jules552 dernière édition par

                              @‘robin4002’:

                              regsiterWorldGen(new WorldGenAd(), -1);
                                     regsiterWorldGen(new WorldGenAd(), 0);
                                     regsiterWorldGen(new WorldGenAd(), 1);
                              -> inutile.
                              Un seul suffit.
                              Le dernier nombre n’est pas l’id de génération mais un poids.

                              Vérifies que ta fonction MainRegistry est bien appelé.

                              (balise java corrigé + discussion déplacé dans la bonne section).

                              Merci pour le déplacement de topic ^^

                              Donc j’ai retiré les 2 regsiter superflus et ma fonction MainRegistry est belle est bien appelée

                              1 réponse Dernière réponse Répondre Citer 0
                              • Deleted
                                Deleted dernière édition par

                                Où ça ? Quelle méthode, quelle classe ?

                                1 réponse Dernière réponse Répondre Citer 0
                                • jules552
                                  jules552 dernière édition par

                                  @‘Plaigon’:

                                  Où ça ? Quelle méthode, quelle classe ?

                                  Voilà la classe :

                                   package fr.jules552.mod;
                                  
                                  import fr.jules552.mod.WorldGeneration.WorldRegisterAd;
                                  import fr.jules552.mod.init.BlocksMod;
                                  import fr.jules552.mod.init.ItemsMod;
                                  import fr.jules552.mod.init.Structures.StructureAdamantium;
                                  import fr.jules552.mod.proxy.CommonProxy;
                                  import net.minecraftforge.fml.common.Mod;
                                  import net.minecraftforge.fml.common.Mod.EventHandler;
                                  import net.minecraftforge.fml.common.SidedProxy;
                                  import net.minecraftforge.fml.common.event.FMLInitializationEvent;
                                  import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
                                  import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
                                  
                                  @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.MOD_VERSION)
                                  
                                  public class Adamantium 
                                  {
                                  
                                  @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS)
                                  public static CommonProxy proxy;
                                  
                                  @EventHandler
                                  public void preInit(FMLPreInitializationEvent event)
                                  {
                                  ItemsMod.init();
                                  ItemsMod.register();
                                  
                                  BlocksMod.init();
                                  BlocksMod.register();
                                  
                                  WorldRegisterAd.MainRegistry();
                                  
                                  StructureAdamantium.init();
                                  
                                  }
                                  @EventHandler
                                  public void init(FMLInitializationEvent event)
                                  {
                                  
                                  proxy.registerRenders();
                                  
                                  }
                                  
                                  @EventHandler
                                  public void postInit(FMLPostInitializationEvent event)
                                  {
                                  
                                  }
                                  }
                                  
                                  
                                  1 réponse Dernière réponse Répondre Citer 0
                                  • jules552
                                    jules552 dernière édition par

                                    Personne n’a d’idée pour résoudre ce problème assez gênant ? ;(

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • SCAREX
                                      SCAREX dernière édition par

                                      Tu as essayé d’augmenter la probabilité ?

                                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                                      Pas de demandes de support par MP ni par skype SVP.
                                      Je n'accepte sur skype que l…

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • jules552
                                        jules552 dernière édition par

                                        @‘SCAREX’:

                                        Tu as essayé d’augmenter la probabilité ?

                                        Non toujours pas , j’ai augmenter le spawnchance à 1000 mais ça donne rien

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

                                          Ajoutes des print un peu partout dans ta classe WorldGenAd, affiches les valeurs des variables, etc …

                                          C’est pas compliqué de déboguer du code.

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • jules552
                                            jules552 dernière édition par

                                            @‘robin4002’:

                                            Ajoutes des print un peu partout dans ta classe WorldGenAd, affiches les valeurs des variables, etc …

                                            C’est pas compliqué de déboguer du code.

                                            C’est bon j’ai résolu mon problème, j’ai pris une méthode assez radical c’est à dire refaire toute la classe qui gère la génération des minerais, en changeant un peu la méthode de génération.

                                            Merci à tous de votre aide quand même 🙂

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

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB