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

Résolu Génération

1.9.x et 1.10.x
1.10.x
4
16
2.1k
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
    Galwed dernière édition par 6 juin 2017, 15:35

    Bonjour tous le monde j’ai trois erreurs dans mon code plusieurs personnes mon déjà aider a régler cela mais sa ne marche toujours pas je vous laisse mon code est mes trois erreurs.

    package fr.topycraft.ModPackTopyCraft.worldgeneration;
    import net.minecraft.block.Block;
    import net.minecraft.init.Blocks;
    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;
    public class WorldGeneration implements net.minecraftforge.fml.common.IWorldGenerator {
    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
    {
    {
    switch(world.provider.dimensionId)
    {
    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, 1, 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(block, metadata, maxVeinSize. target)).generate(world1, random1, blockXPos + random1.nextInt(16), posY, blockZPos + random1.nextInt(16));
    }
    }
       }
    @Override
    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator,
    IChunkProvider chunkProvider) {
    }
    }

    Mes trois erreurs sont écrite juste ci-dessous.
    Je vous remercie d’avance de m’avoir aider bonne soirée.

    1 réponse Dernière réponse Répondre Citer 0
    • robin4002
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 6 juin 2017, 15:59

      Salut,
      Tu as une fonction en double dont une avec les mauvais arguments, il y a une variable qui doit être remplacé par un getter et tu as un point là où tu devrais avoir une virgule. Code corrigé :

      package fr.topycraft.ModPackTopyCraft.worldgeneration;
      import net.minecraft.block.Block;
      import net.minecraft.init.Blocks;
      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;
      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.getDimensionId())
      {
      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, 1, 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(block, metadata, maxVeinSize, target)).generate(world1, random1, blockXPos + random1.nextInt(16), posY, blockZPos + random1.nextInt(16));
      }
      }
      }
      }
      1 réponse Dernière réponse Répondre Citer 0
      • LeBossMax2
        LeBossMax2 dernière édition par 6 juin 2017, 16:00

        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
          Galwed dernière édition par 7 juin 2017, 14:02

          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
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 7 juin 2017, 15:29

            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
              Galwed dernière édition par 8 juin 2017, 08:28

              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
              • robin4002
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 8 juin 2017, 08:37

                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
                  Galwed dernière édition par 8 juin 2017, 21:46

                  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
                  • AymericRed
                    AymericRed dernière édition par 9 juin 2017, 05:40

                    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
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 9 juin 2017, 07:53

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

                      1 réponse Dernière réponse Répondre Citer 0
                      • G
                        Galwed dernière édition par 9 juin 2017, 07:58

                        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
                        • robin4002
                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 9 juin 2017, 08:39

                          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
                            Galwed dernière édition par 9 juin 2017, 14:09

                            Voila si je met un point le problème. 

                            1 réponse Dernière réponse Répondre Citer 0
                            • robin4002
                              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 9 juin 2017, 14:39

                              On ne voit pas tout le message d’erreur.

                              1 réponse Dernière réponse Répondre Citer 0
                              • G
                                Galwed dernière édition par 9 juin 2017, 14:41

                                1 réponse Dernière réponse Répondre Citer 0
                                • robin4002
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 9 juin 2017, 14:44

                                  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
                                  1 sur 16
                                  • Premier message
                                    1/16
                                    Dernier message
                                  Design by Woryk
                                  Contact / Mentions Légales

                                  MINECRAFT FORGE FRANCE © 2018

                                  Powered by NodeBB