• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Extend un Block vers un BlockRotatePillar ?

    1.7.x
    1.7.2
    5
    10
    2052
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      Noxon last edited by 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 Reply Last reply Reply Quote 0
      • Diangle
        Diangle last edited by

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

        1 Reply Last reply Reply Quote 0
        • N
          Noxon last edited by

          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 Reply Last reply Reply Quote 0
          • Superloup10
            Superloup10 Modérateurs last edited by

            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 Reply Last reply Reply Quote 0
            • Diangle
              Diangle last edited by

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

              1 Reply Last reply Reply Quote 0
              • isador
                isador Moddeurs confirmés Modérateurs last edited by

                oui dans le dossier mcp tu as un dossier conf et tu as tout dedans

                1 Reply Last reply Reply Quote 0
                • Superloup10
                  Superloup10 Modérateurs last edited by

                  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 Reply Last reply Reply Quote 0
                  • N
                    Noxon last edited by 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 Reply Last reply Reply Quote 0
                    • jglrxavpok
                      jglrxavpok Modérateurs last edited by

                      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 Reply Last reply Reply Quote 0
                      • Superloup10
                        Superloup10 Modérateurs last edited by

                        @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 Reply Last reply Reply Quote 0
                        • 1 / 1
                        • First post
                          Last post
                        Design by Woryk
                        Contact / Mentions Légales

                        MINECRAFT FORGE FRANCE © 2018

                        Powered by NodeBB