MFF

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

    Aide pour liquide

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.8
    18 Messages 4 Publieurs 3.7k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Tu as mit quoi à la place de if (((Block) world.getBlockState(pos)).getMaterial().isLiquid()) return false; ?
      Et j’ai retiré les barres textes car ça foutait la merde mélangé avec les balises codes et spoiler.

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

        j’ai mis ce qu’a mis Jodge, mais avant j’ai retiré .getMaterial().isLiquid() , et j’ai mis le quick fix ( != null )Oui c’est con, mais je voulais essayer

        Membre fantôme
        Je développe maintenant un jeu sur UnrealEngine4


        Contact :…

        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

          Je ne vois pas ce qui peut causer problème, envoie tout le code complet.

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

            MainClass

            package eryah.galratech;
            
            import net.minecraft.block.Block;
            import net.minecraft.block.material.MapColor;
            import net.minecraft.block.material.Material;
            import net.minecraft.block.material.MaterialLiquid;
            import net.minecraft.item.Item;
            import net.minecraft.util.ResourceLocation;
            import net.minecraftforge.fluids.Fluid;
            import net.minecraftforge.fluids.FluidRegistry;
            import net.minecraftforge.fml.common.Mod;
            import net.minecraftforge.fml.common.Mod.EventHandler;
            import net.minecraftforge.fml.common.SidedProxy;
            import net.minecraftforge.fml.common.event.FMLInitializationEvent;
            import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
            import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
            import net.minecraftforge.fml.common.registry.GameRegistry;
            import eryah.galratech.blocks.RustyMetalBlock;
            import eryah.galratech.items.GalraTechGlove;
            import eryah.galratech.items.Lens;
            import eryah.galratech.liquids.GaloraidAcidBlock;
            import eryah.galratech.proxy.CommonProxy;
            
            @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION)
            public class GalraTechMod
            {
            
            @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS)
            public static CommonProxy proxy;
            
            public static final CreativeTab GalraTab = new CreativeTab("GalraTab");
            
            @Mod.Instance(Reference.MOD_ID)
            public static GalraTechMod instance;
            
            //Déclaration
            
            //Items
            public static Item galratech_glove;
            
            //Matériaux
            public static Item lens;
            
            //Blocks
            
            //Déco
            public static Block rusty_iron_block;
            
            //Fluids
            public static Fluid galor_acid;
            public static Block galor_acid_block;
            
            //Matériaux
            //Liquids
            public static Material materialGalorAcid;
            
            @EventHandler
            public void preInit(FMLPreInitializationEvent event)
            {
            
            galor_acid = new Fluid("galor_acid").setLuminosity(15).setDensity(40000).setTemperature(310).setViscosity(2500);
            
            FluidRegistry.registerFluid(galor_acid);
            
            materialGalorAcid = new MaterialLiquid(MapColor.emeraldColor);
            
            galor_acid_block = new GaloraidAcidBlock(galor_acid, materialGalorAcid).setUnlocalizedName("galor_acid");
            
            galor_acid.setUnlocalizedName(galor_acid.getUnlocalizedName());
            
            GameRegistry.registerBlock(galor_acid_block, Reference.MOD_ID + "_" + galor_acid.getUnlocalizedName().substring(5));
            
            //UnlocalizedName
            galratech_glove = new GalraTechGlove().setUnlocalizedName("galratech_glove").setCreativeTab(GalraTechMod.GalraTab);
            
            //Items
            
            //Matériaux
            lens = new Lens().setUnlocalizedName("lens").setCreativeTab(GalraTechMod.GalraTab);
            
            //Blocs
            
            //Déco
            rusty_iron_block = new RustyMetalBlock(Material.iron).setUnlocalizedName("rusty_iron_block").setCreativeTab(GalraTechMod.GalraTab);
            
            //Fluids
            
            //Register
            
            //Fluids
            
            //Items
            
            GameRegistry.registerItem(galratech_glove, "galratech_glove");
            
            //Matériaux
            GameRegistry.registerItem(lens, "lens");
            
            //Blocks
            
            //Déco
            GameRegistry.registerBlock(rusty_iron_block, "rusty_iron_block");
            
            proxy.registerRenders();
            }
            
            @EventHandler
            public void init(FMLInitializationEvent event)
            {
            //Register Texture
            //Blocks
            
            //Déco
            proxy.registerBlockTexture(rusty_iron_block, "rusty_iron_block");
            }
            
            @EventHandler
            public void postInit(FMLPostInitializationEvent event)
            {
            
            }
            
            private static Block getRegisteredBlock(String p_180383_0_)
            {
            return (Block)Block.blockRegistry.getObject(new ResourceLocation(p_180383_0_));
            }
            }
            

            Block

            package eryah.galratech.liquids;
            
            import net.minecraft.block.Block;
            import net.minecraft.block.material.Material;
            import net.minecraft.creativetab.CreativeTabs;
            import net.minecraft.util.BlockPos;
            import net.minecraft.world.IBlockAccess;
            import net.minecraft.world.World;
            import net.minecraftforge.fluids.BlockFluidClassic;
            import net.minecraftforge.fluids.Fluid;
            import eryah.galratech.GalraTechMod;
            
            public class GaloraidAcidBlock extends BlockFluidClassic {
            
            public GaloraidAcidBlock(Fluid fluid, Material material) {
            super(fluid, GalraTechMod.materialGalorAcid);
            setCreativeTab(CreativeTabs.tabMisc);
            }
            
            @Override
            public boolean canDisplace(IBlockAccess world, BlockPos pos) {
            if (world.getBlockState(pos).getBlock().getMaterial().isLiquid()) return false;
            return super.canDisplace(world, pos);
            }
            
            @Override
            public boolean displaceIfPossible(World world, BlockPos pos) {
            if (world.getBlockState(pos).getBlock().getMaterial().isLiquid()) return false;
            return super.displaceIfPossible(world, pos);
            }
            
            }
            

            Membre fantôme
            Je développe maintenant un jeu sur UnrealEngine4


            Contact :…

            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

              Et si tu fais un setBlock ça fonctionne ?

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

                Alors désolé, je me suis rendu compte que c’est juste que le fluide est invisible
                Je l’ai vu quand la nuit est tombé sur mon monde, et que de la lumière sortait de nulle part, c’était mon liquide, qui emet de la lumière donc, voila, désolé…
                Je pensais que si un liquide n’a pas de texture, se sera le bloc moche, mais non, il est invisible.
                Bn, maintenant je vais tenter d’appliquer la texture, ce qui me parrait super dur, vu que le bloc n’a aps de blockstates, juste un model

                Membre fantôme
                Je développe maintenant un jeu sur UnrealEngine4


                Contact :…

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

                  Bon, je galère énormément avec le rendre du fluide…
                  Entre le crash dans crash report lors du world load, et le fluide invisible…
                  Personne ne sait comment render un fluide en 1.8 ?

                  Envoyé de mon SM-G357FZ en utilisant Tapatalk

                  Membre fantôme
                  Je développe maintenant un jeu sur UnrealEngine4


                  Contact :…

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

                    Et le code de l’eau/lave ?

                    Site web contenant mes scripts : http://SCAREXgaming.github.io

                    Pas de demandes de support par MP ni par skype SVP.
                    Je n'accepte sur skype que l…

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

                      Bon, alors j’ai pris le code de l’eau/lave (BlockLiquid) qui est très mal foutue, j’ai l’impression, ou bien protégée… Mais la…
                      J’ai copier les choses dont j’avais besoin, et ma classe resemble donc cela

                      package eryah.galratech.liquids;
                      
                      import java.util.Iterator;
                      import java.util.Random;
                      
                      import net.minecraft.block.Block;
                      import net.minecraft.block.BlockDynamicLiquid;
                      import net.minecraft.block.BlockStaticLiquid;
                      import net.minecraft.block.material.Material;
                      import net.minecraft.block.properties.IProperty;
                      import net.minecraft.block.properties.PropertyInteger;
                      import net.minecraft.block.state.BlockState;
                      import net.minecraft.block.state.IBlockState;
                      import net.minecraft.client.Minecraft;
                      import net.minecraft.client.renderer.WorldRenderer;
                      import net.minecraft.client.renderer.texture.TextureAtlasSprite;
                      import net.minecraft.client.renderer.texture.TextureMap;
                      import net.minecraft.client.resources.model.IBakedModel;
                      import net.minecraft.creativetab.CreativeTabs;
                      import net.minecraft.entity.Entity;
                      import net.minecraft.init.Blocks;
                      import net.minecraft.item.Item;
                      import net.minecraft.util.AxisAlignedBB;
                      import net.minecraft.util.BlockPos;
                      import net.minecraft.util.EnumFacing;
                      import net.minecraft.util.EnumParticleTypes;
                      import net.minecraft.util.EnumWorldBlockLayer;
                      import net.minecraft.util.ResourceLocation;
                      import net.minecraft.util.Vec3;
                      import net.minecraft.world.IBlockAccess;
                      import net.minecraft.world.World;
                      import net.minecraftforge.fluids.BlockFluidClassic;
                      import net.minecraftforge.fluids.Fluid;
                      import net.minecraftforge.fml.relauncher.Side;
                      import net.minecraftforge.fml.relauncher.SideOnly;
                      import eryah.galratech.GalraTechMod;
                      
                      public class GaloraidAcidBlock extends BlockFluidClassic {
                      
                      public static final PropertyInteger LEVEL = PropertyInteger.create("level", 0, 15);
                      
                      public GaloraidAcidBlock(Fluid fluid, Material material) {
                      super(fluid, GalraTechMod.materialGalorAcid);
                      setCreativeTab(CreativeTabs.tabMisc);
                      this.setDefaultState(this.blockState.getBaseState().withProperty(LEVEL, Integer.valueOf(0)));
                      }
                      
                      @Override
                      public boolean canDisplace(IBlockAccess world, BlockPos pos) {
                      if (world.getBlockState(pos).getBlock().getMaterial().isLiquid()) return false;
                      return super.canDisplace(world, pos);
                      }
                      
                      @Override
                      public boolean displaceIfPossible(World world, BlockPos pos) {
                      if (world.getBlockState(pos).getBlock().getMaterial().isLiquid()) return false;
                      return super.displaceIfPossible(world, pos);
                      }
                      
                      @Override
                      public int getRenderType() {
                      // TODO Auto-generated method stub
                      return 1;
                      }
                      
                      protected int getLevel(IBlockAccess worldIn, BlockPos pos)
                      {
                      return worldIn.getBlockState(pos).getBlock().getMaterial() == this.blockMaterial ? ((Integer)worldIn.getBlockState(pos).getValue(LEVEL)).intValue() : -1;
                      }
                      
                      protected int getEffectiveFlowDecay(IBlockAccess worldIn, BlockPos pos)
                      {
                      int i = this.getLevel(worldIn, pos);
                      return i >= 8 ? 0 : i;
                      }
                      
                      public boolean isFullCube()
                      {
                      return false;
                      }
                      
                      public boolean isOpaqueCube()
                      {
                      return false;
                      }
                      
                      public boolean canCollideCheck(IBlockState state, boolean hitIfLiquid)
                      {
                      return hitIfLiquid && ((Integer)state.getValue(LEVEL)).intValue() == 0;
                      }
                      
                      @SideOnly(Side.CLIENT)
                      public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side)
                      {
                      return worldIn.getBlockState(pos).getBlock().getMaterial() == this.blockMaterial ? false : (side == EnumFacing.UP ? true : super.shouldSideBeRendered(worldIn, pos, side));
                      }
                      
                      public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
                      {
                      return null;
                      }
                      
                      @SideOnly(Side.CLIENT)
                      public boolean func_176364_g(IBlockAccess p_176364_1_, BlockPos p_176364_2_)
                      {
                      for (int i = -1; i <= 1; ++i)
                      {
                      for (int j = -1; j <= 1; ++j)
                      {
                      IBlockState iblockstate = p_176364_1_.getBlockState(p_176364_2_.add(i, 0, j));
                      Block block = iblockstate.getBlock();
                      Material material = block.getMaterial();
                      
                      if (material != this.blockMaterial && !block.isFullBlock())
                      {
                      return true;
                      }
                      }
                      }
                      
                      return false;
                      }
                      
                      public Item getItemDropped(IBlockState state, Random rand, int fortune)
                      {
                      return null;
                      }
                      
                      /**
                      * Returns the quantity of items to drop on block destruction.
                      */
                      public int quantityDropped(Random random)
                      {
                      return 0;
                      }
                      
                      public Vec3 getFlowVector(IBlockAccess worldIn, BlockPos pos)
                      {
                      Vec3 vec3 = new Vec3(0.0D, 0.0D, 0.0D);
                      int i = this.getEffectiveFlowDecay(worldIn, pos);
                      Iterator iterator = EnumFacing.Plane.HORIZONTAL.iterator();
                      EnumFacing enumfacing;
                      BlockPos blockpos1;
                      
                      while (iterator.hasNext())
                      {
                      enumfacing = (EnumFacing)iterator.next();
                      blockpos1 = pos.offset(enumfacing);
                      int j = this.getEffectiveFlowDecay(worldIn, blockpos1);
                      int k;
                      
                      if (j < 0)
                      {
                      if (!worldIn.getBlockState(blockpos1).getBlock().getMaterial().blocksMovement())
                      {
                      j = this.getEffectiveFlowDecay(worldIn, blockpos1.down());
                      
                      if (j >= 0)
                      {
                      k = j - (i - 8);
                      vec3 = vec3.addVector((double)((blockpos1.getX() - pos.getX()) * k), (double)((blockpos1.getY() - pos.getY()) * k), (double)((blockpos1.getZ() - pos.getZ()) * k));
                      }
                      }
                      }
                      else if (j >= 0)
                      {
                      k = j - i;
                      vec3 = vec3.addVector((double)((blockpos1.getX() - pos.getX()) * k), (double)((blockpos1.getY() - pos.getY()) * k), (double)((blockpos1.getZ() - pos.getZ()) * k));
                      }
                      }
                      
                      if (((Integer)worldIn.getBlockState(pos).getValue(LEVEL)).intValue() >= 8)
                      {
                      iterator = EnumFacing.Plane.HORIZONTAL.iterator();
                      
                      while (iterator.hasNext())
                      {
                      enumfacing = (EnumFacing)iterator.next();
                      blockpos1 = pos.offset(enumfacing);
                      
                      if (this.isBlockSolid(worldIn, blockpos1, enumfacing) || this.isBlockSolid(worldIn, blockpos1.up(), enumfacing))
                      {
                      vec3 = vec3.normalize().addVector(0.0D, -6.0D, 0.0D);
                      break;
                      }
                      }
                      }
                      
                      return vec3.normalize();
                      }
                      
                      public Vec3 modifyAcceleration(World worldIn, BlockPos pos, Entity entityIn, Vec3 motion)
                      {
                      return motion.add(this.getFlowVector(worldIn, pos));
                      }
                      
                      public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state)
                      {
                      this.checkForMixing(worldIn, pos, state);
                      }
                      
                      @SideOnly(Side.CLIENT)
                      public static double getFlowDirection(IBlockAccess worldIn, BlockPos pos, Material materialIn)
                      {
                      Vec3 vec3 = getFlowingBlock(materialIn).getFlowVector(worldIn, pos);
                      return vec3.xCoord == 0.0D && vec3.zCoord == 0.0D ? -1000.0D : Math.atan2(vec3.zCoord, vec3.xCoord) - (Math.PI / 2D);
                      }
                      
                      public void onNeighborBlockChange(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock)
                      {
                      this.checkForMixing(worldIn, pos, state);
                      }
                      
                      public boolean checkForMixing(World worldIn, BlockPos pos, IBlockState state)
                      {
                      if (this.blockMaterial == Material.lava)
                      {
                      boolean flag = false;
                      EnumFacing[] aenumfacing = EnumFacing.values();
                      int i = aenumfacing.length;
                      
                      for (int j = 0; j < i; ++j)
                      {
                      EnumFacing enumfacing = aenumfacing[j];
                      
                      if (enumfacing != EnumFacing.DOWN && worldIn.getBlockState(pos.offset(enumfacing)).getBlock().getMaterial() == Material.water)
                      {
                      flag = true;
                      break;
                      }
                      }
                      
                      if (flag)
                      {
                      Integer integer = (Integer)state.getValue(LEVEL);
                      
                      if (integer.intValue() == 0)
                      {
                      worldIn.setBlockState(pos, Blocks.obsidian.getDefaultState());
                      this.triggerMixEffects(worldIn, pos);
                      return true;
                      }
                      
                      if (integer.intValue() <= 4)
                      {
                      worldIn.setBlockState(pos, Blocks.cobblestone.getDefaultState());
                      this.triggerMixEffects(worldIn, pos);
                      return true;
                      }
                      }
                      }
                      
                      return false;
                      }
                      
                      protected void triggerMixEffects(World worldIn, BlockPos pos)
                      {
                      double d0 = (double)pos.getX();
                      double d1 = (double)pos.getY();
                      double d2 = (double)pos.getZ();
                      worldIn.playSoundEffect(d0 + 0.5D, d1 + 0.5D, d2 + 0.5D, "random.fizz", 0.5F, 2.6F + (worldIn.rand.nextFloat() - worldIn.rand.nextFloat()) * 0.8F);
                      
                      for (int i = 0; i < 8; ++i)
                      {
                      worldIn.spawnParticle(EnumParticleTypes.SMOKE_LARGE, d0 + Math.random(), d1 + 1.2D, d2 + Math.random(), 0.0D, 0.0D, 0.0D, new int[0]);
                      }
                      }
                      
                      /**
                      * Convert the given metadata into a BlockState for this Block
                      */
                      public IBlockState getStateFromMeta(int meta)
                      {
                      return this.getDefaultState().withProperty(LEVEL, Integer.valueOf(meta));
                      }
                      
                      /**
                      * Convert the BlockState into the correct metadata value
                      */
                      public int getMetaFromState(IBlockState state)
                      {
                      return ((Integer)state.getValue(LEVEL)).intValue();
                      }
                      
                      protected BlockState createBlockState()
                      {
                      return new BlockState(this, new IProperty[] {LEVEL});
                      }
                      
                      public static BlockDynamicLiquid getFlowingBlock(Material materialIn)
                      {
                      if(materialIn == GalraTechMod.materialGalorAcid) {
                      return GalraTechMod.galor_acid_flowing;
                      }
                      else
                      {
                      throw new IllegalArgumentException("Invalid material");
                      }
                      }
                      
                      public static BlockStaticLiquid getStaticBlock(Material materialIn)
                      {
                      if(materialIn == GalraTechMod.materialGalorAcid) {
                      return GalraTechMod.galor_acid_static;
                      }
                      else
                      {
                      throw new IllegalArgumentException("Invalid material");
                      }
                      }
                      }
                      

                      Et j’ai une erreur ici

                      @SideOnly(Side.CLIENT)
                      public static double getFlowDirection(IBlockAccess worldIn, BlockPos pos, Material materialIn)
                      {
                      Vec3 vec3 = getFlowingBlock(materialIn).***getFlowVector***(worldIn, pos);
                      return vec3.xCoord == 0.0D && vec3.zCoord == 0.0D ? -1000.0D : Math.atan2(vec3.zCoord, vec3.xCoord) - (Math.PI / 2D);
                      }
                      

                      The method getFlowVector(IBlockAccess, BlockPos) from the type BlockLiquid is not visible
                      Que faire ?

                      Membre fantôme
                      Je développe maintenant un jeu sur UnrealEngine4


                      Contact :…

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

                        C’est une méthode statique, donc tu peux appeler celui de l’eau

                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                        Pas de demandes de support par MP ni par skype SVP.
                        Je n'accepte sur skype que l…

                        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