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

    Solved Détécter un outil

    1.7.x
    1.7.10
    3
    9
    1386
    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.
    • Snyker
      Snyker last edited by

      Bonjour,

      je souhaite faire en sorte que mon block ne puisse être casser que par un outils spécifier ( juste ceux de minecraft )
      mon code du block :

      public class BogoPlank extends Block{
      
      public BogoPlank(Material material) {
      super(material);
      this.setCreativeTab(CreativeTabs.tabBlock);
             this.setHardness(5.0F);
      this.setBurning();
      }
      
                 public Block getBlockDropped(int stack, Random rand, int metadata)
         {
      return Principal.bogoplanks;
         }
      
      @Override
      public boolean isWood(IBlockAccess world, int x, int y, int z)
      {
           return true;
      }
      
      @Override
      public int getFlammability(IBlockAccess world, int x, int y, int z, ForgeDirection face)
         {
             return 25;
         }
      @Override
         public boolean isFlammable(IBlockAccess world, int x, int y, int z, ForgeDirection face)
         {
             return true;
         }
      @Override
         public int getFireSpreadSpeed(IBlockAccess world, int x, int y, int z, ForgeDirection face)
         {
             return 25;
         }
      
         }
      

      je pensait que en rajoutant cela aurait fonctionner. Mais ce n’est pas le cas ^^

      private String toolMaterial;
      
      public BogoPlank(Material material) {
      super(material);
             this.toolMaterial = "axe";
      this.setCreativeTab(CreativeTabs.tabBlock);
             this.setHardness(5.0F);
      this.setBurning();
      }
      
         public Block getBlockDropped(int stack, Random rand, int metadata)
         {
          if(toolMaterial != null){
      return Principal.bogoplanks;
          } return null;
         }
      

      De plus j’ai chercher dans les classes Block & ItemTools je ne parviens pas à trouver le bon code.

      Aucune signature n'est disponible pour une barre chocolatée.

      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        Tu peux utiliser la fonction getPlayerRelativeBlockHardness
        Si tu retourne -1 le bloc ne sera pas destructible. Si tu retourne une valeur positive ça sera le temps pour détruire le bloc :

        ​ public float getPlayerRelativeBlockHardness(EntityPlayer player, World world, int x, int y, int z)
        {
        if(player.getCurrentEquippedItem() != null && (player.getCurrentEquippedItem().getItem() == Items.itemVoulu1 || player.getCurrentEquippedItem().getItem() == Items.itemVoulu2))
        {
        return 5.0F;
        }
        return -1.0F;
        }
        
        1 Reply Last reply Reply Quote 0
        • EmotionFox
          EmotionFox last edited by

          En version 1.8 il faut utiliser ça :

          public TonBloc()
          {
             super(Material.rock);
             this.setHarvestLevel("axe", 4);
          }
          

          axe étant l’outil et 4 le niveau de l’outil, 3 étant le diamant, 2 le fer, 1 la pierre, 0 le bois et l’or.

          1 Reply Last reply Reply Quote 0
          • Snyker
            Snyker last edited by

            Merci robin !

            Par contre il ne prend pas en compte return 5.0F , il me le casse instant.
            Mais il prend bien en compte le -1.0F.

            EmotionFox , il n’y aurai pas le même en 1.7.10 ? Car en tapant il me mais bien toolClass & level, mais ne marche pas en jeux.

            Aucune signature n'est disponible pour une barre chocolatée.

            1 Reply Last reply Reply Quote 0
            • EmotionFox
              EmotionFox last edited by

              Comment ça ça ne fonctionne pas, aucun bloc dropé ou plutôt bloc dropé avec n’importe quel outil ?

              1 Reply Last reply Reply Quote 0
              • Snyker
                Snyker last edited by

                Block dropé avec n’importe quel outil ^^

                Aucune signature n'est disponible pour une barre chocolatée.

                1 Reply Last reply Reply Quote 0
                • robin4002
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                  setHarvestLevel

                  permet juste de rendre le bloc plus rapide à se détruire avec la hache / pelle / pioche, et dans le cas de la pioche ne rien dropper si la pioche n’est pas assez forte.

                  Seul mon code permet de rendre le code incassable sauf si le bon outil est utilisé. Mets 25 à la place de 5, 5 c’est trop peu.

                  1 Reply Last reply Reply Quote 0
                  • Snyker
                    Snyker last edited by

                    Merci à vous deux, robin ton code ma l’air intéressant pour d’autre bloc mais pas pour celui-ci ^^.

                    Aucune signature n'est disponible pour une barre chocolatée.

                    1 Reply Last reply Reply Quote 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                      C’est sûr, avec cette fonction + l’event BlockEvent.BreakEvent on peut faire beaucoup de chose. Je les utilises beaucoup dans mon mod privatizer : https://github.com/FFMT/Privatizer

                      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