MFF

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

    Créer un bloc avec des metadatas

    Planifier Épinglé Verrouillé Déplacé Les blocs
    1.7.x
    44 Messages 9 Publieurs 24.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.
    • Phenix246P Hors-ligne
      Phenix246 Rédacteurs
      dernière édition par robin4002

      regarde la tableau :

      public static String[] subBlock = new String[] {"block1", "block2", "block3", "block4"};
      

      “block1” est le metadata 0, “block2” est le metadata 1, pour faire simple leur position dans le tableau définie leur metadata.

      Si ça ne répond pas à ta question, donne nous plus de détails sur ce que tu veux faire, que l’on puisse t’aider

      1 réponse Dernière réponse Répondre Citer 1
      • Polygon48P Hors-ligne
        Polygon48
        dernière édition par

        @‘Phenix246’:

        regarde la tableau :

        public static String[] subBlock = new String[] {"block1", "block2", "block3", "block4"};
        

        :

        “block1” est le metadata 0, “block2” est le metadata 1, pour faire simple leur position dans le tableau définie leur metadata.

        Si ça ne répond pas à ta question, donne nous plus de détails sur ce que tu veux faire, que l’on puisse t’aider

        C’était exactement cela !
        Du coup au passage j’en profite :p, si je veux que mon Block1 drop un item que j’ai créé (par exemple une épée) comment je dois faire ?
        Et aussi, imaginons que je créer encore une nouvelle sorte de bloc, je vais donc recréer des metadata, du coup comment je vais devoir faire, car si dans le tableau de mon block je suis l’ordre -> Block1 = metadata 0, block2 = metadata 1 et que je m’arrête au bloc 4 donc block4 = metadata 3, dans ma nouvelle classe pour ma deuxième sorte de bloc je reprends dans l’ordre ou je m’étais arrêté dans l’autre ? Du coup : le bloc1 = metadata 4 ?

        Merci encore pour ta réponse ! 🙂

        Cordialement, Polygon48

        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

          Non, si tu fais un autre bloc, ça reprend à 0. Chaque bloc a ces metadata.
          Pour les drop il faut passer par la fonction getItemDropped

          1 réponse Dernière réponse Répondre Citer 1
          • Polygon48P Hors-ligne
            Polygon48
            dernière édition par

            @‘robin4002’:

            Non, si tu fais un autre bloc, ça reprend à 0. Chaque bloc a ces metadata.
            Pour les drop il faut passer par la fonction getItemDropped

            D’accord d’accord !

            Dernière question et merci d’ailleurs pour toutes ses réponses !

            Du coup lors de la génération de minerais, dans la méthode :

            
            (new WorldGenMinable(ModTutoriel.TutorialMetadata.blockID, 5, 12, Block.stone.blockID)).generate(world, rand, x + rand.nextInt(16), 16 + rand.nextInt(32), z + rand.nextInt(16));
            

            Ici on a

            
            ModTutoriel.TutorialMetadata.blockID
            

            Quand j’aurais finis de créer ma classe avec mes metadata, le blockId sera le nom du bloc définis dans le tableau et le metadata celui de celui-ci ?
            Merci encore 🙂

            Cordialement, Polygon48

            1 réponse Dernière réponse Répondre Citer 0
            • Phenix246P Hors-ligne
              Phenix246 Rédacteurs
              dernière édition par

              vieux système en 1.7 les “.blockID” ont totalement disparu :

              (new WorldGenMinable(ModTutoriel.TutorialMetadata, 5, 12, Blocks.stone)).generate(world, rand, x + rand.nextInt(16), 16 + rand.nextInt(32), z + rand.nextInt(16));
              
              1 réponse Dernière réponse Répondre Citer 0
              • Polygon48P Hors-ligne
                Polygon48
                dernière édition par

                @‘Phenix246’:

                vieux système en 1.7 les “.blockID” ont totalement disparu :

                (new WorldGenMinable(ModTutoriel.TutorialMetadata, 5, 12, Blocks.stone)).generate(world, rand, x + rand.nextInt(16), 16 + rand.nextInt(32), z + rand.nextInt(16));
                

                Merci beaucoup !
                Enfin grâce à vous j’ai réussi !

                Dernière dernière question après je n’embête plus !

                Pour le drop Robin ma dit d’utiliser getItemDropped, j’ai essayé plusieurs chose mais je ne trouve pas comment dropper un block, par exemple if metata = 1 on return Monmod.Item1

                Cordialement, Polygon48

                1 réponse Dernière réponse Répondre Citer 0
                • Phenix246P Hors-ligne
                  Phenix246 Rédacteurs
                  dernière édition par

                  public Item getItemDropped(int metadata, Random rand, int fortune)
                  {
                  return metadata == 1 ? Monmod.Item1 : Item.getItemFromBlock(this);
                  }
                  
                  public int damageDropped(int metadata)
                  {
                  return metadata == 1 ? "damage" : 1;
                  }
                  
                  public int quantityDropped(int metadata, int fortune, Random par3Random)
                  {
                  return "nombre d'items"
                  }
                  

                  Je te donne en plus deux autre méthode dont tu peux avoir besoin (la damage de l’item que tu drop et la quantité dropé)

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

                    @‘Phenix246’:

                    public Item getItemDropped(int metadata, Random rand, int fortune)
                    {
                    return metadata == 1 ? Monmod.Item1 : Item.getItemFromBlock(this);
                    }
                    
                    public int damageDropped(int metadata)
                    {
                    return metadata == 1 ? "damage" : 1;
                    }
                    
                    public int quantityDropped(int metadata, int fortune, Random par3Random)
                    {
                    return "nombre d'items"
                    }
                    

                    Je te donne en plus deux autre méthode dont tu peux avoir besoin (la damage de l’item que tu drop et la quantité dropé)

                    Merci encore pour toute ton aide ! 😄

                    Cordialement, Polygon48

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

                      Bonjour c’est possible d’utiliser les metadatas pour des blocks techne ?

                      Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                      1 réponse Dernière réponse Répondre Citer 0
                      • Phenix246P Hors-ligne
                        Phenix246 Rédacteurs
                        dernière édition par

                        oui bien sûr, mais comme tu utilise obligatoirement un tileEntity, ça ne sert pas à grand chose, après tout dépend de ce que tu veux faire, en tout cas oui tu peux les utiliser

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

                          Je voudrait que le bloc soit différent suivant ce qu’il y a autour 
                          si a x+1, y, z il y a un block pipe alors metadata 1 par exemple

                          Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

                          1 réponse Dernière réponse Répondre Citer 0
                          • isadorI Hors-ligne
                            isador Moddeurs confirmés Modérateurs
                            dernière édition par

                            oui tu peut très bien le faire

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

                              Bah je vais tenter parce que minecraft ne veut pas accepter ma condition 😕

                              Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                                Bonjour,
                                Je voulais savoir si, pour récupérer le metadata du bloc et l’utiliser dans son TileEntity il fallait utiliser la méthode getMetadata() de ItemBlock <nom>?</nom>

                                Mes mods:

                                • New Ores
                                • More Dragons
                                1 réponse Dernière réponse Répondre Citer 0
                                • Phenix246P Hors-ligne
                                  Phenix246 Rédacteurs
                                  dernière édition par

                                  tu peux récupérer le damage de l’item (quelquechose comme getItemDamage()) ou le metadata du bloc (getBlockMetadata(x,y,z)) et ensuite l’utiliser dans ton TileEntity comme tu le souhaite

                                  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

                                    Non, absolument pas. Si tu veux le metadata du bloc utilise ce que phenix t’a donné. Et si tu es dans le tile entity il y a encore plus simple, utilise la variable metadata de la classe TileEntity

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

                                      Merci, pour le getMetadata(x, y, z), ça marche, mais dans un contexte statique (comme pour la durée de vie d’un carburant), ça pose problème (et je vois pas comment utiliser les damages) : et c’est là qu’il me faudrait la fonction de la mort….

                                      Mes mods:

                                      • New Ores
                                      • More Dragons
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • bin4r1sB Hors-ligne
                                        bin4r1s
                                        dernière édition par

                                        Merci robin4002 mais ça ne résout pas mon problème de contexte statique…

                                        EDIT : Ah, c’est bon pour le contexte statique, j’ai trouvé, merci.

                                        Mes mods:

                                        • New Ores
                                        • More Dragons
                                        1 réponse Dernière réponse Répondre Citer 0
                                        • bin4r1sB Hors-ligne
                                          bin4r1s
                                          dernière édition par

                                          Bonjour/Bonsoir
                                          Je voulais savoir comment ajouter une recette pour crafter un block avec metadata. J’ai essayé :

                                          
                                          GameRegistry.addRecipe(new ItemStack(crusher, 1, metadata)[…])
                                          
                                          

                                          Mais cela me renvoie vers un NPE.

                                          Pouvez-vous m’aider ?

                                          Mes mods:

                                          • New Ores
                                          • More Dragons
                                          1 réponse Dernière réponse Répondre Citer 0
                                          • Phenix246P Hors-ligne
                                            Phenix246 Rédacteurs
                                            dernière édition par

                                            l’item est bien déclarer car la seule chose qui peut être nulle est ton bloc ?

                                            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