Navigation

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

    SOLVED Hammer qui mine du 3x3x1

    1.12.x
    1.12.x
    2
    3
    765
    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.
    • C
      Circus last edited by

      Bonjour,

      J’ai trouver ce code mais il mine en 3x3x3 or je voudrais le faire miner en 3x3x1 voici le code

      package fr.circus.celestart.Tool;
      import java.util.List;
      import net.minecraft.block.state.IBlockState;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.item.EntityItem;
      import net.minecraft.entity.item.EntityXPOrb;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.ItemPickaxe;
      import net.minecraft.item.ItemStack;
      import net.minecraft.item.Item.ToolMaterial;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.util.EnumFacing;
      import net.minecraft.util.math.BlockPos;
      import net.minecraft.util.math.RayTraceResult;
      import net.minecraft.util.math.RayTraceResult.Type;
      import net.minecraft.world.World;
      public class StarModHammer extends ItemPickaxe {
      
       public StarModHammer(ToolMaterial material) {
        super(material);
       }
       public boolean onBlockDestroyed(ItemStack stack, World world, IBlockState block,BlockPos pos, int x, int y, int z, EntityLivingBase living)
       {
           if(living instanceof EntityPlayer)
           {
               for(int x1 = -2; x1 < 3; x1++)
               {
                   for(int y1 = -2; y1 < 3; y1++)
                   {
                       for(int z1 = -2; z1 < 3; z1++)
                       {
                       BlockPos pos1 = new BlockPos(x + x1, y + y1, z + z1);
      
         if(world.getBlockState(pos1).getBlock().getBlockHardness(block ,world, pos1) >= 0) {
         world.getBlockState(pos1).getBlock().harvestBlock(world, (EntityPlayer)living, pos, world.getBlockState(pos1), TileEntity.create(world, getNBTShareTag(stack) ), stack );
         world.setBlockToAir(pos1);
         }
                       }
                   }
               }
           }
      
           return super.onBlockDestroyed(stack, world, block,pos, living);
       }
      }
      

      Je ne comprend pas comment faire le Système de direction en 1.12.2

      Si quelqu’un peut m’aider je lui en serais très reconnaissant

      Amicalement,
      Circus

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

        Si le sujet est résolu, il serait sympa d’indiquer la solution.

        1 Reply Last reply Reply Quote 0
        • C
          Circus last edited by

          Voici la solution

          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);
              }
              @Override
              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;
                          // Y
                          // UP - DOWN
                          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);
                              // Middle block
                              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);
                          }
                          // Z
                          // NORTH - SOUTH
                          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);
                              // Middle block
                              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);
                          }
                          // X
                          // EAST - WEST
                          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);
                              // Middle block
                              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);
              }
          
          1 Reply Last reply Reply Quote 0
          • 1 / 1
          • First post
            Last post
          Design by Woryk
          Contact / Mentions Légales / Faire un don

          MINECRAFT FORGE FRANCE © 2018

          Powered by NodeBB