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

    Non résolu getBlockHardness qui retourne toujours 0

    Sans suite
    1.12.2
    2
    5
    196
    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.
    • Infinite
      Infinite dernière édition par

      Bonjour !
      Je fais mon retour dans le modding car j’avais une idée de mod fun dans lequel je voulais me lancer !
      Mais j’ai un petit problème :
      J’aimerais créer un fluide qui casse les blocks qui sont en dessous des blocks de ce fluide.
      Le problème c’est que j’aimerais qu’il casse tout… sauf la Bedrock ! J’ai essayé avec plusieurs techniques différentes et en suis arrivé à essayer de checker si le block a une dureté inférieure à 0 comme la bedrock en a une négative. Le problème c’est que tous les blocks renvoient 0 donc mon fluide ne casse rien.
      Voici le code de ma méthode:

      @Override
          public void onBlockAdded(World world, BlockPos pos, IBlockState state)
          {
              super.onBlockAdded(world, pos, state);
              BlockPos blockUnderPos = new BlockPos(pos.getX(), (pos.getY() -1), pos.getZ());
              IBlockState blockUnderState = world.getBlockState(pos);
              
              Block blockUnder = blockUnderState.getBlock();
              
              System.out.println(blockUnderState.getBlockHardness(world, blockUnderPos));
              if(blockUnderState.getBlockHardness(world, blockUnderPos) > 0)
              {
                  world.setBlockToAir(blockUnderPos);
              }
          }
      

      Merci d’avance :beaming_face_with_smiling_eyes: !

      Mes Sites(Mes Sites)
      |
      |    Site général : Game & play
      |   Site de projets (en dev !) :Infinite's Ressources
      J'ai et je suis content d'avoir 16,75 points d'ICRating

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Bonjour,

        Il faudrait plutôt vérifier >= 0

        Au passage, tu peux utiliser pos.down() pour avoir le bloc en dessous.

        1 réponse Dernière réponse Répondre Citer 0
        • Infinite
          Infinite dernière édition par

          Bonjour !

          J’avais pas vu qu’il existait un pos.down()
          J’ai essayé de vérifier que la dureté du block soit >= 0 mais ça ne change pas.
          En fait, tous les blocks me retournent 0.0 de “hardness” dans la console (je le sais grace au sysout juste au dessus de ma condition) donc je pense qu’il doit y avoir un problème avec ma version de Forge ou que je m’y suis très mal pris mais je ne sais pas ce que j’ai fait de mal 😕

          Mes Sites(Mes Sites)
          |
          |    Site général : Game & play
          |   Site de projets (en dev !) :Infinite's Ressources
          J'ai et je suis content d'avoir 16,75 points d'ICRating

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

            Effectivement ce n’est pas vraiment normal que tous renvoies 0.
            Il n’y a pas une fonction pour obtenir l’hardness directement depuis le blockstate ?

            1 réponse Dernière réponse Répondre Citer 0
            • Infinite
              Infinite dernière édition par

              Waou, il est violent le son de notification :face_screaming_in_fear:

              Du coup, oui, c’est déja ce que j’utilise parce que le Block#getBlockHardness est “deprecated” et ne fonctionne également pas.

              Mes Sites(Mes Sites)
              |
              |    Site général : Game & play
              |   Site de projets (en dev !) :Infinite's Ressources
              J'ai et je suis content d'avoir 16,75 points d'ICRating

              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