Regroupements de questions sur dimension et autres



  • Bonjour à tous, je profite d'être malade pour écrire un bon petit pavé concernant les bugs et erreurs que j'ai:

    Je renverrai tout d'abord sur ce problème qui est toujours en cours:
    http://www.minecraftforgefrance.fr/showthread.php?tid=732

    Ensuite j'ai quelques petits trucs que je voudrais améliorer de façon à finaliser certains trucs:

    #Un bateau à lave(Un bateau à lave)

    J'ai fais un bateau qui va sur la lave, mon bateau résiste bien à la lave, est incassable mais est visuellement en flamme quand même, de plus, lorsqu'on est dedans, on est en flamme également, j'ai tenté avec des events, en vain, voici le code de mes essais:

       @ForgeSubscribe
      public void RuBoat(net.minecraftforge.event.entity.living.LivingEvent event)
      {
         if (event.entityLiving instanceof EntityPlayer)
         {
            if (event.entityLiving.ridingEntity instanceof EntityRuBoat)
            {
               event.entityLiving.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 1, 0));
               event.entityLiving.extinguish();
            }
         }
      }
    

    #2- génération de structure(2- génération de structure)

    Mon but initiale était de faire spawn naturellement une structure dans ma nouvelle dimension, une grande tour en surface, j'ai en effet réussis cependant mes tours se généère également dans le monde normal…
    Voici le code qui s'occupe de la génération:

    package Gallad.Mineald.world;
    
    import java.util.Random;
    
    import Gallad.Mineald.Import;
    import net.minecraft.block.Block;
    import net.minecraft.world.World;
    import net.minecraft.world.chunk.IChunkProvider;
    import net.minecraft.world.gen.feature.WorldGenMinable;
    import cpw.mods.fml.common.IWorldGenerator;
    
    public class MinealdWorldGenerator implements IWorldGenerator
    {
       Random rand;
    
       @Override
       public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
       {
           switch(world.provider.dimensionId)
           {
               case -1:
                   this.generateEnd(world, chunkX * 16, chunkZ * 16, random);
               case 0:
                   this.generateSurface(world, chunkX * 16, chunkZ * 16, random);
               case 1:
                   this.generateNether(world, chunkX * 16, chunkZ * 16, random);
               case 2:
                   this.generateDarkWorld(world, chunkX * 16, chunkZ * 16, random);
           }
       }
    
       private void generateDarkWorld(World world, int x, int z, Random rand)
       {
           for(int i = 0; i < 1; i++)
           {
               (new WorldGenMinable(Import.RuboniteOre.blockID, 0, 5, Import.DarkStone.blockID)).generate(world, rand, x + rand.nextInt(16), rand.nextInt(100), z + rand.nextInt(16));
           }
           if(rand.nextInt(100) == 1)
           {
               new DungeonTower().generate(world, rand, x + rand.nextInt(15), 63, z + rand.nextInt(16));
           }
       }
    
       private void generateSurface(World world, int x, int z, Random rand)
       {
           for(int i = 0; i < 1; i++)
           {
               (new WorldGenMinable(Import.PhytriteOre.blockID, 0, 5, 1)).generate(world, rand, x + rand.nextInt(16), rand.nextInt(70), z + rand.nextInt(16));
           }
           for(int j = 0; j < 2; j++)
           {
               (new WorldGenMinable(Import.KrakoniteOre.blockID, 0, 4, 1)).generate(world, rand, x + rand.nextInt(16), 21 + rand.nextInt(20), z + rand.nextInt(16));
           }
    
       }
    
       private void generateEnd(World world, int x, int z, Random rand)
       {
    
       }
    
       private void generateNether(World world, int x, int z, Random rand)
       {
           for(int i = 0; i < 3; i++)
           {
               (new WorldGenMinable(Import.RhuniteOre.blockID, 0, 8, Block.netherrack.blockID)).generate(world, rand, x + rand.nextInt(16), rand.nextInt(150), z + rand.nextInt(16));
           }
       }
    }
    

    Ma piste principale serait l'erreur en lien avec le lien vers mon autre post, c'est à dire mais deux dimensions qui ne sont pas dissocié et donc il considère le monde normal comme une dimension Dark.

    #3- Un portail...enuyeux(3- Un portail...enuyeux)

    J'ai également un soucis avec mon portail, en effet quand je me téléporte d'une dimension à l'autre dans ma nouvelle dimension, je reste bien souvent bloqué et le serveur me re-téléporte dans le portail, en considérant un "moved wrongly" à quoi cela pourrait il être lié?

    Merci de votre aide et de votre temps 🙂


  • Moddeurs confirmés Rédacteurs Administrateurs

    Problème de l'enclume ? je ne sais pas
    1 ? Sûrement pas possible. Même avec fire resistance, il y a la flamme sur le joueur, personnelement je ne connais pas de fonction permettant de pas avoir la flamme. (même les pigmen on une flamme lorsqu'ils vont dans la lave).
    2 + 3 ? Il faudrait tes codes, un truc cloche quelque part, mais je ne peux pas te dire où.



  • D'accord, je t'envoie tout en privé ou je mets tout la malgré le nombre de class?


  • Moddeurs confirmés Rédacteurs Administrateurs

    pastebin.



  • Voici donc les fichiers:
    DarkTeleporter:
    http://pastebin.com/P2jk0tMy
    ChunkProviderDark:
    http://pastebin.com/SnYSYjeE
    BiomeGenDark:
    http://pastebin.com/qADaCHiB
    MinealdWorldGenerator:
    http://pastebin.com/X0dsNHyF
    WorldProviderDark:
    http://pastebin.com/TXwfPuzY
    (J'ai modifié cette dernière pour mettre les mêmes "config" que sur la dimension de ton mod robin, voir si ça changera quelque chose prochaine MAJ de mon serveur)


  • Moddeurs confirmés Rédacteurs Administrateurs

    Il manque juste la classe principale, pour l'enregistrement de la dimension, ce que m'intéresse le plus en fait x).

    ÉDIT : sinon pour le world generator, passe par une condition ? https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/main/world/WorldGeneration.java#L25



  • Dans ma classe principal, il ya seulement ça au sujet de la dimension:

    
    public static void addGen()
    {
    DimensionManager.registerProviderType(DimensionID, WorldProviderDark.class, true);
    DimensionManager.registerDimension(DimensionID, DimensionID);
    }
    
    

    sachant que DimensionID = 2


  • Moddeurs confirmés Rédacteurs Administrateurs

    false pour la dernière boolean, je ne pense pas que ta dimension à besoin d'être chargé en permanence, si ?
    Ta méthode addGen est appelé où dans ta classe principale ?
    L'id de la dimension est bien défini avant ?



  • EN ce qui concerne l'appel de la fonction:

    
    Import.addGen();
    
    

    Import est la classe ou ya tout

    oui elle est bien défini avant, et non en effet je n'ai pas besoin de la charger en permanence


  • Moddeurs confirmés Rédacteurs Administrateurs

    Oui mais elle est où ? Dans preinit, dans init, postinit ?



  • Elle est dans pre-init


  • Moddeurs confirmés Rédacteurs Administrateurs

    Essaye de le mettre au début de @init.



  • Cela résout en effet le soucis !!!!! ❤ Merci infiniment 😄
    han sérieux robin je t'aime x)

    Cela résoud le problème du portail, ainsi que tous les soucis avec essentials!! 🙂

    Maintenant je passe à mon enclume ^^


Log in to reply