MFF

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

    Extend un Block vers un BlockRotatePillar ?

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.2
    10 Messages 5 Publieurs 2.3k 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.
    • N Hors-ligne
      Noxon
      dernière édition par robin4002

      Yop,
      Depuis quelques semaines je commence à chopper le coup, mais n’étant pas un bon codeur à la base, il y a un truc qui me fait bloquer désormais concernant le BlockRotatePillar, c’est un peu particulier.

      En fait j’ai codé quatre Log (buche) sur la même class pour utiliser des metadata et éviter de faire 400 fichiers et utiliser 4 ID différentes.
      Le problème c’est que du coup mon getIcon est déjà mangé par le multi-texture. Or quand j’extend mon bloc vers un BlockRotatePillar, Eclipse me demande de créer une methods propre à ce dernier :
      Et ce truc, c’est un “getSideIcon”… Alors j’ai exploré la class incompréhensible du BlockRotatePillar, mais en fait c’est vraiment incompréhensible… Le pire c’est que du coup il faut aussi que je les fasse dépendre du Metadata !

      Je sais pas comment faire pour faire en sorte de créer un RotatePillar, j’aimerai que mes buches soient comme
      celles de Minecraft (orientable et avec des metadata) voici la class en question :

      package wwrp.Blocks.Tree;
      
      import java.util.List;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import wwrp.Common.Modwwrp;
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockRotatedPillar;
      import net.minecraft.block.material.Material;
      import net.minecraft.client.renderer.texture.IIconRegister;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.IIcon;
      
      public class BlockwwrpTree extends Block
      {
          public static String[] type = new String[] {"ashLog", "rosewoodLog", "willowLog", "whiteElmLog"};
      
          private IIcon[] Icon1 = new IIcon[2];
          private IIcon[] Icon2 = new IIcon[2];
          private IIcon[] Icon3 = new IIcon[2];
          private IIcon[] Icon4 = new IIcon[2];
      
          public BlockwwrpTree()
          {
              super(Material.wood);
              setHarvestLevel("axe",0);
              this.setHardness(3.0F);
              this.setStepSound(Block.soundTypeWood);
              this.setCreativeTab(Modwwrp.wwrpTab);
          }
      
          public void registerBlockIcons(IIconRegister iconregister)
          {
              Icon1[0] = iconregister.registerIcon("Modwwrp:"+"log_ash_top");
              Icon1[1] = iconregister.registerIcon("Modwwrp:"+"log_ash_side");
      
              Icon2[0] = iconregister.registerIcon("Modwwrp:"+"log_rosewood_top");
              Icon2[1] = iconregister.registerIcon("Modwwrp:"+"log_rosewood_side");
      
              Icon3[0] = iconregister.registerIcon("Modwwrp:"+"log_willow_top");
              Icon3[1] = iconregister.registerIcon("Modwwrp:"+"log_willow_side");
      
              Icon4[0] = iconregister.registerIcon("Modwwrp:"+"log_whiteElm_top");
              Icon4[1] = iconregister.registerIcon("Modwwrp:"+"log_whiteElm_side");
          }
      
          @SideOnly(Side.CLIENT)
          public void getSubBlocks(Item item, CreativeTabs creativeTabs, List list)
          {
              for(int metadata = 0; metadata < type.length; metadata++)
              {
                  list.add(new ItemStack(item, 1, metadata));
              }
          }
      
          @SideOnly(Side.CLIENT)
          public IIcon getIcon(int side, int metadata)
          {
              switch(metadata)
              {
                  case 0:
                      return side < 2 ? Icon1[0] : Icon1[1];
                  case 1:
                      return side < 2 ? Icon2[0] : Icon2[1];
                  case 2:
                      return side < 2 ? Icon3[0] : Icon3[1];
                  case 3:
                      return side < 2 ? Icon4[0] : Icon4[1];
                  default:
                      return blockIcon;
              }
          }
      }
      

      Est-ce que quelqu’un pense pouvoir m’aider ?
      Je vous dis merci d’avance !
      Noxon

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

        je te conseille de faire une “extends” de la classe “blockOldLogs” et de aller voir la classe “blockNewLogs”

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

          J’ai réussi à traduire une partie du registerIcon dans la class BlockNewLog

          
          @SideOnly(Side.CLIENT)
          public void registerBlockIcons(IIconRegister iconregister)
          {
          this.field_150167_a = new IIcon[type.length];
          this.field_150166_b = new IIcon[type.length];
          
          for (int i = 0; i < this.field_150167_a.length; ++i)
          {
          this.field_150167_a* = iconregister.registerIcon(this.getTextureName() + "_" + type*);
          this.field_150166_b* = iconregister.registerIcon(this.getTextureName() + "_" + type* + "_top");
          }
          }
          
          

          Mais aucune idée de ce à quoi correspond ces fields.
          Je trouve ça compliqué de se référer aux sources, rien n’est traduit. 😞

          1 réponse Dernière réponse Répondre Citer 0
          • Superloup10S Hors-ligne
            Superloup10 Modérateurs
            dernière édition par

            field_150167_a -> Texture principale
            field_150166_b -> Texture du haut/bas

            Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

            Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

              je croit que il y a avec MCP ou forge, un fichier qui te donne la traduction de tous les field.

              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 dans le dossier mcp tu as un dossier conf et tu as tout dedans

                1 réponse Dernière réponse Répondre Citer 0
                • Superloup10S Hors-ligne
                  Superloup10 Modérateurs
                  dernière édition par

                  Il reste pas mal de field non traduit, mais avec le temps, tu les reconnais facilement.

                  Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                  1 réponse Dernière réponse Répondre Citer 0
                  • N Hors-ligne
                    Noxon
                    dernière édition par robin4002

                    @‘Diangle’:

                    je croit que il y a avec MCP ou forge, un fichier qui te donne la traduction de tous les field.

                    J’utilise pas MCP, seulement Forge. 😕

                    Merci Loup, n’ayant jamais codé, j’ai parfois des soucis avec ça ^^

                    Et merci Diangle ton astuce a fonctionné à merveille 🙂

                    Maintenant il me reste plus qu’à galérer sur le reste de l’arbre ! …
                    Quoique, j’ose même pas essayer en fait, je vais m’en tenir là. 😊

                    1 réponse Dernière réponse Répondre Citer 0
                    • jglrxavpokJ Hors-ligne
                      jglrxavpok Modérateurs
                      dernière édition par

                      Forge utilise MCP, donc si, tu utilises bien MCP 😉

                      Modérateur sur MFF. 
                      Mon Github: http://github.com/jglrxavpok
                      Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

                      1 réponse Dernière réponse Répondre Citer 0
                      • Superloup10S Hors-ligne
                        Superloup10 Modérateurs
                        dernière édition par

                        @Noxon, si tu as des fields que tu ne comprends pas, n’hésites pas à m’envoyer un mp.

                        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB