Advertisement
DiabolusNeil

BlockBreakEventHandler

May 31st, 2014
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.04 KB | None | 0 0
  1. import cpw.mods.fml.common.eventhandler.SubscribeEvent;
  2. import net.minecraft.block.Block;
  3. import net.minecraft.block.BlockLeavesBase;
  4. import net.minecraft.block.BlockLog;
  5. import net.minecraft.world.World;
  6. import net.minecraftforge.event.world.BlockEvent;
  7.  
  8. /**
  9.  * Created on 5/31/2014 at 1:21 PM
  10.  * Must be registered with the MinecraftForge.EVENT_BUS
  11.  */
  12. public class BlockBreakEventHandler {
  13.  
  14.     private static int logIndex = 0;
  15.     public static int maxLogIndex = 20;
  16.  
  17.     @SubscribeEvent
  18.     public void onBlockBreak(BlockEvent.BreakEvent event) {
  19.         if (event.block instanceof BlockLog) {
  20.             scanForLogs(event.world, event.x, event.y, event.z);
  21.         }
  22.         /*int xp = event.getExpToDrop();
  23.         if (xp != 0) {
  24.             event.getPlayer().experienceTotal += xp;
  25.             event.setExpToDrop(0);
  26.         }*/
  27.     }
  28.  
  29.     private static void scanForLogs(World world, int x, int y, int z) {
  30.         if (logIndex < maxLogIndex) {
  31.             for (int i1 = -1; i1 < 1; i1++) {
  32.                 for (int i2 = -1; i2 < 1; i2++) {
  33.                     for (int i3 = -1; i3 < 1; i3++) {
  34.                         if (logIndex < maxLogIndex) {
  35.                             int newX = x + i1;
  36.                             int newY = y + i2;
  37.                             int newZ = z + i3;
  38.                             System.out.println(newX + ", " + newY + ", " + newZ);
  39.                             Block block = world.getBlock(newX, newY, newZ);
  40.                             if (block instanceof BlockLeavesBase) {
  41.                                 //System.out.println("DETECTED LEAVES: " + newX + ", " + newY + ", " + newZ);
  42.                                 block.breakBlock(world, newX, newY, newZ, block, world.getBlockMetadata(newX, newY, newZ));
  43.                                 world.setBlockToAir(newX, newY, newZ);
  44.                             } else if (block instanceof BlockLog) {
  45.                                 //System.out.println("DETECTED LOG: " + newX + ", " + newY + ", " + newZ);
  46.                                 logIndex++;
  47.                                 //System.out.println(logIndex);
  48.                                 block.breakBlock(world, newX, newY, newZ, block, world.getBlockMetadata(newX, newY, newZ));
  49.                                 world.setBlockToAir(newX, newY, newZ);
  50.                                 scanForLogs(world, newX, newY, newZ);
  51.                                 break;
  52.                             } else {
  53.                                 break;
  54.                             }
  55.                         } else {
  56.                             break;
  57.                         }
  58.                     }
  59.                 }
  60.             }
  61.         } else {
  62.             logIndex = 0;
  63.         }
  64.     }
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement