summaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitFracture.java68
1 files changed, 35 insertions, 33 deletions
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitFracture.java b/src/main/java/com/sosnitzka/taiga/traits/TraitFracture.java
index bdc9b0b..2181de7 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitFracture.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitFracture.java
@@ -25,41 +25,43 @@ public class TraitFracture extends AbstractTrait {
float b = 0.99F * calcBonus(tool);
if (!world.isRemote && tool.canHarvestBlock(state) && f <= b) {
RayTraceResult mop = ((ToolCore) tool.getItem()).rayTrace(world, (EntityPlayer) player, false);
- for (int i = random.nextInt(9) + 1; i >= 0; i--) {
- switch (mop.sideHit) {
- case UP:
- BlockPos next1 = new BlockPos(pos.getX(), pos.getY() - i, pos.getZ());
- if (tool.canHarvestBlock(world.getBlockState(next1)) && !world.getBlockState(next1).equals(Blocks.BEDROCK.getDefaultState()))
- world.destroyBlock(next1, true);
- break;
- case DOWN:
- BlockPos next2 = new BlockPos(pos.getX(), pos.getY() + i, pos.getZ());
- if (tool.canHarvestBlock(world.getBlockState(next2)) && !world.getBlockState(next2).equals(Blocks.BEDROCK.getDefaultState()))
- world.destroyBlock(next2, true);
- break;
- case WEST:
- BlockPos next3 = new BlockPos(pos.getX() + i, pos.getY(), pos.getZ());
- if (tool.canHarvestBlock(world.getBlockState(next3)) && !world.getBlockState(next3).equals(Blocks.BEDROCK.getDefaultState()))
- world.destroyBlock(next3, true);
- break;
- case EAST:
- BlockPos next4 = new BlockPos(pos.getX() - i, pos.getY(), pos.getZ());
- if (tool.canHarvestBlock(world.getBlockState(next4)) && !world.getBlockState(next4).equals(Blocks.BEDROCK.getDefaultState()))
- world.destroyBlock(next4, true);
- break;
- case SOUTH:
- BlockPos next5 = new BlockPos(pos.getX(), pos.getY(), pos.getZ() - i);
- if (tool.canHarvestBlock(world.getBlockState(next5)) && !world.getBlockState(next5).equals(Blocks.BEDROCK.getDefaultState()))
- world.destroyBlock(next5, true);
- break;
- case NORTH:
- BlockPos next6 = new BlockPos(pos.getX(), pos.getY() - i, pos.getZ() + i);
- if (tool.canHarvestBlock(world.getBlockState(next6)) && !world.getBlockState(next6).equals(Blocks.BEDROCK.getDefaultState()))
- world.destroyBlock(next6, true);
- break;
+ if (mop != null) {
+ for (int i = random.nextInt(9) + 1; i >= 0; i--) {
+ switch (mop.sideHit) {
+ case UP:
+ BlockPos next1 = new BlockPos(pos.getX(), pos.getY() - i, pos.getZ());
+ if (tool.canHarvestBlock(world.getBlockState(next1)) && !world.getBlockState(next1).equals(Blocks.BEDROCK.getDefaultState()))
+ world.destroyBlock(next1, true);
+ break;
+ case DOWN:
+ BlockPos next2 = new BlockPos(pos.getX(), pos.getY() + i, pos.getZ());
+ if (tool.canHarvestBlock(world.getBlockState(next2)) && !world.getBlockState(next2).equals(Blocks.BEDROCK.getDefaultState()))
+ world.destroyBlock(next2, true);
+ break;
+ case WEST:
+ BlockPos next3 = new BlockPos(pos.getX() + i, pos.getY(), pos.getZ());
+ if (tool.canHarvestBlock(world.getBlockState(next3)) && !world.getBlockState(next3).equals(Blocks.BEDROCK.getDefaultState()))
+ world.destroyBlock(next3, true);
+ break;
+ case EAST:
+ BlockPos next4 = new BlockPos(pos.getX() - i, pos.getY(), pos.getZ());
+ if (tool.canHarvestBlock(world.getBlockState(next4)) && !world.getBlockState(next4).equals(Blocks.BEDROCK.getDefaultState()))
+ world.destroyBlock(next4, true);
+ break;
+ case SOUTH:
+ BlockPos next5 = new BlockPos(pos.getX(), pos.getY(), pos.getZ() - i);
+ if (tool.canHarvestBlock(world.getBlockState(next5)) && !world.getBlockState(next5).equals(Blocks.BEDROCK.getDefaultState()))
+ world.destroyBlock(next5, true);
+ break;
+ case NORTH:
+ BlockPos next6 = new BlockPos(pos.getX(), pos.getY() - i, pos.getZ() + i);
+ if (tool.canHarvestBlock(world.getBlockState(next6)) && !world.getBlockState(next6).equals(Blocks.BEDROCK.getDefaultState()))
+ world.destroyBlock(next6, true);
+ break;
+ }
}
+ if (random.nextBoolean()) ToolHelper.damageTool(tool, random.nextInt(5), player);
}
- if (random.nextBoolean()) ToolHelper.damageTool(tool, random.nextInt(5), player);
}
}