MFF

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

    Couleur d'un liquide qui ne marche pas

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8.9
    23 Messages 4 Publieurs 4.5k 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.
    • E Hors-ligne
      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
      • robin4002R Hors-ligne
        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 Hors-ligne
          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
          • LeBossMax2L Hors-ligne
            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 Hors-ligne
              elx9000
              dernière édition par

              ça ne change rien.

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

                      Une idée ?

                      1 réponse Dernière réponse Répondre Citer 0
                      • ? Hors-ligne
                        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
                        • robin4002R Hors-ligne
                          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 Hors-ligne
                            elx9000
                            dernière édition par

                            Ok merci

                            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

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

                                      tiens :

                                      (Piece jointe supprimé)

                                      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

                                        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
                                        • ? Hors-ligne
                                          Un Ancien Utilisateur
                                          dernière édition par

                                          Les src de robin marche en 1.7 ?

                                          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

                                            Pas du tout, en 1.7 les fluides sont complètement différents.
                                            C’est plus proche de la 1.6.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB