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.3k 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.
    • LeBossMax2L Hors-ligne
      LeBossMax2
      dernière édition par

      Salut, les deux premières erreur : c’est écrit en anglais, donc bon c’est pas compliqué : tu peux pas accéder à dimensionID donc utilise plutôt getDimensionID(). Et le generate à besoin d’un BlockPosdonc tu dois faire new BlockPos(calculdex, calculdey, calculdez).
      Pour le dernier problème, il faut utiliser BlockMatcher.

      EDIT: Robin, il me semble que GenWorldMinable a maintenant besoin d’un predicate à la place du block, donc c’est pas target qu’il faut mettre mais BlockMatcher (une class qui fait un predicate à partir d’un block).

      1 réponse Dernière réponse Répondre Citer 0
      • 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