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

    Résolu Extend un Block vers un BlockRotatePillar ?

    1.7.x
    1.7.2
    5
    10
    2094
    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
      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
      • Diangle
        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
          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
          • Superloup10
            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
            • Diangle
              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
              • isador
                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
                • Superloup10
                  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
                    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
                    • jglrxavpok
                      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
                      • Superloup10
                        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
                        Contact / Mentions Légales

                        MINECRAFT FORGE FRANCE © 2018

                        Powered by NodeBB