• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Couleur d'un liquide qui ne marche pas

    1.8.x
    1.8.9
    4
    23
    3089
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • E
      elx9000 last edited by

      Salut à tous, après avoir fait un liquide, j’ai voulu lui mettre de la couleur (bleu très foncé), mais le souci c’est que cela ne fonctionne pas, même si je met ça dans la classe du liquide

      
      @Override
          public int getColor()
          {
              return new Color(80, 123, 138).getRGB();
          }
      
      

      Pourriez m’aidez, je vous en remercie d’avance.

      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        Salut,
        Ton fluide ressemble à quoi actuellement ?

        Tu peux envoyer ton code complet ?

        1 Reply Last reply Reply Quote 0
        • E
          elx9000 last edited by

          Voici le classe principale :

          
          package com.survivant.mod;
          
          import java.awt.Color;
          
          import com.survivant.mod.blocks.BlockMod;
          import com.survivant.mod.blocks.BlockSaltWater;
          import com.survivant.mod.blocks.SaltWater;
          import com.survivant.mod.entity.EntityFish;
          import com.survivant.mod.handlers.EntityHandler;
          import com.survivant.mod.items.ItemMod;
          import com.survivant.mod.proxy.CommonProxy;
          
          import net.minecraft.block.Block;
          import net.minecraft.block.state.IBlockState;
          import net.minecraft.client.renderer.ItemMeshDefinition;
          import net.minecraft.client.renderer.block.statemap.StateMapperBase;
          import net.minecraft.client.resources.model.ModelBakery;
          import net.minecraft.client.resources.model.ModelResourceLocation;
          import net.minecraft.creativetab.CreativeTabs;
          import net.minecraft.item.Item;
          import net.minecraft.item.ItemStack;
          import net.minecraft.util.ResourceLocation;
          import net.minecraftforge.client.model.ModelLoader;
          import net.minecraftforge.common.MinecraftForge;
          import net.minecraftforge.event.entity.living.LivingEvent;
          import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;
          import net.minecraftforge.fluids.BlockFluidClassic;
          import net.minecraftforge.fluids.Fluid;
          import net.minecraftforge.fluids.FluidRegistry;
          import net.minecraftforge.fml.common.FMLCommonHandler;
          import net.minecraftforge.fml.common.Mod;
          import net.minecraftforge.fml.common.Mod.EventHandler;
          import net.minecraftforge.fml.common.Mod.Instance;
          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 net.minecraftforge.fml.relauncher.Side;
          import net.minecraftforge.fml.relauncher.SideOnly;
          
          @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION)
          
          public class ModSurvivant
          {
          
              @SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.SERVER_PROXY_CLASS)
              public static CommonProxy proxy;
          
              @Instance(Reference.MOD_ID)
              public static ModSurvivant instance;
          
              public static CreativeTabs tabSurvivant = new CreativeTabs("tabSurvivant")
              {
                  @SideOnly(Side.CLIENT)
                  public Item getTabIconItem()
                  {
                      return Item.getItemFromBlock(BlockMod.blockTotem);
                  }
              };
              public static SaltWater saltWater = new SaltWater();
              public static BlockSaltWater blockSaltWater;
          
              @EventHandler
              public void preInit (FMLPreInitializationEvent event)
              {                       
                  ItemMod.init();
                  ItemMod.register();
                  BlockMod.init();
                  BlockMod.register();
          
                  FluidRegistry.registerFluid(saltWater);
                  blockSaltWater = new BlockSaltWater(saltWater);
                  GameRegistry.registerBlock(blockSaltWater, "blockSaltWater");
          
                  Item item = Item.getItemFromBlock(blockSaltWater);
                  ModelBakery.registerItemVariants(item);
                  final ModelResourceLocation loc = new ModelResourceLocation("survivant:fluids", "salt");
                  ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition()
                          {
                              @Override
                              public ModelResourceLocation getModelLocation(ItemStack stack)
                              {
                                  return loc;
                              }
                          });
                  ModelLoader.setCustomStateMapper(blockSaltWater, new StateMapperBase()
                          {
                              @Override
                              protected ModelResourceLocation getModelResourceLocation(IBlockState state)
                              {
                                  return loc;
                              }                   
                          });
          
              }
          
              @EventHandler
              public void init (FMLInitializationEvent event)
              {        
                  proxy.registerRenders();
                  MinecraftForge.EVENT_BUS.register(new SurvivantBlockEvent());
                  EntityHandler.RegisterFish(EntityFish.class, "Fish");
              }
          
              @EventHandler
              public void postInit (FMLPostInitializationEvent event)
              {
          
              }
          }
          
          

          Voici la classe du liquide (saltWater) :

          
          package com.survivant.mod.blocks;
          
          import java.awt.Color;
          
          import net.minecraft.util.ResourceLocation;
          import net.minecraftforge.fluids.Fluid;
          
          public class SaltWater extends Fluid
          {
              public SaltWater()
              {
                  super("saltWater", new ResourceLocation("blocks/water_still"), new ResourceLocation("blocks/water_flow"));
                  this.setTemperature(295);
              }
          
              @Override
              public int getColor()
              {
                  return new Color(80, 123, 138).getRGB();
              }
          }
          
          

          Voici la classe du block du liquide (blockSaltWater) :

          
          package com.survivant.mod.blocks;
          
          import com.survivant.mod.ModSurvivant;
          import net.minecraft.block.material.Material;
          import net.minecraftforge.fluids.BlockFluidClassic;
          import net.minecraftforge.fluids.Fluid;
          
          public class BlockSaltWater extends BlockFluidClassic
          {    
              public BlockSaltWater(Fluid fluid)
              {
                  super(fluid, Material.water);
                  this.setUnlocalizedName("blockSaltWater");
                  this.setCreativeTab(ModSurvivant.tabSurvivant);
                  this.setTemperature(295);
                  this.setQuantaPerBlock(10);
              }
          }
          
          

          Enfin voici le blockState (fluids) :

          {
             "forge_marker": 1,
             "defaults": {
                 "model": "forge:fluid",
                 "transform": "forge:default-item"
             },
             "variants": {
          "salt": [{
          "custom": { "fluids": "saltWater"}
          }]
             }
          }
          
          1 Reply Last reply Reply Quote 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

            Tu as exactement la même chose que sur le code de debug de forge. Étrange que cela ne fonctionne pas.
            Si tu mets return 0x000000 le liquide est noir ?

            1 Reply Last reply Reply Quote 0
            • E
              elx9000 last edited by

              Non le liquide a toujours la même couleur (celle de l’eau du vanilla).

              1 Reply Last reply Reply Quote 0
              • LeBossMax2
                LeBossMax2 last edited by

                Il me semble qu’il y a un problème au niveau des majuscules: dans ton blockstate et dans le constructeur de ton fluid remplace “saltWater” par “saltwater”.

                1 Reply Last reply Reply Quote 0
                • E
                  elx9000 last edited by

                  ça ne change rien.

                  1 Reply Last reply Reply Quote 0
                  • E
                    elx9000 last edited by

                    J’ai essayé de mettre la texture de la lave pour test mais rien n’y fait le liquide garde la couleur de l’eau. Une idée ?

                    1 Reply Last reply Reply Quote 0
                    • LeBossMax2
                      LeBossMax2 last edited by

                      J’ai une idée, ( c’est très fort probable que ça ne fonctionne pas ) éssais d’enlever les “new resource location” dans le constructeur.

                      1 Reply Last reply Reply Quote 0
                      • E
                        elx9000 last edited by

                        Effectivement, cela ne fonctionne pas.
                        J’ai testé de changer de material, ça fonctionne mais la couleur est la même. Est-ce qu’il n’y aurait pas un bout de code qui override la texture du block, en donnant celle de l’eau classique ?

                        1 Reply Last reply Reply Quote 0
                        • E
                          elx9000 last edited by

                          Une idée ?

                          1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User last edited by

                            sur quelle tuto a tu apris a faire un fluide ?

                            1 Reply Last reply Reply Quote 0
                            • robin4002
                              robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                              Il y a un exemple de fluide directement sur forge : https://github.com/MinecraftForge/MinecraftForge/blob/master/src/test/java/net/minecraftforge/debug/ModelFluidDebug.java
                              Je vais faire des tests de mon côté pour voir si je trouve une solution.

                              1 Reply Last reply Reply Quote 0
                              • E
                                elx9000 last edited by

                                Ok merci

                                1 Reply Last reply Reply Quote 0
                                • robin4002
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                  ici :

                                         final ModelResourceLocation loc = new ModelResourceLocation("survivant:fluids", "salt");
                                  

                                  mets :

                                         final ModelResourceLocation loc = new ModelResourceLocation("survivant:salt");
                                  

                                  Changes le nom du json dans bloc state par salt.json

                                  et pour finir dans ce json remplaces :

                                    "variants": {
                                         "salt": [{
                                  

                                  par :

                                    "variants": {
                                         "normal": [{
                                  

                                  Je mets en pièce jointe mon mod de test avec le fluid.

                                  1 Reply Last reply Reply Quote 0
                                  • E
                                    elx9000 last edited by

                                    Ok merci, dès que je suis sur mon pc je test

                                    1 Reply Last reply Reply Quote 0
                                    • E
                                      elx9000 last edited by

                                      Bon décidément ça ne veut pas fonctionner, j’ai testé avec ton code et les modifs dans un 2eme temps mais cela ne change rien, la couleur reste la même.
                                      J’ai testé avec un System.out.println(“jean jack”); comme tu avais dans ton code mais la phrase n’apparait pas dans la console. J’ai cependant remarqué que dans la console il y avait un truc du genre : 
                                      [ERROR] fluid ‘saltWater’ not found    répété plusieurs fois d’affilé, j’ai pensé qu’il n’y aurait pas de texture mais si, celle de l’eau basique mais pas celle de getColor() qui était choisi.

                                      1 Reply Last reply Reply Quote 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                        Envoies un zip de ton dossier src.

                                        1 Reply Last reply Reply Quote 0
                                        • E
                                          elx9000 last edited by

                                          tiens :

                                          (Piece jointe supprimé)

                                          1 Reply Last reply Reply Quote 0
                                          • robin4002
                                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                                            Après avoir cherché 10 minutes pour rien je me suis souvenu que le nom des fluides ne prenait pas en compte les majuscules …

                                            Partout où tu as saltWater remplaces par salt_water.

                                            (par contre dans getColor mets autre chose que 0xFFFFFFFF, cette couleur c’est le blanc avec la transparence à fond donc ça ne change rien).

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB