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

Résolu Ajout de plusieurs Fluids

1.12.x
1.12.2
4
37
1.2k
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.
  • Ck_Luky
    Ck_Luky dernière édition par 26 mars 2020, 09:28

    Bonjour à tous,
    dans le mod que je créer actuellement je souhaiterais ajouter plusieurs fluids.
    Mon premier fluid est déjà ajouté mais malheureusement je n’arrive pas a ajouter mes autres fluids…
    L’erreur se situe au niveau de cette classe, sinon tout le reste marche bien:

    package fr.luky.feurimod.utils.handlers;
    
    import fr.luky.feurimod.init.ModBlocks;
    import net.minecraft.block.state.IBlockState;
    import net.minecraft.client.renderer.ItemMeshDefinition;
    import net.minecraft.client.renderer.block.model.ModelResourceLocation;
    import net.minecraft.client.renderer.block.statemap.StateMapperBase;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.client.model.ModelLoader;
    
    public class RenderHandler {
    
        public static void registerCustomMeshesAndStatesForIridium(){
            ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(ModBlocks.MOLTEN_IRIDIUM_BLOCK), new ItemMeshDefinition() {
                @Override
                public ModelResourceLocation getModelLocation(ItemStack stack) {
                    return new ModelResourceLocation("feurimod:molten_iridium", "fluid");
                }
            });
            ModelLoader.setCustomStateMapper(ModBlocks.MOLTEN_IRIDIUM_BLOCK, new StateMapperBase() {
                @Override
                protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
                    return new ModelResourceLocation("feurimod:molten_iridium", "fluid");
                }
            });
        }
    }
    

    j’ai déja éssayer de copier/coller se code en modifiant les parties pour mon deuxième fluid, mais une fois en jeu les textures de mes deux fluids ne merchent plus ou s’inversent…

    Merci d’avance, Ck_Luky

    Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
    Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

    1 réponse Dernière réponse Répondre Citer 0
    • robin4002
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 26 mars 2020, 15:55

      Bonjour,

      Tu peux envoyer le code avec les deux fluides ?

      1 réponse Dernière réponse Répondre Citer 0
      • Ck_Luky
        Ck_Luky dernière édition par Ck_Luky 27 mars 2020, 06:49 27 mars 2020, 06:48

        Voilà

        package fr.luky.feurimod.utils.handlers;
         
        import fr.luky.feurimod.init.ModBlocks;
        import net.minecraft.block.state.IBlockState;
        import net.minecraft.client.renderer.ItemMeshDefinition;
        import net.minecraft.client.renderer.block.model.ModelResourceLocation;
        import net.minecraft.client.renderer.block.statemap.StateMapperBase;
        import net.minecraft.item.Item;
        import net.minecraft.item.ItemStack;
        import net.minecraftforge.client.model.ModelLoader;
         
        public class RenderHandler {
        
            public static void registerCustomMeshesAndStatesForFeurium(){
                ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(ModBlocks.MOLTEN_FERIUM_BLOCK), new ItemMeshDefinition() {
                    @Override
                    public ModelResourceLocation getModelLocation(ItemStack stack) {
                        return new ModelResourceLocation("feurimod:molten_feurium", "fluid");
                    }
                });
                ModelLoader.setCustomStateMapper(ModBlocks.MOLTEN_FEURIUM_BLOCK, new StateMapperBase() {
                    @Override
                    protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
                        return new ModelResourceLocation("feurimod:molten_feurium", "fluid");
                    }
                });
            }
         
            public static void registerCustomMeshesAndStatesForIridium(){
                ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(ModBlocks.MOLTEN_IRIDIUM_BLOCK), new ItemMeshDefinition() {
                    @Override
                    public ModelResourceLocation getModelLocation(ItemStack stack) {
                        return new ModelResourceLocation("feurimod:molten_iridium", "fluid");
                    }
                });
                ModelLoader.setCustomStateMapper(ModBlocks.MOLTEN_IRIDIUM_BLOCK, new StateMapperBase() {
                    @Override
                    protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
                        return new ModelResourceLocation("feurimod:molten_iridium", "fluid");
                    }
                });
            }
        }
        

        Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 27 mars 2020, 07:48

          les fonctions registerCustomMeshesAndStatesForFeurium et registerCustomMeshesAndStatesForIridium tu les appelles où ?

          1 réponse Dernière réponse Répondre Citer 0
          • Ck_Luky
            Ck_Luky dernière édition par 27 mars 2020, 20:29

            Dans une classe registry Handler ou elles sont enregistrés dans le pré init

            Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

            1 réponse Dernière réponse Répondre Citer 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 27 mars 2020, 20:36

              Peux-tu envoyer le code de ta classe ModBlocks

              1 réponse Dernière réponse Répondre Citer 0
              • Ck_Luky
                Ck_Luky dernière édition par 29 mars 2020, 08:33

                Problème à Moitié résolu :

                package fr.luky.feurimod.utils.handlers;
                
                import fr.luky.feurimod.init.ModBlocks;
                import fr.luky.feurimod.utils.Reference;
                import net.minecraft.block.Block;
                import net.minecraft.block.state.IBlockState;
                import net.minecraft.client.renderer.ItemMeshDefinition;
                import net.minecraft.client.renderer.block.model.ModelResourceLocation;
                import net.minecraft.client.renderer.block.statemap.StateMapperBase;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemStack;
                import net.minecraft.util.ResourceLocation;
                import net.minecraftforge.client.model.ModelLoader;
                
                public class RenderHandler {
                
                    public static Block blockFluid = ModBlocks.MOLTEN_IRIDIUM_BLOCK;
                
                    public static void registerCustomMeshesAndStates(){
                        ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock((Block) blockFluid), new ItemMeshDefinition() {
                            @Override
                            public ModelResourceLocation getModelLocation(ItemStack stack) {
                                return new ModelResourceLocation(new ResourceLocation(Reference.MODID, blockFluid.getUnlocalizedName().substring(5)), "fluid");
                            }
                        });
                        ModelLoader.setCustomStateMapper((Block) blockFluid, new StateMapperBase() {
                            @Override
                            protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
                                return new ModelResourceLocation(new ResourceLocation(Reference.MODID, blockFluid.getUnlocalizedName().substring(5)), "fluid");
                            }
                        });
                    }
                }
                

                mais maintenant je n’arrive plus à ajouter mon 2 ème fluid dans la variable blockFluid…
                Comment puis je faire ?

                Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
                Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

                1 réponse Dernière réponse Répondre Citer 0
                • Ck_Luky
                  Ck_Luky dernière édition par 30 mars 2020, 05:31

                  toujours aucune réponse🤔. Il n’y a vraiment personne pour m’aider ?

                  Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 30 mars 2020, 06:37

                    Tu peux envoyer la classe dans laquelle tes fluides sont déclarés ?

                    1 réponse Dernière réponse Répondre Citer 0
                    • Ck_Luky
                      Ck_Luky dernière édition par Ck_Luky 30 mars 2020, 07:55 30 mars 2020, 07:53

                      la voila:

                      package fr.luky.feurimod.init;
                      import fr.luky.feurimod.fluids.FluidFeurimodFluid;
                      import net.minecraft.util.ResourceLocation;
                      import net.minecraftforge.fluids.Fluid;
                      import net.minecraftforge.fluids.FluidRegistry;
                      public class ModFluids {
                      public static final Fluid MOLTEN_IRIDIUM_FLUID = new FluidFeurimodFluid("molten_iridium", new ResourceLocation("feurimod:blocks/molten_iridium_still"), new ResourceLocation("feurimod:blocks/molten_iridium_flow"));
                      public static final Fluid MOLTEN_FEURIUM_FLUID = new FluidFeurimodFluid("molten_feurium", new ResourceLocation("feurimod:blocks/molten_feurium_still"), new ResourceLocation("feurimod:blocks/molten_feurium_flow"));
                      public static void registerFluids(){
                      registerFluid(MOLTEN_IRIDIUM_FLUID);
                      registerFluid(MOLTEN_FEURIUM_FLUID);
                      }
                      public static void registerFluid(Fluid fluid){
                      FluidRegistry.registerFluid(fluid);
                      FluidRegistry.addBucketForFluid(fluid);
                      }
                      }

                      et ma classe FluidFeurimodFluid:

                      package fr.luky.feurimod.fluids;
                      import net.minecraft.util.ResourceLocation;
                      import net.minecraftforge.fluids.Fluid;
                      public class FluidFeurimodFluid extends Fluid {
                      public FluidFeurimodFluid(String name, ResourceLocation still, ResourceLocation flowing) {
                      super(name, still, flowing);
                      this.setUnlocalizedName(name);
                      }
                      }

                      Mais pourquoi ces classes alors que le problème est aux 3/4 résolu (je n’arrive juste pas a ajouter mon deuxième fluid dans ma variable blockFluid) ?

                      Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 30 mars 2020, 09:04

                        Parce que je ne vois pas où est ton problème, donc il faut bien une vu d’ensemble, non ?

                        Sur les exemples de forge, la ModelResourceLocation a comme valeur “normal” au lieu de “fluid”, peut-être que le problème vient de là https://github.com/MinecraftForge/MinecraftForge/blob/1.12.x/src/test/java/net/minecraftforge/debug/fluid/FluidPlacementTest.java#L110

                        1 réponse Dernière réponse Répondre Citer 0
                        • Ck_Luky
                          Ck_Luky dernière édition par 30 mars 2020, 11:10

                          Aaaaaah on as eu un petit décalage.😩
                          En fait le problème des textures est déja réglé (j’ai réussi a ajouter ma texture via une variable) mais maintenant le problème c’est que je n’arrive pas à ajouter mon second fluid à cette variable(en fait je suis meme pas sur que c’est une variable vu mon niveau en programation)

                          Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002 30 mars 2020, 14:25 30 mars 2020, 14:24

                            Par rapport à ce message ? https://www.minecraftforgefrance.fr/topic/6066/ajout-de-plusieurs-fluids/7?_=1585578136723

                            La variable que tu as créé ne change rien par rapport au premier code (la seule différence étant que tu n’as plus qu’un fluide au lieu de deux). Mais sinon cela revient au même …
                            EDIT : ah si, il y a une différence, le ResourceLocation n’est pas identique.

                            1 réponse Dernière réponse Répondre Citer 0
                            • Ck_Luky
                              Ck_Luky dernière édition par 30 mars 2020, 14:35

                              Donc est il possible d’enregistrer mes fluid via une variable ??

                              Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
                              Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 30 mars 2020, 14:55

                                Oui, mais en soit la présence de cette variable ne change rien. Tu peux mettre directement ModBlocks.MOLTEN_IRIDIUM_BLOCK là où tu utilises blockFluid.

                                1 réponse Dernière réponse Répondre Citer 0
                                • Ck_Luky
                                  Ck_Luky dernière édition par 30 mars 2020, 16:50

                                  Mon objectif c’est que dans cette variable, on aie tous mes fluids (donc molten_iridium_block ET molten_feurium_block)

                                  Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
                                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • robin4002
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002 30 mars 2020, 17:10 30 mars 2020, 17:10

                                    Non mais ça ce n’est pas possible.
                                    Enfin pas avec son type actuel, il te faut une array pour que ce soit le cas.

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • Ck_Luky
                                      Ck_Luky dernière édition par 30 mars 2020, 17:59

                                      Super 😁😁
                                      Mais du coup j’utilise une liste où autre chose ??

                                      Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
                                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002 30 mars 2020, 18:45 30 mars 2020, 18:44

                                        Un array.
                                        Mais je ne vois pas en quoi cela va résoudre ton problème …

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • F
                                          Fury dernière édition par 31 mars 2020, 01:57

                                          oui j’ai hue le même problème jusque a aujourd’hui ou j’ai compris cette erreur,
                                          le constructeur complet que tu utilise est pas bons sais un constructeur de fluid démonstration que on trouve sur le net et montrée sur YouTube aussi.
                                          Juste ou j’ai hue une idée de voir le constructeur en lui même qui est complexe et fonctionnelle.

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • 1
                                          • 2
                                          • 1 / 2
                                          7 sur 37
                                          • Premier message
                                            7/37
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB