MFF

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

    getBlockHardness qui retourne toujours 0

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.12.2
    5 Messages 2 Publieurs 316 Vues 2 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.
    • InfiniteI Hors-ligne
      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
      • robin4002R Hors-ligne
        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
        • InfiniteI Hors-ligne
          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
          • robin4002R Hors-ligne
            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
            • InfiniteI Hors-ligne
              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
              ContactMentions Légales

              MINECRAFT FORGE FRANCE © 2024

              Powered by NodeBB