MFF

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

    Probleme hammer 1.12.2

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.12.2
    6 Messages 2 Publieurs 342 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.
    • P Hors-ligne
      Prutix
      dernière édition par robin4002

      Bonjour a tous je viens de creer un hammer pour mon mod minecraft mais le probleme c’est que… Il casse la bedrock. Je ne sais pas comment régler ce probleme c’est pourquoi je fais appelle à vous.
      Code :

      package fr.exatium.examod.exaitems;
      
      import fr.exatium.examod.ExaMod;
      import fr.exatium.examod.exainit.ExaItemsMods;
      import net.minecraft.block.state.IBlockState;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.ItemStack;
      import net.minecraft.item.Item.ToolMaterial;
      import net.minecraft.item.ItemPickaxe;
      import net.minecraft.util.EnumFacing;
      import net.minecraft.util.math.BlockPos;
      import net.minecraft.util.math.RayTraceResult;
      import net.minecraft.util.math.Vec3d;
      import net.minecraft.world.World;
      
      public class ExateHammer extends ItemPickaxe
      {
      	public ExateHammer(String name, ToolMaterial material) {
      		super(material);
      		setUnlocalizedName(name);
      		setRegistryName(name);
      		setCreativeTab(ExaMod.tabTools);
      		
      	}
      	public boolean getIsRepairable(ItemStack stack, ItemStack repairItem)
      		{
      			if(stack.getItem().equals(this) && repairItem.getItem() == ExaItemsMods.exate_ingot)
      				return true;
      			return false;
      		}
      	public RayTraceResult rayTrace(double blockReachDistance, float partialTicks, World w, EntityLivingBase e)
          {
              Vec3d vec3d = e.getPositionEyes(partialTicks);
              Vec3d vec3d1 = e.getLook(partialTicks);
              Vec3d vec3d2 = vec3d.addVector(vec3d1.x * blockReachDistance, vec3d1.y * blockReachDistance, vec3d1.z * blockReachDistance);
              return w.rayTraceBlocks(vec3d, vec3d2, false, false, true);
          }
          
          public boolean onBlockDestroyed(ItemStack breaker, World w, IBlockState state, BlockPos pos, EntityLivingBase e)
          {
              if (e instanceof EntityPlayer && !w.isRemote)
              {
                  EntityPlayer p = (EntityPlayer) e;
                  RayTraceResult r = this.rayTrace(5.0D, 0.0F, w, e);
                  if (r.typeOfHit == RayTraceResult.Type.BLOCK)
                  {
                      int x = pos.getX();
                      int y = pos.getY();
                      int z = pos.getZ();
                      EnumFacing side = r.sideHit;
                      
                      if (side == EnumFacing.DOWN || side == EnumFacing.UP)
                      {
                          this.destroyAndDropBlock(w, p, breaker, x + 1, y, z - 1);
                          this.destroyAndDropBlock(w, p, breaker, x + 1, y, z);
                          this.destroyAndDropBlock(w, p, breaker, x + 1, y, z + 1);
                          this.destroyAndDropBlock(w, p, breaker, x, y, z - 1);
                          
                          this.destroyAndDropBlock(w, p, breaker, x, y, z + 1);
                          this.destroyAndDropBlock(w, p, breaker, x - 1, y, z - 1);
                          this.destroyAndDropBlock(w, p, breaker, x - 1, y, z);
                          this.destroyAndDropBlock(w, p, breaker, x - 1, y, z + 1);
                      }
                      
                      else if (side == EnumFacing.NORTH || side == EnumFacing.SOUTH)
                      {
                          this.destroyAndDropBlock(w, p, breaker, x + 1, y + 1, z);
                          this.destroyAndDropBlock(w, p, breaker, x, y + 1, z);
                          this.destroyAndDropBlock(w, p, breaker, x - 1, y + 1, z);
                          this.destroyAndDropBlock(w, p, breaker, x + 1, y, z);
                          
                          this.destroyAndDropBlock(w, p, breaker, x - 1, y, z);
                          this.destroyAndDropBlock(w, p, breaker, x + 1, y - 1, z);
                          this.destroyAndDropBlock(w, p, breaker, x, y - 1, z);
                          this.destroyAndDropBlock(w, p, breaker, x - 1, y - 1, z);
                      }
                      
                      else if (side == EnumFacing.EAST || side == EnumFacing.WEST)
                      {
                          this.destroyAndDropBlock(w, p, breaker, x, y + 1, z + 1);
                          this.destroyAndDropBlock(w, p, breaker, x, y + 1, z);
                          this.destroyAndDropBlock(w, p, breaker, x, y + 1, z - 1);
                          this.destroyAndDropBlock(w, p, breaker, x, y, z + 1);
                          
                          this.destroyAndDropBlock(w, p, breaker, x, y, z - 1);
                          this.destroyAndDropBlock(w, p, breaker, x, y - 1, z + 1);
                          this.destroyAndDropBlock(w, p, breaker, x, y - 1, z);
                          this.destroyAndDropBlock(w, p, breaker, x, y - 1, z - 1);
                      }
                      return true;
                  }
              }
              return super.onBlockDestroyed(breaker, w, state, pos, e);
          }
          private void destroyAndDropBlock(World w, EntityPlayer p, ItemStack breaker, int x, int y, int z)
          {
              BlockPos pos = new BlockPos(x, y, z);
              w.getBlockState(pos).getBlock().harvestBlock(w, p, pos, w.getBlockState(pos), w.getTileEntity(pos), breaker);
              w.setBlockToAir(pos);
          }
      
      }
      
      

      Merci D’avance.

      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,

        J’ai déplacé dans la section support pour les moddeurs, qui est la section appropriée pour le modding. Merci de faire plus attention la prochaine fois.

        Dans ta fonction destroyAndDropBlock il faut que tu vérifies que l’hardness du bloc est supérieur ou égal à 0 (les blocs indestructibles ont une valeur négative).

        1 réponse Dernière réponse Répondre Citer 0
        • P Hors-ligne
          Prutix
          dernière édition par

          En fait même si je vérifie je sais pas comment faire pour qu’il regarde les blocks que je vais casser autour parce que en fait je peux pas casser la bedrock a proprement parler en fait si je casse de la stone et que a coté il y a de la bedrock ca la casse aussi

          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 robin4002

            Non mais c’est pas compliqué …

                private void destroyAndDropBlock(World w, EntityPlayer p, ItemStack breaker, int x, int y, int z)
                {
                    BlockPos pos = new BlockPos(x, y, z);
                    if (w.getBlockState(pos).getBlockHardness(w, pos) >= 0)
                    {
                        w.getBlockState(pos).getBlock().harvestBlock(w, p, pos, w.getBlockState(pos), w.getTileEntity(pos), breaker);
                        w.setBlockToAir(pos);
                    }
                }
            
            1 réponse Dernière réponse Répondre Citer 0
            • P Hors-ligne
              Prutix
              dernière édition par Prutix

              Le hammer ne marche plus je ne sais pas a quoi c’est du

              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

                Ajoutes des points d’arrêt et debug ton code.

                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