MFF

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

    Bug génération

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.x
    5 Messages 3 Publieurs 1.2k 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.
    • bin4r1sB Hors-ligne
      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
      • DiangleD Hors-ligne
        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
        • bin4r1sB Hors-ligne
          bin4r1s
          dernière édition par

          Ouaip

          Mes mods:

          • New Ores
          • More Dragons
          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

            @‘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
            • bin4r1sB Hors-ligne
              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
              ContactMentions Légales

              MINECRAFT FORGE FRANCE © 2024

              Powered by NodeBB