MFF

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

    Nouveau fluide en source infini + remplacement fluide nouveau biome

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    17 Messages 4 Publieurs 3.6k 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.
    • AymericRedA Hors-ligne
      AymericRed
      dernière édition par

      Bonjour,
      Ton idée pour l’effet est bonne, il faut que tu utilises ça dans la fonction ```java
      public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity p_149670_5_) {}

      Pour la génération dans ton biome, je sais pas mais tu dois avoir un truc en rapport avec "water" dans la classe de ton biome, ou la(les) classe(s) parente(s) (celle du extends).

      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
      • S Hors-ligne
        sventus
        dernière édition par

        je vais voir ça, mais c’est pas dans l’eau que je veux cet effet, c’est dans un nouveau fluide.

        Merci en tout cas

        1 réponse Dernière réponse Répondre Citer 0
        • AymericRedA Hors-ligne
          AymericRed
          dernière édition par

          Oui j’ai compris ^^il faut que tu mettes cette fonction dans le bloc de ton fluide.

          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
          • S Hors-ligne
            sventus
            dernière édition par

            pourtant en mettant ça

            public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, EntityPlayer player) {
            
            player.addPotionEffect(new PotionEffect(19, 450, 10));
            }
            ``` il ne se passe rien en rentrant.
            
            et aussi voila la class complète :
            
            ```java
            package fr.craftesys.craftesys.blocs;
            
            import net.minecraft.block.material.Material;
            import net.minecraft.client.renderer.texture.IIconRegister;
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.potion.PotionEffect;
            import net.minecraft.util.IIcon;
            import net.minecraft.world.IBlockAccess;
            import net.minecraft.world.World;
            import net.minecraftforge.fluids.BlockFluidClassic;
            import net.minecraftforge.fluids.Fluid;
            
            public class BlockFluid extends BlockFluidClassic
            {
            private IIcon stillIcon, flowingIcon;
            
            public BlockFluid(Fluid fluid, Material material)
            {
            super(fluid, material);
            }
            
            public IIcon getIcon(int side, int meta)
            {
            return (side == 0 || side == 1) ? stillIcon : flowingIcon;
            }
            
            public void registerBlockIcons(IIconRegister register)
            {
            stillIcon = register.registerIcon("craftesys:fluide1");
            flowingIcon = register.registerIcon("craftesys:fluide2");
            }
            
            public boolean canDisplace(IBlockAccess world, int x, int y, int z)
            {
            if(world.getBlock(x, y, z).getMaterial().isLiquid())
            {
            return false;
            }
            return super.canDisplace(world, x, y, z);
            }
            public boolean displaceIfPossible(World world, int x, int y, int z)
            {
            if(world.getBlock(x, y, z).getMaterial().isLiquid())
            {
            return false;
            }
            return super.displaceIfPossible(world, x, y, z);
            }
            
            public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, EntityPlayer player) {
            
            player.addPotionEffect(new PotionEffect(19, 450, 10));
            }
            }
            

            j’aimerais faire comme l’eau, faire des sources infini car la, je peux pas placer deux fois le fluide l’un à côté de l’autre

            1 réponse Dernière réponse Répondre Citer 0
            • AymericRedA Hors-ligne
              AymericRed
              dernière édition par

              Mets un System.out.println dans la fonction et regardes si elle est appelée dans la console.
              Pour la source infinie, prends exemple sur le code du bloc de l’eau.

              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
              • S Hors-ligne
                sventus
                dernière édition par

                je comprend justement rien dans le block de l’eau avec ces noms de fonctions à la noix xD

                non le println fait rien donc elle est pas appelé

                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

                  Ajoutes un @Override au dessus de la fonction, si ça fait une erreur ça veut dire que ce n’est pas la bonne fonction.

                  1 réponse Dernière réponse Répondre Citer 0
                  • darkvince37D Hors-ligne
                    darkvince37
                    dernière édition par

                    @‘sventus’:

                    je comprend justement rien dans le block de l’eau avec ces noms de fonctions à la noix xD

                    non le println fait rien donc elle est pas appelé

                    Essaye sa

                    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity)
                      {
                        if (((entity instanceof EntityLivingBase)) && (!world.isRemote)) {
                          ((EntityLivingBase)entity).attackEntityFrom(DamageSource.wither, 2.0F);
                        }
                      }
                    

                    La c’est pas poison mais juste pour voir

                    1 réponse Dernière réponse Répondre Citer 0
                    • S Hors-ligne
                      sventus
                      dernière édition par

                      le @Override  me dit : The method onEntityCollidedWithBlock(World, int, int, int, EntityPlayer) of type BlockFluid must override or implement a supertype method

                      rien de plus avec ce que tu m’as passé dark

                      1 réponse Dernière réponse Répondre Citer 0
                      • darkvince37D Hors-ligne
                        darkvince37
                        dernière édition par

                        @‘sventus’:

                        le @Override  me dit : The method onEntityCollidedWithBlock(World, int, int, int, EntityPlayer) of type BlockFluid must override or implement a supertype method

                        rien de plus avec ce que tu m’as passé dark

                        Chez moi le code que j’ai envoyé fonctionne

                        Ma class: (si sa peut aidé car chez moi il fonctionne)

                        package fr.darkvince.ultrav2.ultrawather;
                        
                        import java.awt.Color;
                        import net.minecraft.block.Block;
                        import net.minecraft.block.material.Material;
                        import net.minecraft.client.renderer.texture.IIconRegister;
                        import net.minecraft.entity.Entity;
                        import net.minecraft.entity.EntityLivingBase;
                        import net.minecraft.util.DamageSource;
                        import net.minecraft.util.IIcon;
                        import net.minecraft.world.IBlockAccess;
                        import net.minecraft.world.World;
                        import net.minecraftforge.fluids.BlockFluidClassic;
                        import net.minecraftforge.fluids.Fluid;
                        
                        public class BlockFluidTutorial
                          extends BlockFluidClassic
                        {
                          private IIcon stillIcon;
                          private IIcon flowingIcon;
                        
                          public BlockFluidTutorial(Fluid fluid, Material material)
                          {
                            super(fluid, material);
                          }
                        
                          public IIcon func_149691_a(int side, int meta)
                          {
                            return (side == 0) || (side == 1) ? this.stillIcon : this.flowingIcon;
                          }
                        
                          public void registerBlockIcons(IIconRegister register)
                          {
                            this.stillIcon = register.registerIcon("ultrav2:ultra_fluid_still");
                            this.flowingIcon = register.registerIcon("ultrav2:ultra_fluid_flow");
                          }
                        
                          public int getColor()
                          {
                            return new Color(80, 123, 138).getRGB();
                          }
                        
                          public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity)
                          {
                            if (((entity instanceof EntityLivingBase)) && (!world.isRemote)) {
                              ((EntityLivingBase)entity).attackEntityFrom(DamageSource.magic, 2.0F);
                            }
                          }
                        
                          public boolean canDisplace(IBlockAccess world, int x, int y, int z)
                          {
                            if (world.getBlock(x, y, z).getMaterial().isLiquid()) {
                              return false;
                            }
                            return super.canDisplace(world, x, y, z);
                          }
                        
                          public boolean displaceIfPossible(World world, int x, int y, int z)
                          {
                            if (world.getBlock(x, y, z).getMaterial().isLiquid()) {
                              return false;
                            }
                            return super.displaceIfPossible(world, x, y, z);
                          }
                        }
                        
                        
                        1 réponse Dernière réponse Répondre Citer 0
                        • S Hors-ligne
                          sventus
                          dernière édition par

                          effectivement je prend des dégats  merci <3.

                          1 réponse Dernière réponse Répondre Citer 0
                          • S Hors-ligne
                            sventus
                            dernière édition par

                            Bonjour (c’est pas un double post, j’avais un soucis qui je pensais été résolu mais en réalité j’ai remarqué qu’il y avait d’autres problèmes ^^.

                            1 réponse Dernière réponse Répondre Citer 0
                            • S Hors-ligne
                              sventus
                              dernière édition par

                              Finalement, voila les deux points qui bloquent :

                              • possibilité de faire une source infinie
                              • remplacer l’eau du biome par le nouveau fluide
                              1 réponse Dernière réponse Répondre Citer 0
                              • S Hors-ligne
                                sventus
                                dernière édition par

                                personne n’a d’idée ? j’ai essayé de changer les extends comme l’a dit robin mais en vain 😕

                                1 réponse Dernière réponse Répondre Citer 0
                                • S Hors-ligne
                                  sventus
                                  dernière édition par

                                  j’ai éssayé de faire cela pour pour changer l’eau par mon block dans mon biome, mais cela ne change rien :

                                  
                                  @Override
                                  public BiomeDecorator createBiomeDecorator() {
                                  
                                  MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Pre(currentWorld, randomGenerator, chunk_X, chunk_Z));
                                  int i;
                                  int j;
                                  int k;
                                  int l;
                                  int i1;
                                  boolean doGen = TerrainGen.decorate(currentWorld, randomGenerator, chunk_X, chunk_Z, LAKE);
                                  if (doGen && this.generateLakes)
                                  {
                                  for (j = 0; j < 50; ++j)
                                  {
                                  k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
                                  l = this.randomGenerator.nextInt(this.randomGenerator.nextInt(248) + 8);
                                  i1 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
                                  (new WorldGenLiquids(Mods.fluidblock)).generate(this.currentWorld, this.randomGenerator, k, l, i1);
                                  }
                                  
                                  for (j = 0; j < 20; ++j)
                                  {
                                  k = this.chunk_X + this.randomGenerator.nextInt(16) + 8;
                                  l = this.randomGenerator.nextInt(this.randomGenerator.nextInt(this.randomGenerator.nextInt(240) + 8) + 8);
                                  i1 = this.chunk_Z + this.randomGenerator.nextInt(16) + 8;
                                  (new WorldGenLiquids(Mods.fluidblock)).generate(this.currentWorld, this.randomGenerator, k, l, i1);
                                  }
                                  }
                                  
                                  MinecraftForge.EVENT_BUS.post(new DecorateBiomeEvent.Post(currentWorld, randomGenerator, chunk_X, chunk_Z));
                                  
                                  return super.createBiomeDecorator();
                                  }
                                  
                                  
                                  1 réponse Dernière réponse Répondre Citer 0
                                  • AymericRedA Hors-ligne
                                    AymericRed
                                    dernière édition par

                                    Pour désactiver les lacs, il faut faire

                                    
                                    this.theBiomeDecorator.generateLakes = false;
                                    

                                    dans le constructeur du biome, mais pour remplacer l’eau, il faut que tu override la fonction “createBiomeDecorator”, que tu mettes un BiomeDecorator custome en return et dans celui-ci, tu copies la fonction “genDecorations” de BiomeDecorator, et à la fin tu as le génération de l’eau que tu peux changer

                                    Il faut obligatoirement passer par un BiomeDecorator custom.

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

                                    MINECRAFT FORGE FRANCE © 2024

                                    Powered by NodeBB