• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Couleur d'un liquide qui ne marche pas

    1.8.x
    1.8.9
    4
    23
    3580
    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.
    • E
      elx9000 dernière édition par

      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 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Salut,
        Ton fluide ressemble à quoi actuellement ?

        Tu peux envoyer ton code complet ?

        1 réponse Dernière réponse Répondre Citer 0
        • E
          elx9000 dernière édition par

          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 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

            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 réponse Dernière réponse Répondre Citer 0
            • E
              elx9000 dernière édition par

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

              1 réponse Dernière réponse Répondre Citer 0
              • LeBossMax2
                LeBossMax2 dernière édition par

                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 réponse Dernière réponse Répondre Citer 0
                • E
                  elx9000 dernière édition par

                  ça ne change rien.

                  1 réponse Dernière réponse Répondre Citer 0
                  • E
                    elx9000 dernière édition par

                    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 réponse Dernière réponse Répondre Citer 0
                    • LeBossMax2
                      LeBossMax2 dernière édition par

                      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 réponse Dernière réponse Répondre Citer 0
                      • E
                        elx9000 dernière édition par

                        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 réponse Dernière réponse Répondre Citer 0
                        • E
                          elx9000 dernière édition par

                          Une idée ?

                          1 réponse Dernière réponse Répondre Citer 0
                          • ?
                            Un Ancien Utilisateur dernière édition par

                            sur quelle tuto a tu apris a faire un fluide ?

                            1 réponse Dernière réponse Répondre Citer 0
                            • robin4002
                              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                              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 réponse Dernière réponse Répondre Citer 0
                              • E
                                elx9000 dernière édition par

                                Ok merci

                                1 réponse Dernière réponse Répondre Citer 0
                                • robin4002
                                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                  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 réponse Dernière réponse Répondre Citer 0
                                  • E
                                    elx9000 dernière édition par

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

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • E
                                      elx9000 dernière édition par

                                      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 réponse Dernière réponse Répondre Citer 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                        Envoies un zip de ton dossier src.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • E
                                          elx9000 dernière édition par

                                          tiens :

                                          (Piece jointe supprimé)

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • robin4002
                                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                            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 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB