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

    Résolu Bug génération

    1.7.x
    1.7.x
    3
    5
    1140
    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.
    • bin4r1s
      bin4r1s dernière édition par robin4002

      Bonjour, alors que je testai la génération d’une de mes structures, je me suis rendu compte que la génération de celle-ci détruisait complètement la logique de mise à jour du jeu (je pouvais bouger, mais tout ce qui était IA, génération etc ne répondait plus) et aucun rapport de crash donc.

      Classe principale :

      ...
      @EventHandler
      public void Init(FMLInitializationEvent event)
      {
          GameRegistry.registerWorldGenerator(new DragonsWorldGenerator(), 100);
      }
      ...
      

      DragonsWorldGenerator.java :

      ...
      private void generateSurface(World world, int x, int z, Random random)
      {
          int x1 = x + random.nextInt(16);
           int z1 = z + random.nextInt(16);
          int y1 = random.nextInt(3);
          for(int i = 0; i < 1; i++)
          {
              (new WorldGenDungeonRoomSmall()).generate(world, random, x1, y1, z1);
          }
      }
      ...
      

      WorldGenDungeonRoomSmall.java :

      package fr.MrBlockTNT.Dragons.world.structure.ice;
      
      import java.util.Random;
      
      import fr.MrBlockTNT.Dragons.core.Dragons;
      
      import net.minecraft.init.Blocks;
      import net.minecraft.world.World;
      import net.minecraft.world.gen.feature.WorldGenerator;
      
      public class WorldGenDungeonRoomSmall extends WorldGenerator
      {
          @Override
          public boolean generate(World world, Random rand, int x, int y, int z)
          {
              if(world.getBlock(x, y - 1, z) != Blocks.air)
              {
                  // Clear
                  for(int i = 0; i < 9; i++)
                  {
                      for(int j = 0; i < 7; j++)
                      {
                          for(int k = 0; k < 9; k++)
                          {
                              world.setBlock(x + i, y + j, z + k, Blocks.air);
                          }
                      }
                  }
      
                  for(int i = 0; i < 9; i++)
                  {
                      for(int j = 0; j < 9; j++)
                      {
                          world.setBlock(x + i, y, z + j, Dragons.frozen_cobblestone);
                      }
                  }
      
                  for(int i = 0; i < 9; i++)
                  {
                      for(int j = 0; j < 9; j++)
                      {
                          world.setBlock(x + i, y + 6, z + j, Dragons.frozen_cobblestone);
                      }
                  }
      
                  for(int i = 0; i < 9; i++)
                  {
                      for(int j = 0; j < 7; j++)
                      {
                          world.setBlock(x, y + j, z + i, Dragons.frozen_cobblestone);
                      }
                  }
      
                  for(int i = 0; i < 9; i++)
                  {
                      for(int j = 0; j < 7; j++)
                      {
                          world.setBlock(x + 8, y + j, z + i, Dragons.frozen_cobblestone);
                      }
                  }
      
                  for(int i = 0; i < 9; i++)
                  {
                      for(int j = 0; j < 7; j++)
                      {
                          world.setBlock(x + i, y + j, z, Dragons.frozen_cobblestone);
                      }
                  }
      
                  for(int i = 0; i < 9; i++)
                  {
                      for(int j = 0; j < 7; j++)
                      {
                          world.setBlock(x + i, y + j, z + 8, Dragons.frozen_cobblestone);
                      }
                  }
                  return true;
              }
              return false;
          }
      }
      

      Mes mods:

      • New Ores
      • More Dragons
      1 réponse Dernière réponse Répondre Citer 0
      • Diangle
        Diangle dernière édition par

        Tu as regarder le tuto

        edit : je n’ai pas regarder le code.

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

          Ouaip

          Mes mods:

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

            @‘MrBlockTNT’:

            Bonjour, alors que je testai la génération d’une de mes structures, je me suis rendu compte que la génération de celle-ci détruisait complètement la logique de mise à jour du jeu (je pouvais bouger, mais tout ce qui était IA, génération etc ne répondait plus) et aucun rapport de crash donc.

            Ça veut dire que le world client répond toujours mais pas le world server.
            Les world.setBlock sont beaucoup trop gourmand, c’est pour ça que minecraft utilise autre chose pour la génération des mines.

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

              C’est trop gourmand pour une structure de 9x9x7 alors que pour une structure de 53x53x21 ça prend une dizaine de secondes ? 😮
              Mais merci quand même, je vais jeter un oeil aux codes de Minecraft. Sujet résolu.

              Mes mods:

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

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB