MFF

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

    Les metadata de bloc

    Planifier Épinglé Verrouillé Déplacé Les blocs
    1.6.x
    56 Messages 11 Publieurs 19.8k 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.
    • EclipseOnFireE Hors-ligne
      EclipseOnFire
      dernière édition par

      ulysse je comprend tout à fait ton point de vue mais je pense que si les développeurs de Mojang ont choisi de faire une classe/bloc c’est pas pour rien. Ce ne sont pourtant pas des débutants en programmation.
      Je ne comprend pas pourquoi moi non plus mais il doit bien y avoir une raison 🙂

      Travaille sur un super serveur, Wirestone.

      1 réponse Dernière réponse Répondre Citer 0
      • kevin_68K Hors-ligne
        kevin_68 Moddeurs confirmés
        dernière édition par

        Je ne comprend pas pourquoi moi non plus mais il doit bien y avoir une raison

        Sans doute s’ils veulent faire une modification sur un bloc qui nécessite un changement de l’extension


        Mettez à jours vers la dernière version stable (1.8.9 voir même…

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

          Peut être… Ou alors pour mieux s’y retrouver, je sais pas.

          Travaille sur un super serveur, Wirestone.

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

            @‘robin4002’:

            J’ai mis des code_java pour une meilleur lisibilité (il faudrait que je vois avec Woryk pour les améliorer encore aussi, barre défilante sur le codé et éviter les déformations avec les codes trop long)

            Tu parle de balises pour écrire le code dans les post ?

            @‘robin4002’:

            Par contre tu as dû te fail avec l’ItemBlock, car je ne vois pas de différence (et du fait que type n’est plus static il me semble que ça peut pas marcher avec le code actuelle)

            effectivement c’est pas TutorialMetedata (la classe du block) mais ModTutoriel ( classe du mod ) . J’ai rectifier dans le post . Et apparemment ca marche chez moi aussi non je ne me serait pas permis d’avoir publié ce code.

            Pas évident de faire un post comme ca , je suis encore loin de pouvoir rédiger des tutu comme toi , mais ca viendra .

            ma vie de minecraftien: Ulyssecraft

            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

              Oui les balises dans le postes.
              Et pour le code, comme ça oui ça fonctionne, mais sans la avant que tu rectifie la modification de l’ItemBlock ça pouvait pas fonctionner

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

                @‘EclipseOnFire’:

                ulysse je comprend tout à fait ton point de vue mais je pense que si les développeurs de Mojang ont choisi de faire une classe/bloc c’est pas pour rien. Ce ne sont pourtant pas des débutants en programmation.
                Je ne comprend pas pourquoi moi non plus mais il doit bien y avoir une raison 🙂

                Non mais la se sont des classes qui sont écrites par nous même il n’est pas question de changer la classe Block de Majong.

                ma vie de minecraftien: Ulyssecraft

                1 réponse Dernière réponse Répondre Citer 0
                • kevin_68K Hors-ligne
                  kevin_68 Moddeurs confirmés
                  dernière édition par

                  Petity fail:

                  Majong

                  c’est un jeu, c’est pas la même chose que Mojang


                  Mettez à jours vers la dernière version stable (1.8.9 voir même…

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

                    oups fourchage de doigts 😛

                    ma vie de minecraftien: Ulyssecraft

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

                      Non je ne parle pas de modifier. Je parle de suivre l’exemple initial. Je voulais dire que si les développeurs de Mojang ont décidé de faire un bloc/classe c’est pour une bonne raison, et je pense que l’on devrait suivre cette démarche 🙂 (Attention, je ne dis pas que ton code est nul/mauvais/inutile !)

                      Travaille sur un super serveur, Wirestone.

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

                        Quelque questions … Comment on ajoute des propriété a nos blocs dans les metadata ?

                        du genre :

                        
                        public int quantityDropped(Random par1Random)
                        {
                        return 0;
                        }
                        
                        public int getRenderBlockPass()
                        {
                        return 0;
                        }
                        
                        public boolean isOpaqueCube()
                        {
                        return false;
                        }
                        
                        public boolean renderAsNormalBlock()
                        {
                        return false;
                        }
                        
                        

                        Ou tout les propriété lister ici : Customiser votre bloc ?

                        Merci de vos réponse !

                        1 réponse Dernière réponse Répondre Citer 0
                        • kevin_68K Hors-ligne
                          kevin_68 Moddeurs confirmés
                          dernière édition par

                          Les fontions qui n’ont pas “int metadata”, “World world, int x, int y, int z” ou “BlockAccess blockaccess, int x, int y, int z” ne peuvent pas être utilisées en metadata.
                          Pour le drop:

                          
                          public ArrayList <itemstack>getBlockDropped(World world, int x, int y, int z, int metadata, int fortune)
                          {
                          ArrayList <itemstack>ret = new ArrayList<itemstack>();
                          
                          int count = quantityDropped(metadata, fortune, world.rand);
                          for(int i = 0; i < count; i++)
                          {
                          int id = idDropped(metadata, world.rand, fortune);
                          if (id > 0)
                          {
                          ret.add(new ItemStack(id, 1, damageDropped(metadata)));
                          }
                          }
                          return ret;
                          }
                          

                          Pour le rendu, c’est dans la classe du render qu’il faut check le metadata et faire la différence.</itemstack></itemstack></itemstack>


                          Mettez à jours vers la dernière version stable (1.8.9 voir même…

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

                            Donc du coups si ma texture de bloc est transparente je fais comment ?

                            et si on veut faire la forme d’un bloc déjà existant on fait comment parce que la je comprend pas trop…

                            public int getRenderType()
                            {
                            return 32;
                            }

                            tout ça dans les metadata bien sur ! Merci encore !

                            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

                              Les fonctions qui n’ont pas metadata en paramètre (ou world, x, y, z ou iblockaccess, x, y, z) sont appliquer à tout les metadata.
                              Si tu veux un rendu différent, il faut utiliser un autre id, ou alors faire un rendu custom et dans le rendu tu appliques le rendu en fonction du metadata (cf rendu complexe de bloc via ISBRH).

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

                                Les fonctions qui n’ont pas metadata en paramètre (ou world, x, y, z ou iblockaccess, x, y, z) sont appliquer à tout les metadata.

                                Sa veux dire que ça s’est déjà dans les metadatas ?

                                
                                public int quantityDropped(Random par1Random)
                                {
                                return 0;
                                }
                                
                                public int getRenderBlockPass()
                                {
                                return 0;
                                }
                                
                                public boolean isOpaqueCube()
                                {
                                return false;
                                }
                                
                                

                                Alors pour quoi mes vitres son pas transparentes… ??

                                
                                package mods.block;
                                
                                import java.util.ArrayList;
                                import java.util.List;
                                import java.util.Random;
                                
                                import net.minecraft.block.Block;
                                import net.minecraft.block.material.Material;
                                import net.minecraft.client.renderer.texture.IconRegister;
                                import net.minecraft.creativetab.CreativeTabs;
                                import net.minecraft.item.ItemStack;
                                import net.minecraft.util.Icon;
                                import net.minecraft.world.World;
                                import cpw.mods.fml.relauncher.Side;
                                import cpw.mods.fml.relauncher.SideOnly;
                                
                                public class BlockVitreColorer extends Block{
                                
                                public BlockVitreColorer(int id, Material Materials) {
                                super(id, Materials);
                                this.setCreativeTab(CreativeTabs.tabDecorations);
                                }
                                
                                public static String[] type = new String[]{"Glass-White", "Glass-Orange", "Glass-Magenta", "Glass-LightBlue", "Glass-Yellow", "Glass-Lime", "Glass-Pink", "Glass-Gray","Glass-LightGrey","Glass-Cyan","Glass-Purple","Glass-Blue","Glass-Brown","Glass-Green","Glass-Red","Glass-Black"};
                                private Icon[] IconArray;
                                
                                public void registerIcons(IconRegister iconregister)
                                {
                                IconArray = new Icon[type.length];
                                for(int i = 0; i < type.length; i++)
                                {
                                IconArray* = iconregister.registerIcon("mods:" + type*);
                                }
                                }
                                
                                @SideOnly(Side.CLIENT)
                                public void getSubBlocks(int id, CreativeTabs creativeTabs, List list)
                                {
                                for(int metadata = 0; metadata < type.length; metadata++)
                                {
                                list.add(new ItemStack(id, 1, metadata));
                                }
                                }
                                
                                @SideOnly(Side.CLIENT)
                                public Icon getIcon(int side, int metadata)
                                {
                                return metadata < type.length && metadata >= 0 ? IconArray[metadata] : IconArray[0];
                                }
                                
                                public ArrayList <itemstack>getBlockDropped(World world, int x, int y, int z, int metadata, int fortune)
                                {
                                ArrayList <itemstack>ret = new ArrayList<itemstack>();
                                
                                int count = quantityDropped(metadata, fortune, world.rand);
                                for(int i = 0; i < count; i++)
                                {
                                int id = idDropped(metadata, world.rand, fortune);
                                if (id > 0)
                                {
                                ret.add(new ItemStack(id, 0, damageDropped(metadata)));
                                }
                                }
                                return ret;
                                }
                                
                                }
                                
                                

                                J’ai repris les textures de la 1.7 donc il son belle et bien transparente !
                                dsl mais j’arrive vraiment pas a comprendre…Merci</itemstack></itemstack></itemstack>

                                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

                                  Remplace l’extends Block par extends BlockGlass
                                  Le constructeur sera comme ça :

                                  public BlockVitreColorer(int id, Material Materials, boolean b) {
                                  super(id, Materials, b);
                                  this.setCreativeTab(CreativeTabs.tabDecorations);
                                  }
                                  

                                  Dans ta classe principale, remplace le new BlockVitreColorer(id, Material.glass) par new BlockVitreColorer(id, Material.glass, false)
                                  Normalement ça devrait être bon.

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

                                    Je suis dsl… mais ça fonctionne pas 😞 😞 mes vitre son toujours opaque

                                    d’âpres moi le soucie vien d’ici quand on déclare les texture non ?

                                    avec le iconregister?

                                    
                                    public static String[] type = new String[]{"Glass-White", "Glass-Orange", "Glass-Magenta", "Glass-LightBlue", "Glass-Yellow", "Glass-Lime", "Glass-Pink", "Glass-Gray","Glass-LightGrey","Glass-Cyan","Glass-Purple","Glass-Blue","Glass-Brown","Glass-Green","Glass-Red","Glass-Black"};
                                    private Icon[] IconArray;
                                    
                                    public void registerIcons(IconRegister iconregister)
                                    {
                                    IconArray = new Icon[type.length];
                                    for(int i = 0; i < type.length; i++)
                                    {
                                    IconArray* = iconregister.registerIcon("mods:" + type*);
                                    }
                                    }
                                    
                                    
                                    1 réponse Dernière réponse Répondre Citer 0
                                    • utyboU Hors-ligne
                                      utybo
                                      dernière édition par

                                      Du coup, soit tes textures ne sont pas transparentes, soit y’a un gros problème…

                                      Moddeur à la retraite et développeur de trucs en Java.

                                      J'aide les gens comme je peux, alors si mon message v…

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

                                        Bien test le code tu verra bien … et oui mes textures son bien transparente 😞

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

                                          up ! 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

                                            public int getRenderBlockPass()
                                            {
                                            return 1;
                                            }
                                            

                                            À mettre dans la classe du bloc, si tu l’as déjà remplace juste le 0 par 1.
                                            Normalement les rendus avec transparences sont sur 1, je sais pas pourquoi le verre de minecraft est sur 0 (mystère ?)
                                            Parcontre ça fait que le rendu sur le monde, en main il est toujours non transparent, j’ai pas trouvé ce que gère ça.

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB